首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Matlab的FIR滤波器设计与实现(4)

基于Matlab的FIR滤波器设计与实现(4)

5.2  窗函数法和等波纹设计的不同之处  窗函数设计是通过最小平方积分办法来设计的,即该滤波器的误差为:
  
  即要求最小方法来设计滤波器,这样的滤波器更忠实于理想滤波器(即滤波系数更接近于理想滤波器)。
证明如下:



因此,幅度频谱差值越小,实际滤波器就越接近理想滤波器。
  而等波纹滤波器是通过最大加权误差最小化来实现,其误差为:
  
要求该误差最小来实现滤波器,得出来的滤波系数较窗函数设计相差较远。
以下通过对例3中的h1h2作比较。
%sigsum是用来对数组各元素进行求和
function y=sigsum(n1,n2,n,x);
y=0;
for i=n1+1-min(n):n2+1-min(n)
    y=y+x(i);
end


n=0.001:30.001;
h=2*cos(0.55*pi*(n-15)).*sin(0.175*pi*(n-15))./(pi*(n-15));
delta1=h-h1;
n=0.001:16.001;
h=2*cos(0.55*pi*(n-15)).*sin(0.175*pi*(n-15))./(pi*(n-15));
delta2=h-h2;
y1=sigsum(0,30,[0:30],(abs(delta1).^2))/31;
y2=sigsum(0,16,[0:16],(abs(delta2).^2))/17;


结果如下:
y1 =


  1.9099e-004


y2 =


    0.0278


  由此得到用窗函数实现的滤波系数比用等波纹滤波器系数的每一项更接近于理想滤波器(y1为用窗函数实现的与理想滤波器的差值,y2为用等波纹滤波器实现的与理想滤波器的差值);





  对比二者的幅度频谱可知,等波纹滤波器阻带边缘比用窗函数实现的更平滑(理想滤波器为垂直下降的)。
  从设计的角度考虑,由于窗函数设计法都是通过已有的窗函数对理想滤波器的改造,因此,可以用手算的办法方便的设计滤波器。
而等波纹滤波器,其实现是通过大量的迭代运算来实现,这样的方法一般只能通过软件来设计。
  项数的问题由于等波纹滤波器能较平均的分布误差,因此对于相同的阻带衰减,其所需的滤波系数比窗函数的要少。
5.3 几点说明1.相频特性曲线形状不同说明

  上面第一个图是用角度为单位画出来的,下面的图是用rad单位画出来的。从图形可以观察到在0.30.8数字频率间两个图都是严格的线性相位,至于下面的图为什么在这个区间会有跳变是因为rad的区间只有-pi——pi,当相位由-pi继续增加时只能跳到pi而不能大于pi,而角度表示则可以连续增大。


2.调用firl或者reme函数时,用scale(缺省方式)对滤波器进行归一化,即滤波器通带中心频率处的响应幅值为0db。用noscale不对滤波器归一化。
继承事业,薪火相传
返回列表