FIR_IIR滤波器设计与DSP实现 下载本文

内容发布更新时间 : 2024/7/6 5:25:29星期一 下面是文章的全部内容请认真阅读。

南京航空航天大学

研究生DSP公共实验

实验报告

实验名称:FIR/IIR滤波器设计与DSP实现 学生学号: 学生姓名:

实验地点:

2015年6月

南京航空航天大学研究生DSP实验报告

一、实验目的

1、掌握数字滤波器的设计过程 2、了解FIR/IIR的原理和特性

3、熟悉设计FIR/IIR数字滤波器的原理和方法

二、实验内容

1、通过MATLAB设计确定FIR/IIR滤波器系数 2、DSP初始化 3、A/D采样

4、FIR/IIR运算,观察滤波前后的波形变化

三、实验背景知识

1、FIR基础理论

FIR数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列,其差分方程表达式为:y(n)??h(i)x(n?i)

i?1N?1N为FIR滤波器阶数。

在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。为了是滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)。这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为

N/2?1 y(n)??h(i)(x(n?i)?x(N?1?n?i))

i?1

由此可见,FIR滤波器不断的对输入样本x(n)延时后,再做乘法累加计算,将滤波器结果y(n)输出。因此,FIR实际上是一种乘法累加运算。而对于线性相位FIR而言,利用线性相位FIR滤波器系数的对称性,可以采用结构精简的FIR结构将乘法器数目减少一半。 2、IIR基础理论

IIR数字滤波器是一种离散时间系统,其系统函数为

H(z)??bzii?1Ni?1m?i

1??aiz?i假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数ai和bi,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。

1

南京航空航天大学研究生DSP实验报告

3、本实验中FIR算法公式

r(j)??h(i)x(j?i) 0?j?nx

i?1nh4、本实验中IIR算法公式

d(n)?x(n)?a1?d(n?1)?a2?d(n?2)y(n)?b0?d(n)?b1?d(n?1)?b2?d(n?2)

四、实验要求

对带有噪声的不同输入信号(正弦波、方波、三角波)进行FIR/IIR滤波,观看滤掉噪声后的波形。

五、实验程序功能与结构说明

1、DEC5502_Filter.c:这是实验的主程序,包含了系统初始化,音频芯片各控制寄存器的初始化,A/D采样程序; 2、FIR_Filter:滤波子程序;

3、AIC.c:音频芯片各控制寄存器的初始化;

4、E2PROM_Function.c:包含对IIC的各操作函数; 5、I2C.c:进行I2C初始化; 6、mcbsp.c:配置mcbsp;

7、SEED_DEC5502.cmd:声明了系统的寄存器配置与程序各段的连接关系。

六、FIR/IIR实验步骤

1、打开CCS,进入CCS的操作环境;

2、装入DEC5502_FIR.pjt工程文件,添加SEED_DEC5502.gel文件,进行调试 3、打开DEC5502_Filter.c文件,修改SAMPLELONG宏定义。有3个选择。1表示256点FFT运算,2表示512点FFT运算,3表示1024点FFT运算。 4、编译、生成DEC5502_Filter.out文件,装载程序DEC5502_Filter.out;

5、本实验需要设置实验箱信号源。通过液晶屏和键盘,设置信号源:当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”键,进入“信号发生器设置”。

在“信号发生器设置”这一菜单下: “通道”设为“0”;

“信号类型”可以根据需要任意选择;

“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入;

“电压偏移”设为0;

“信号发生器开关”设为“开启”。此时便有信号输入音频芯片AIC2的输入端。

6、打开DEC5502_Filter.c文件,在最后两行设置断点。

7、运行程序,程序停在第一个断点处,表明数据采集完成;继续运行程序,程序停在第二个断点处,表明滤波完成。可以观察收到的数据和显示的图像。 DataBuffer数组显示的是原始信号图像;DDataBuffer数组显示的是滤波后信

2