DSP报告(内含仿真图)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FIR滤波实验
一、实验目的:
1、了解FIR滤波器的原理及使用方法;
2、了解使用Matlab语言设计FIR滤波器的方法;
3、了解用DSP来实现FIR滤波器的设计及编程方法;
4、熟悉在CCS环境下对FIR滤波器的调试方法。
二、实验内容:
数字滤波器的作用是滤掉信号中某一频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的传递函数相乘的结果。数字滤波器在各领域有广泛的应用,例如数字音响、音乐和语音合成、噪声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。
本实验要求设计采样频率为600Hz,输入信号频率为50Hz、150Hz和300Hz 的合成信号,设计截止频率为100Hz的低通滤波器,目的是通过所设计的79阶通带截止频率为75Hz,阻带开始频率为125Hz的低通滤波器将信号源中频率位100Hz以上的信号滤掉。本设计采用低通凯撒窗的数字FIR滤波器将信号源中频率为150Hz和300Hz的信号滤掉,留下频率为50Hz的信号。由于本设计前两个过程稍复杂,所以最好在MATLAB中验证设计思路,将得到的滤波器参数调用到DSP程序中,这样使得编译汇编连接的过程大为简化。然后通过图形仿真查看滤波前后的波形和频谱图。
三、实验步骤:
1、滤波器的MTLAB语言设计
2、从Matlab语言转换成通用语言
3、滤波器的汇编语言设计
4、在CCS环境下调试程序,并比较滤波后的效果、观测滤波后的波形
四、实验程序及结果
1.Matlab程序:
fp=75;%窗函数的通带截止频率fc=125;%窗函数的阻带起始频率as=100;%阻带衰减fs=600;
wp=2*fp/fs;
wc=2*fc/fs;
M=ceil((as-7.95)/(14.36*(wc-wp)/2))+1 %M=35; beta=0.1102*(as-8.7);%窗函数的形状参数
%beta=0.5;
window=Kaiser(M+1,beta);
b=fir1(M,wp,window);
figure(1);
freqz(b,1,512,fs);%显示该滤波器的幅频响应
%产生一个带有混叠频率的数字信号
N=256;%数据点数
fs=650;
dt=1/fs;
f1=150;
f2=50;
k=1:1:N
y(k)=sin(2*pi*f1*k*dt)+sin(2*pi*f2*k*dt)+sin(2*pi* (f1+150)*k*dt)
figure(2);
plot(y(k));
y=ceil(y*10000); %通过快速傅立叶变换得到原信号的频谱图yfft=fft(y,N);
pyy=yfft.*conj(yfft);
f=(0:(N/2-1));
for i=1:N/2-1
f(i)=f(i)*fs/N
end
figure(3);
plot(f,pyy(1:N/2));%显示原信号频谱
%滤波处理
yy=filter2(b,y);
figure(4);
plot(yy);
yfft=fft(yy,N);
pyy=yfft.*conj(yfft);
f=(0:(N/2-1));
for i=1:N/2-1
f(i)=f(i)*fs/N
end
figure(5);
plot(f,pyy(1:N/2));%显示处理后信号频谱
图1 Matlab环境下的滤波前后的频谱图形
2.DSP编程程序:
.mmregs
.ref filter_start
.def _c_int00
K_DATA_SIZE .set 256
K_BUFFER_SIZE .set 64
K_STACK_SIZE .set 256
K_B .set 79
K_CIR .set K_BUFFER_SIZE
STACK .usect "stack",K_STACK_SIZE SYSTEM_STACK .set K_STACK_SIZE+STACK DATA_DP .usect "filter_vars",0
Filterdat .usect "filter_vars",K_DATA_SIZE Bufferdatay .usect "filter_vars",K_BUFFER_SIZE*2
bufferdatax .usect "filter_vars",K_BUFFER_SIZE*2
.data
.global inputdata
inputdata
.WORD 16967, 5976, 7208, -3527, 24211, -903, 903, -24211
.WORD 3527, -7208, -5976,
-16967, 0, 16967, 5976, 7208
.WORD -3527, 24211, -903, 903, -24211, 3527, -7208, -5976
.WORD -16967, 0, 16967, 5976, 7208, -3527, 24211, -903
.WORD 903, -24211, 3527, -7208,
-5976, -16967, 0, 16967
.WORD 5976, 7208, -3527, 24211, -903, 903, -24211, 3527
.WORD -7208, -5976, -16967, 0, 16967, 5976, 7208, -3527
.WORD 24211, -903, 903, -24211, 3527, -7208, -5976, -16967
.WORD 0, 16967, 5976, 7208, -3527, 24211, -903, 903
.WORD -24211, 3527, -7208, -5976, -16967, 0, 16967, 5976
.WORD 7208, -3527, 24211,
-903, 903, -24211, 3527, -7208
.WORD -5976, -16967, 0, 16967, 5976, 7208, -3527, 24211
.WORD -903, 903, -24211, 3527, -7208, -5976, -16967, 0
.WORD 16967, 5976, 7208, -3527, 24211, -903, 903, -24211
.WORD 3527, -7208, -5976,
-16967, 0, 16967, 5976, 7208 .WORD -3527, 24211, -903, 903,
-24211, 3527, -7208, -5976
.WORD -16967, 0, 16967, 5976, 7208, -3527, 24211, -903
.WORD 903, -24211, 3527, -7208,
-5976, -16967, 0, 16967
.WORD 5976, 7208, -3527, 24211, -903, 903, -24211, 3527
.WORD -7208, -5976, -16967, 0, 16967, 5976, 7208, -3527
.WORD 24211, -903, 903, -24211, 3527, -7208, -5976, -16967
.WORD 0, 16967, 5976, 7208, -3527,