基于ARM的FIR数字滤波器的软件实现
数字滤波器作为语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中最基本的处理部件,现已成为最常用的工具之一。它既能满足滤波器对幅度和相位特性的严格要求,又能避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。而对于具有线性相位特性的滤波问题,设计时一般都选择FIR滤波器。
相对于窗函数法和频率设计法,在将理想频率响应和实际频率响应之间的加权逼近误差均匀地分散到滤波器的整个通带和阻带最小化和最大误差这个意义上来说,Chebyshev逼近法可以被视为最佳的设计准则。
1设计原理
1.1 FIR数字滤波器
对于长度为N、输入为x(n)、输出为y(n)的FIR滤波器,其输出函数可用差分方程表示为:
事实上,具有线性相位的滤波器都具有对称性或反对称性,即单位样本响应可满足条件:
1.2 Chebyshev逼近法
(1)线性相位FIR滤波器的四种情况
根据单位样本响应的对称性或反对称性,以及滤波器长度的奇偶性,其线性相位FIR滤波器有以下四种情形:
情形1:单位样本响应具有对称性,即h(n)=h(N-1-n),且N为奇数;
情形2:单位样本响应具有对称性,即h(n)=h(N-1-n),且N为偶数;
情形3:单位样本响应具有反对称性,即h(n)=-h(N-1-n),且N为奇数;
情形4:单位样本响应具有反对称性,即h(n)=-h(N-1-h),且N为偶数。
(2)误差函数E(ω)
若定义实值理想频率响应Hd(ω)在通带内为1,在阻带内为0;同时定义加权函数W(ω)在通带内为δ2/δ1(δ1为通带波纹,δ1为阻带波纹),阻带内为1。则可将加权逼近误差E(ω)定义为:
如误差函数已知,则Chebyshev逼近只需确定滤波器参数{α(k)},然后使其逼近频带E(ω)上的最大绝对值最小化。即要找到下式的解:
该问题的解法已由Parks和McClellan解决,称之为Remez交换算法。该算法是建立在交错定理的基础上的。图1所示是Remez算法的流程图。
(3)交错定理
2 FIR数字滤波器在ARM上的实现
Chebyshev逼近法主要利用Remez交换算法来实现,其设计流程图如图1所示。本文主要讨论怎样在ARM平台上实现该算法,从而设计FIR数字滤波器。其具体设计流程图如图2所示,步骤如下:
求出P(ωk)的值。事实上,也可以利用关于P(ω)的Lagrange差值公式来求解P(ω),具体公式为:
(5)误差E(ω)的计算
有了上面的基础,再利用公式(4)就可以求出E(ω),然后重复上述过程,直到找到符合要求的E(ω)为止,这样,就可以确定P(ω)的值。
(6)实值频率响应H(ω)的确定
通过P(ω)得到最佳解后,便可直接利用公式(3)来确定实值频率响应,而不必再去求解参数{αk}。
3结束语
本文在Chebyshev逼近法的基础上,提出了一种基于ARM平台的数字滤波器的软件实现方法。实验结果表明,利用此方法切实可行并能达到要求,并可初步用于实际的信号处理,为进一步实用化打下良好的基础。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)