关于dsp内容
答案:1 悬赏:50
解决时间 2021-02-17 12:47
- 提问者网友:椧運幽默
- 2021-02-16 22:38
关于dsp内容
最佳答案
- 二级知识专家网友:青灯有味
- 2021-02-17 00:08
下面是C语言的
这是软件仿真,放大倍数成2的指数幂增加(可修改放大倍数),然后在read_signals处设置断点,插入正弦数据,然后设置图像观察两个缓冲数组,inp_buffer,out_buffer
CMD文件也有,但是我再硬件上调试过,这种放大倍数增加的方法,在单步程序跑到最后就不动了。也就是放大倍数不变了。要放大100用我的2812应该不行。软件仿真完全行得通。
//-------------------------------相关头文件------------------------------------//
#include "stdio.h"
#include "volume.h"
//-------------------------------工作变量定义----------------------------------//
int inp_buffer[BUFSIZE];
int out_buffer[BUFSIZE];
int volume = 2;// BUF_SIZE的定义见volume.h
//-------------------------------调用子程序规则--------------------------------//
int read_signals(int *input);
int write_buffer(int *input,int *output,int count);
int output_signals(int *output);
void Delay(void);
//-----------------------------------主程序------------------------------------//
main()
{
int num = BUFSIZE;
int *input;
int *output;
input=inp_buffer;
output=out_buffer;
read_signals(input); // 加软件断点和探针
// ======无限循环======
while ( TRUE )
{
write_buffer(input, output, num);
input=inp_buffer;
output=out_buffer;
}
}
// 读取输入信号
int read_signals(int *input)
{
// 在此读取采集数据信号放到输入缓冲区input[]
return(TRUE);
}
// 将数据进行处理后搬移到输出缓冲区
int write_buffer(int *input,int *output,int count)
{
int i;
for ( i=0;i {
output[i]=input[i] * volume; // 处理:将输入数据放大volume倍放到输出缓冲区
}
volume *= 2;
return(TRUE);
}
// 输出处理后的信号
int output_signals(int *output)
{
// 在此将输出缓冲区out_buffer中的数据发送到输出设备(比如DA)
return(TRUE);
}
这是软件仿真,放大倍数成2的指数幂增加(可修改放大倍数),然后在read_signals处设置断点,插入正弦数据,然后设置图像观察两个缓冲数组,inp_buffer,out_buffer
CMD文件也有,但是我再硬件上调试过,这种放大倍数增加的方法,在单步程序跑到最后就不动了。也就是放大倍数不变了。要放大100用我的2812应该不行。软件仿真完全行得通。
//-------------------------------相关头文件------------------------------------//
#include "stdio.h"
#include "volume.h"
//-------------------------------工作变量定义----------------------------------//
int inp_buffer[BUFSIZE];
int out_buffer[BUFSIZE];
int volume = 2;// BUF_SIZE的定义见volume.h
//-------------------------------调用子程序规则--------------------------------//
int read_signals(int *input);
int write_buffer(int *input,int *output,int count);
int output_signals(int *output);
void Delay(void);
//-----------------------------------主程序------------------------------------//
main()
{
int num = BUFSIZE;
int *input;
int *output;
input=inp_buffer;
output=out_buffer;
read_signals(input); // 加软件断点和探针
// ======无限循环======
while ( TRUE )
{
write_buffer(input, output, num);
input=inp_buffer;
output=out_buffer;
}
}
// 读取输入信号
int read_signals(int *input)
{
// 在此读取采集数据信号放到输入缓冲区input[]
return(TRUE);
}
// 将数据进行处理后搬移到输出缓冲区
int write_buffer(int *input,int *output,int count)
{
int i;
for ( i=0;i
output[i]=input[i] * volume; // 处理:将输入数据放大volume倍放到输出缓冲区
}
volume *= 2;
return(TRUE);
}
// 输出处理后的信号
int output_signals(int *output)
{
// 在此将输出缓冲区out_buffer中的数据发送到输出设备(比如DA)
return(TRUE);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯