文档详情

DSP实验六FIR数字滤波器的实验报告.doc

发布:2017-08-14约7.09千字共7页下载文档
文本预览下载声明
实验六 FIR 数字滤波器 6.1 实验目的 数字滤波的作用是滤除信号中某一部分频率分量。信号经过滤波处理,就相当于信 号频谱与滤波器的频率响应相乘的结果。从时域来看,就是输入信号与滤波器的冲激响 应作卷积和。数字滤波器在各种领域由广泛的应用,例如数字音响、音乐和语音合成、 躁声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。 本实验主要学习数字滤波器的DSP 实现原理和C54X 编程技巧,并通过CCS 的图 形显示工具观察输入/输出信号波形以及频谱的变化。该实验应该安排在串口和定时器操 作实验之后进行。 6.2 实验要求 该实验涉及到 DSP 的串口、中断响应等复杂操作,应该在完成前面的串口和定时器 实验后完成。 本实验重点研究FIR 滤波器的DSP 实验方法,没有讨论FIR 滤波器的设计原理和方 法。你可以使用数字滤波器辅助设计软件包或自行计算FIR 滤波器的系数。本实验例子 利用DES320PP-U 评估板的模拟信号输出通道产生一个1KHz 的方波,然后利用信号输入 通道对产生的方波进行低通滤波,得到一个1KHz 的正弦信号,并使用CCS 的图形显示工 具显示输入和输出的波形。这里我们使用的是一个38 阶的对称结构的FIR 低通滤波器, 其采样频率Fs 为25KHZ,通带截止频率 1.2KHZ,阻带截止频率为2.8KHZ,阻带衰减 为-40dB。 6.3 实验原理 1) 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)] DES320PP-U 数字信号处理仿真/教学实验系统使用与实验指导 73 使用MAC 或FIRS 指令可以方便地实现上面的计算。 图 6-1 说明了使用循环寻址实现FIR 滤波器的方法。为了能正确使用循环寻址,必 须先初始化BK,块长为N。同时,数据缓冲区和冲激响应(FIR 滤波器的系数)的开始 地址必须是大于N 的2 的最小幂的倍数。例如,N=11,大于N 的最小2 的幂为16,那 么数据缓冲区的第一个地址应是16 的倍数,因此循环缓冲区起始地址的最低4 位必须是 0。 图6-1 FIR 滤波器存储器里的数据存储方式 在图6-1 中,滤波系数指针初始化时指向h(N-1),经过一次FIR 滤波计算后,在循 环寻址的作用下,仍然指向h(N-1)。而数据缓冲区指针指向的是需要更新的数据,如x(n)。 在写入新数据并完成FIR 运算后,该指针指向x(n-(N-1))。所以,使用循环寻址可以方便 地完成滤波窗口数据的自动更新. 使用带 MAC 指令的循环寻址模式实现FIR 滤波器,程序片段如下:(输入数据在 AL 中,滤波结果在AH 中) STM #1,AR0 ;AR0=1 STM #N,BK ;BK=N,循环寻址BUFFER 大小为N STL A,*FIR_DATA_P+% ;更新滤波窗口中的采样数据 RPTZ A,#(N-1) ;重复MAC 指令N 次,先将A 清零 MAC *FIR_DATA_P+0%,*FIR_COFF_P+0%,A ;完成滤波计算。注意FIR 滤波系数存放在 ;数据存储区 另一种方法是利用 C54x 系列芯片的提供的FIRS 指令来实现FIR 滤波器。图6-2 为一种有限单位冲激响应呈现对中心点对称的FIR 滤波器。长度为N 的线性相位FIR 滤波器的输出表达式为: Σ? = = ? + ? ? ? / 2 1 0 ( ) ( )[ ( ) ( ( 1 ))] N k y n h k x n k x n N k 图6-2 N 阶均衡FIR 滤波器框图 要利用FIRS 指令,需要将输入数据缓冲分成两个,循环缓冲区大小寄存器的值设为N/2。 图6-3 显示了输入序列在两个循环缓冲器里的存储情况。设辅助寄存器AR2 指到缓冲区 1(Buffer1)的顶部,AR3 指到缓冲区2(Buffer2)的底部。每次进行滤波之前,应先将 缓冲区1 顶部的数据移到缓冲区2 的底部,新来的一个样本存储到缓冲区1 中时,并对缓 冲区1 指针AR2 加1(使用循环寻址)。处理器然后使用FIRS 指令进行乘加运算,即 h(0){x(0)+x(-N+1)。当然,在使用FIRS 指令前,需要预先计算一次求和,以初始化A 。在 RPTZ 重复指令和循环寻址的配合下,完成FIR 滤波.滤波完成后,需要对两个数据缓冲的 指针进行修正,以便对下一个点进行处理。将Buffer1 的指针减1 和Buffer2 的指针减2, 使他们指向各自缓冲的数据队列的最后。 图6-3 16 点FIRS 滤波数据存放 使用带F
显示全部
相似文档