数字滤波器的DSP实现
设计要求:
设计一个滤波器
FIR滤波器
IIR滤波器
获取输入信号源
对信号源进行频谱分析
需要保留的部分频带范围
需要滤除的部分频带范围
确定滤波器类型(高通,低通,带通,带阻)
确定滤波器设计指标
通带截至频率,通带衰减
阻带截至频率,阻带衰减
设计滤波器(用MATLAB获取滤波器系数)
DSP上汇编编程实现滤波功能
获取输入信号源:
信号源的获取主要有matlab软件产生
其命令如下:
Fs=12000; %抽样频率
f1=2000; %混合信号的频率
f2=3000;
f3=4000;
y=10*[sin(2*pi*f1*[0: 200]/Fs)+1] +10*[sin(2*pi*f2*[0: 200]/Fs)+1]+10*[sin(2*pi*f3*[0: 200]/Fs)+1]; %采集200个点画出图形
plot(y);
grid on;
fid=fopen('ffin.dat', 'w'); %创建并打开ffin.dat文件
fprintf(fid,'1651 1 0 1 0'); %输出.dat文件的文件头
fprintf(fid, '0x%x\n',round(y));输出文件的数据格式是32位16进制形式
这时我们将在matlab目录下work文件夹里生成一个ffin.dat文件,该文件即是我们产生的信号源文件.只要明白在matlab中产生CCS所需信号源的语法命令,其余的信号源都可以类似的生成.
对信号源进行频谱分析:
在matlab环境下进行频谱分析,如果信号源的函数为y=…….,只要输入命令freqz(y),即可对信号源进行频谱分析.
在这里我们要求保留频率为3000Hz 的输入信号,滤初2000Hz ,4000Hz的其他频率输入信号
根据要求我们确定滤波器的类型为带通滤波器
设计指标为:
Fs = 12000; % Sampling Frequency
N = 31; % Order
Fstop1 = 2200; % First Stopband Frequency
Fpass1 = 2500; % First Passband Frequency
Fpass2 = 3500; % Second Passband Frequency
Fstop2 = 3800; % Second Stopband Frequency
下一页