DSP报告(内含仿真图)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,

相关文档
最新文档