9.1.3FIR数字滤波器的DSP实现 M m)=立A,xa-)+2a,n-k) k=0 k=1 若所有的4k均为零,则有: (m)=∑bxn-)) k=0 相应的传递函数为: H(z)=∑b(k)z FIR滤波器 k=0 21
9.1.3 FIR数字滤波器的DSP实现 k a 相应的传递函数为: 0 ( ) ( ) M k k H z b k z− = = 若所有的 均为零,则有: 0 ( ) ( ) M k k y n b x n k = = − FIR滤波器 21 0 1 ( ) ( ) ( ) M N k k k k y n b x n k a y n k = = = − + −
9.1.3FIR滤波器的DSP实现 M H(z)= ∑b(k)zk k=0 (n)=∑bx(n-k)中,系数b(k=1~M形成的序列 k=0 就是单位冲激响应序列,滤波器设计的目标就是找 到合适的序列bk(k=1~M)。 窗函数法设计FIR 用一个有限长度的窗函数序列w(n)来截取h,(n),即: h(n)=w(n)ha (n) 常用窗函数Hanning,Hamming,Blackman,Kaiser等。 23
就是单位冲激响应序列,滤波器设计的目标就是找 到合适的序列 9.1.3 FIR滤波器的DSP实现 0 ( ) ( ) M k k y n b x n k = = − bk k b 中, 系数 (k=1~M)形成的序列 (k=1~M)。 23 用一个有限长度的窗函数序列 来截取 h n d ( ) ,即: 窗函数法设计FIR w n( ) ( ) ( ) ( ) d h n w n h n = 常用窗函数Hanning, Hamming, Blackman, Kaiser等。 0 ( ) ( ) M k k H z b k z− = =
9.1.3FIR滤波器的DSP实现 FR滤波器在C54x上的实现 1)利用C54x自带的dsplib库函数实现 DSPLIB库提供了几个与FIR滤波直接有关的函数, 分别是: >cfir DSPLIB库函数见TI网站压缩文件 >fir TMS320C54x DSP Library-sprc099 >firinterp >firs >firs2 >firlat:Lattice FIR filter implementation >firdec:Decimation filter with user specified FIR coefficients 山东大学生物医学工程刘忠国 24
9.1.3 FIR滤波器的DSP实现 FIR滤波器在C54x上的实现 1) 利用C54x自带的dsplib库函数实现 DSPLIB库提供了几个与FIR滤波直接有关的函数, 分别是: ➢cfir ➢fir ➢firinterp ➢firs ➢firs2 ➢firlat : Lattice FIR filter implementation ➢firdec: Decimation filter with user specified FIR coefficients DSPLIB库函数见TI网站压缩文件 TMS320C54x DSP Library- sprc099 山东大学生物医学工程刘忠国 24
9.1.3FIR滤波器的DSP实现 2)FIR滤波运算的汇编语言程序设计 采用汇编的方法主要有: 单值更新缓存法 >线性缓冲区法 区域更新缓存法 >循环缓冲区法 山东大学生物医学工程刘忠国 25
9.1.3 FIR滤波器的DSP实现 2) FIR滤波运算的汇编语言程序设计 采用汇编的方法主要有: ➢线性缓冲区法 ➢循环缓冲区法 { 单值更新缓存法 区域更新缓存法 山东大学生物医学工程刘忠国 25
9.1.3FIR滤波器的DSP实现 (1)线性缓冲区法 单值更新缓存法: 数据存储器 数据存储器 数据存储器 线性缓冲区顶部 X(n) 读入新数据→ X(n+1) 读入新数据 X(n+2) Xn-1) X(n) X(n+1) X(n-2) X(m-1) X(n) X(n-3) X(n-2) X(n-1) X(n-4) X(n-3) X(n-2) AR2 ARx Xm-5) AR2 ARx→ X(n-4) AR2 ARx X(n-3) (a) (b) (c) 具体实现步骤如下: MACD Smem,pmad,src (1)在数据存储器中开辟一个N单元的缓冲区,用来存放最 新的N个输入样本; (2)从最老样本开始取数,每取一个数后,样本向下移位; (3)读完最后一个样本后,输入最新样本并存入缓冲区顶部。 26
9.1.3 FIR滤波器的DSP实现 (1) 线性缓冲区法 单值更新缓存法: 具体实现步骤如下: (1)在数据存储器中开辟一个N单元的缓冲区, 用来存放最 新的N个输入样本; (2)从最老样本开始取数,每取一个数后,样本向下移位; (3)读完最后一个样本后,输入最新样本并存入缓冲区顶部。 MACD Smem, pmad, src AR2 AR2 AR2 26