内容发布更新时间 : 2025/2/7 2:52:49星期一 下面是文章的全部内容请认真阅读。
南京航空航天大学
研究生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