《DSP原理及应用》――FIR滤波器的 C54X实现 一、 实验目的 用 matlab 获得 FIR 滤波器的抽头系数,用汇编语言实现 FIR 滤波器
产生一混频信号,用所设计的滤波器进行滤波,查看滤波器输出
二、实验仪器 1.PC 一台(win7 系统); 2.Code Composer Studio 3
1 软件; 3.MATLAB 2009; 4.Dev C++ 6
三、实验要求 1.设计一个 FIR 低通滤波器,通带边界频率为 2500Hz,通带波纹小于 1dB;阻带边界频率为 3000Hz,阻带衰减大于 40dB;采样频率为 10000Hz
2.设计一个采样频率 Fs 为 10000Hz,输入信号频率为 2000Hz 和 3250Hz 的合成信号,通过设计的低通滤波器将 3250Hz 信号滤掉,余下 2000Hz 信号
3.用循环缓冲区和双操作数寻址方法编写实现 FIR 滤波的程序
四、实验原理 如果 FIR 滤波器的冲激响应为 h(0),h(1),
,h(N-1)
X(n)表示滤波器在 n 时刻的输入,则 n 时刻的输出为: y(n) = h(0)x(n) + h(1)x(n-1) +
+ h(N-1)x[n-(N-1)] 使用 MAC 或 FIRS 指令可以方便地实现上面的计算
图 1 说明了使用循环寻址实现 FIR 滤波器的方法
为了能正确使用循环寻址,必须先初始化BK,块长为 N
同时,数据缓冲区和冲激响应(FIR 滤波器的系数)的开始地址必须是大于 N 的 2 的最小幂的倍数
例如,N=11,大于 N 的最小 2 的幂为 16,那么数据缓冲区的第一个地址应是 16 的倍数,因此循环缓冲区起始地址的最低 4 位必须是 0
在图 1 中,滤波系数指针初始化时指向 h(N-1),经过一次 FIR 滤波计算后,在循环寻址的作