资源描述:
《dsp滤波器实验报告iir的matlab设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《DSP原理与技术》实验报告姓名:XXX学号:XXXX院系:航天学院控制科学与工程系指导老师:XXX2011年5月25日1FIR滤波器的设计与DSP实现1.1FIR滤波器的理论基础FIR滤波器即有限长冲击响应滤波器的单位冲击响应是有限长的(),其Z变换为在有限Z平面()内有()个零点,在Z平面的原点处有()阶极点。的频率响应为当单位冲击响应序列为实序列时,表示成当具有线性相位即或当满足条件可得出上式即为FIR滤波器具有线性相位条件的充要条件,它要求单位冲击响应序列是以为对称中心的偶对称序列。当满足条件可得出此时要求单位冲击响应序列是以为对称中心的奇对称序列。鉴于工程实
2、际应用,具有线性相位的FIR滤波器具有更加广阔的应用。对于非线性相位的FIR滤波器,一般可以用IIR滤波器来代替。同样幅度特性,IIR滤波器所需阶数比FIR滤波器所需阶数少得多。1.2FIR滤波器的设计常见的FIR滤波器设计方法包括窗函数设计法和频率采样设计法。这里讨论用窗函数设计方法设计数字低通滤波器。理想的数字低通滤波器的频率响应如图1.2.1所示。根据傅立叶逆变换,由图1.2.1可得其单位脉冲响应为此时是一个无限长的偶对称序列。窗函数的设计即是用有限长度的窗去截断,使之变成有限长度序列。假设长度为M的窗函数的单位冲击响应为,则截断后的序列为为保证系统的因果性,须
3、将序列右移M个采样周期即得到物理可实现的实际数字滤波器的单位脉冲响应。下面以借助于Matlab的滤波器设计工具FDATool设计一个截至频率为30KHz、系统采样频率为300KHz的数字低通滤波器为例来说明数字滤波器的一般设计步骤。在Matlab命令行输入位置输入>>fdatool即进入FDATool对话框界面,如图1.2.2所示。图1.2.2FDATool设计界面在滤波器响应类型ResponseType栏选择Lowpass,设计方法DesignMethod选择FIR和Window,在Options一栏选择汉宁窗Hann,然后在频率设置一栏中Fs代表系统采样频率,这里
4、填入300000,Fc代表截止频率填入30000后点击DesignedFilter按钮即完成设计。图1.2.3即为设计的滤波器的幅频响应。图1.2.3幅频响应FDATool工具可以将所设计的滤波器参数导出成Matlab能识别的m语言文件和SimulinkModel文件用于仿真验证,也可以导出成C语言头文件(.H)用于其他平台的开发。图1.2.4是将所设计的滤波器导出SimulinkModel后建立的验证性仿真结构框图。图1.2.4滤波器验证框图图1.2.5a为加入频率为80KHz噪声后的信号功率谱,b为滤波后的功率谱,比较二者可知噪声在通过滤波器时完全被滤掉,基本达到
5、滤波的功能。a)滤波前b)滤波后图1.2.5信号功率谱1.3FIR滤波器的DSP实现将在Matlab的FDATool中设计好的滤波器参数导出成C语言头文件,从而在DSP开发环境中引用该参数即可完成在DSP中实现数字滤波器的设计。附录一为FIR实验的源代码。实验中给出的信号是250Hz的有用信号和4.5KHz的噪声信号的叠加,采样率为10KHz。1.3.1FIR低通滤波器的设计实验根据以上参数在FDATool中设计的FIR低通滤波器的幅频响应如图1.3.1所示。图1.3.1FIR低通滤波器,fc=300Hz其中,该低通滤波器阶数为11,系数为:0,0.017676466
6、57392,0.0667464118867,0.1303069136933,0.183326950056,0.2038865155802,0.183326950056,0.1303069136933,0.0667464118867,0.01767646657392,0。将附录一中的源代码中的滤波器阶数变量FIRNUMBER和滤波器系数变量fHn改成以上参数后,运行之,在CCS的Graph工具中观察滤波前后的效果,如图1.3.2所示。a)低通滤波前的输入信号b)低通滤波后的输入信号图1.3.2低通滤波前后的信号对比通过观察以上两个波形并对比可得,原先输入信号中含有的高频
7、分量被完全滤除了,说明所设计的低通滤波器各项指标符合实验要求。1.3.2FIR高通滤波器的设计实验根据信号的各项参数在Matlab的FDATool工具中设计的高通滤波器幅频响应如图1.3.3所示。图1.3.3FIR高通滤波器,fc=4KHz其中,该低通滤波器阶数为11,系数为:0,0.005478675859511,-0.04276363616214,0.1215188926974,-0.2075790503787,0.2453194898046,-0.2075790503787,0.1215188926974,-0.04276363616214,0