×
单片机 > 单片机程序设计 > 详情

基于ARM的FIR数字滤波器的软件实现

发布时间:2020-05-30 发布时间:
|
  引言

  数字滤波器作为语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中最基本的处理部件,现已成为最常用的工具之一。它既能满足滤波器对幅度和相位特性的严格要求,又能避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。而对于具有线性相位特性的滤波问题,设计时一般都选择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为偶数。

[page]


  (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所示,步骤如下:




[page]



  求出P(ωk)的值。事实上,也可以利用关于P(ω)的Lagrange差值公式来求解P(ω),具体公式为:


  (5)误差E(ω)的计算

  有了上面的基础,再利用公式(4)就可以求出E(ω),然后重复上述过程,直到找到符合要求的E(ω)为止,这样,就可以确定P(ω)的值。

  (6)实值频率响应H(ω)的确定

  通过P(ω)得到最佳解后,便可直接利用公式(3)来确定实值频率响应,而不必再去求解参数{αk}。

  3结束语

  本文在Chebyshev逼近法的基础上,提出了一种基于ARM平台的数字滤波器的软件实现方法。实验结果表明,利用此方法切实可行并能达到要求,并可初步用于实际的信号处理,为进一步实用化打下良好的基础。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址