dsp实验报告-有限脉冲响应滤波器(FIR)实验.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《dsp实验报告-有限脉冲响应滤波器(FIR)实验.doc》由会员分享,可在线阅读,更多相关《dsp实验报告-有限脉冲响应滤波器(FIR)实验.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验四数字信号处理算法实验实验4.1:有限脉冲响应滤波器(FIR)算法实验一实验目的1掌握窗函数法设计FIR滤波器的Matlab实现,为CCS提供滤波系数。2掌握采用C语言在VC5509开发板上实现混频信号的FIR滤波。二实验设备计算机,ICETEK-VC5509-A实验箱及电源。三实验原理1. 窗函数法设计FIR滤波器(详细理论请看数字信号处理原理书籍)本实验要求:设计一个低通滤波器,通带截止频率fp=10kHz,阻带截止频率fs1=22kHz,阻带衰减ap=75dB,采样频率fs=50kHz,计算出滤波系数fHn,并对混频信号(高频+低频正弦波)fIn进行滤波,得输出波形fOut。解:过渡
2、带宽度=fs1-fp=12kHz;截止频率:f1=fp+(过渡带宽度)/2=16kHzf1对应的数字频率:1=2f1/fs=0.64(rad)-理想低通滤波器单位脉冲响应:hdn=sin(0.64(n-a)/(n-a) 其中a=(N-1)/2 (n=0N-1)-根据阻带衰减要求选择布莱克曼窗,窗函数长度N为:N=5.98fs/过渡带宽度25则窗函数为:wn=0.42-0.5cos(2n/24)+0.08cos(4n/24)滤波器脉冲响应为:hn=hdnwn (n=0N-1) -根据上面各式计算出hn。2. FIR滤波FIR滤波器的差分方程为: 其中,hi-滤波器系数;x(n)-滤波器的输入;y
3、(n)- 滤波输出。根据公式,得本例对应FIR滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01xn-19-0.002xn-20-0.002xn-21+0.001xn-22 (n=0,1,2,.)采用线性缓冲区法(原理见备课笔记)解此差分方程,得FIR滤波结果y(n)。3
4、程序流程图:四实验内容1.实验准备2.利用Matlab编程计算滤波系数fHn。%程序:FIRditong.mclearclcN=25; %滤波器的阶数n=0:1:N-1;wc=0.64*pi; %理想低通滤波器的截止频率m=n-(N-1)/2+eps;hd=sin(wc*m)./(pi*m); %理想低通滤波器hd(n)wn=0.42-0.5*cos(2*pi*n/24)+0.08*cos(4*pi*n/24);%布拉克曼窗fHn=hd.*wn %滤波系数fHn实验要求:(1)在matlab软件中运行该程序,在命令窗口下显示滤波系数fHn。则 fHn = Columns 1 through 6
5、 0.0000 -0.0000 0.0008 -0.0016 -0.0019 0.0100 Columns 7 through 12 -0.0087 -0.0180 0.0492 -0.0204 -0.1095 0.2800 Columns 13 through 18 0.6400 0.2800 -0.1095 -0.0204 0.0492 -0.0180 Columns 19 through 24 -0.0087 0.0100 -0.0019 -0.0016 0.0008 -0.0000 Column 25 0.0000 将此fHn与三.2部分的fHn相比,体会FIR滤波器设计原理。3.打开
6、工程:C:ICETEKVC5509AeVC5509AeLab0501-FIRFir.pjt。/主程序:FIR.c #include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include #define FIRNUMBER 25 /滤波器阶数#define SIGNAL1F 1000 /输入信号1的频率#define SIGNAL2F 4500 /输入信号2的频率#define SAMPLEF 10000 /采样频率#define PI 3.1415926 float InputWave(); / 输入信号产生子程序声明 f
7、loat FIR(); / FIR滤波子程序声明 float fHnFIRNUMBER= 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 ; /低通滤波器系数 float fXnFIRNUMBER= 0.0 ; float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSi
8、gnal2;float f2PI;int i;float fIn256,fOut256; / 输入信号fIn和滤波输出信号fOut int nIn,nOut; /输入和输出信号的下标变量main()nIn=0; nOut=0; f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;while ( 1 ) /无限循环fInput=InputWave(); /调入输入信号的1个值,存入fInnInfInnIn=fInput;nIn+; nIn%=256; / nIn=nIn+1;nIn除2
9、56取余 fOutput=FIR(); fOutnOut=fOutput;/调用FIR滤波子程序,将本次滤波输出存入fOutnOutnOut+;/* break point */ / nOut=nOut+1 if ( nOut=256 )nOut=0;float InputWave()for ( i=FIRNUMBER-1;i0;i- ) / 循环 fXni=fXni-1; / 将上一个采样时间的输入信号向量延迟1个单元,空出 1个单元(以便将新值放入) fXn0=sin(double)fSignal1)+cos(double)fSignal2)/6.0; /混频正弦信号fSignal1+=f
10、StepSignal1; if ( fSignal1=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2=f2PI )fSignal2-=f2PI;return(fXn0); / 返回当前采样时间的输入信号 fXn0 float FIR() /FIR滤波子程序float fSum;fSum=0;for ( i=0;iGraph-Time/Frequency,分别进行如下图(a)(b)设置: (a) (b)分别显示输入波形fIn及其幅频谱(示例): 2将Start Address改为fOut,分别显示输出波形fout的波形及幅频谱:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dsp 实验 报告 有限 脉冲响应 滤波器 FIR
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内