预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

www.jianfeiway.com 设计FIR滤波器作业报告 学号: 姓名: 设计FIR滤波器作业报告 本设计主要内容是利用MATLAB验证设计思路并用CCS3.3仿真环境设计一个FIR滤波器,要求滤除给定的叠加正弦波的两个较高频分量。 给定波形函数为:y=sin(2*pi*100*t)+sin(2*pi*250*t)+sin(2*pi*270*t)。 设计思路:输入信号是频率为100Hz、250HZ、270Hz的合成正弦等幅信号,由于给定的谐波分量最高为270Hz,根据奈奎斯特准则,采样频率应大于最高频率分量的2倍,即大于2*270,故可以以600Hz的采样频率进行采样,即fs=600Hz。设计了一个截止频率为200Hz的低通滤波器,目的是通过所设计的低通bartlett滤波器将信号源中频率为200Hz以上的信号滤掉,留下频率为100Hz的信号,达到滤波的效果。利用MATLAB设计合适的滤波器实现滤波,然后得到其滤波器系数在CCS的simulator方式下编写滤波程序,调用波形数据,实现滤波,并观看滤波前后的信号波形图、频谱图,观察滤波达到预期效果。 设计过程 在MATLAB中进行算法验证 MATLAB语言由于具有数值计算功能、符号计算功能、数据可视化功能、建模仿真可视化功能,使得MATLAB在命题构思、模型建立、仿真研究、假想验证、数据源可视化各环节起着强大的作用。因此在设计中必须先在MATLAB语言中设计一个FIR滤波器。本设计采用的是bartlett窗函数。下面是在MATLAB中设计的27阶FIR型bartlett滤波器程序: clearall; %请寄存器 clf; %清屏 N=256; %清数据点 fs=600; %采样频率 dt=1/fs; %采样时间间隔 fort=1:N f1=250; f2=100; f3=270; y(t)=(sin(2*pi*f1*t*dt)+sin(2*pi*f2*t*dt)+sin(2*pi*f3*t*dt));%产生合成信号 x(t)=round(10000*y(t)); %为DSP汇编程序做数据转换 end figure(1) plot(y),title('滤波前的波形图像'); fp=200 fst=250 NL=26 f1=200; w1=2*pi*f1/fs window=bartlett(NL+1) %窗函数 n=1:NL+1 hd=sin(w1*(n-NL/2))./(pi*(n-NL/2)); hd(NL/2)=0.67; h=hd.*rot90(window) h1=h*32768; h2=fft(h,N); %将信号做FFT变换 pyy=h2.*conj(h2); %做功率谱分析 f=(0:(N/2-1)); fori=1:N/2-1 f(i)=f(i)*fs/N; end figure(2) plot(f,pyy(1:N/2)),title('滤波器的频谱图像'); yy1=filter(h,1,y); %滤波 figure(3) plot(yy1),title('滤波后的波形图像'); y=fft(y,N); pyy=y.*conj(y); f=(0:(N/2-1)); fori=1:N/2-1 f(i)=f(i)*fs/N; end figure(4) subplot(1,2,1),plot(f,pyy(1:N/2)),title('滤波前的波形频谱图像'); y=fft(yy1,N); pyy=y.*conj(y); f=(0:(N/2-1)); fori=1:N/2-1 f(i)=f(i)*fs/N; end subplot(1,2,2),plot(f,pyy(1:N/2)),title('滤波后的波形频谱图像') 其中采样点为256个,采样频率为600Hz,输入信号为100Hz、250Hz、270Hz的合成信号,设定的截止频率为200Hz,通过FIR滤波器后,期望保留的信号是100Hz的信号,200Hz以上的频率基本被滤掉。图1是滤波前的图形,图2是滤波后的图形,图3为滤波器频谱图像,图4滤波前后的波形频谱图像。从这四个图中可以看住原始信号中的频率有100Hz、250Hz、270Hz,经过滤波后200Hz以上的信号成分基本上被滤掉。只留下100Hz的信号。 图1滤波前波形图像 图2滤波后波形图像 图3滤波器的频谱图像 图4.滤波前后的波形频谱图像 在CCS环境的仿真 首先配置处理器项,进入CCStudiov3.3中,编写程序,程序如下: .mmregs .reffilter_start .def_c_int00 K_DATA_SIZE.set256 K_B