我是靠谱客的博主 顺心鸵鸟,最近开发中收集的这篇文章主要介绍FIR滤波器设计FIR滤波器设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

FIR滤波器设计

介绍

  • 经典的滤波器分为IIR和FIR两种,分类的依据是根据设计的滤波器H(z)逆Z变换h(n),即:单位脉冲响应有限长无限长划分。实际上有限长的单位脉冲响应也是通过将非因果的有限长脉冲响应截断所得到的,这样就导致了FIR滤波器在通带存在纹波,这也就是所谓的吉布斯效应。产生这个现象的根本原因就是截断相当于在时域乘以一个矩形框,矩形框的频响有边瓣效应, 无论什么窗函数都有边瓣。‘
  • 另外,FIR滤波器的H(z)是只有零点,也就是说经过滤波器的输出y(n)仅与当前和过去的输入有关而和过去的输出无关,从控制系统的角度说就是没有反馈。
  • FIR滤波器的设计方法有很多,所有的设计方法归根于要设计一个多项式使其对理想滤波频率响应函数的逼近达到最佳,就是像机器学习里拟合的问题。但是由于DTFT的导致的周期性我们对于拟合的误差只需要考虑在一个小区间 [0 pi]内,因为后面的区间其频响都是周期的了。而考虑在一个小区间误差函数达到均匀一致的方法是最佳一致逼近法,通过这种放大设计FIR滤波器也叫切比雪夫逼近法。
  • 切比雪夫逼近法设计得滤波器不光在迭代预测交错点频率存在较大的计算量,同时也在最终解多元的线性方程组也存在较大的计算量。或者是说FIR滤波器要达到一个较好的效果,他的计算量是远远大于IIR滤波器的。另外,在考虑FIR滤波器的阶数时,根据经验公式得到的滤波器阶数N也是比较大的,H(z)的复杂导致了FIR滤波器在实时实现上有很大的困难,也就是说很难根据过去和现在较少的输入达到对现在的输入进行滤波。
  • 既然FIR滤波器有如此多的缺点,那为什么还要设计呢?原因就是FIR系统较好实现线性相位。线性相位是一个比较好的特性,具备线性相位的系统可以进行谱分解,同时,线性相位携带了时域信号位移量的信息,对于研究信号的变化有很好的价值。FIR系统实现线性相位要满足其单位脉冲响应是奇或偶对称的关系,从零极点图的角度看就是其零点要满足关于单位圆对称。

实践

  • 下面这段代码要注意两点,一是要求输入带边归一化频率的2倍。第二就是其加权函数的定义,一般来说由于对通阻带的衰减要求是不同的,在切比雪夫逼近法时,其误差函数定义为(以低通为例)加权函数(W(e^jw))乘以(线性FIR滤波器的频响增益Hg(e^jw)减上理想低通频率响应Hd(e^jw))。
  • 低通滤波器的W(e^jw)在通带加权设置为阻带衰减/通带衰减,阻带衰减设置为1。

  • 例1:现设计一个滤波器,通带边缘频率0.6pi,阻带边缘频率0.7pi。
%wp=0.6pi,ws=0.7pi
% 带边归一化频率的2倍
f=[0 .6 .7 1];
% 频率分点上理想的幅频响应;
A=[1 1  0 0];
% 频率分点上的加权;
weigh=[10 1];   

b=remez(33,f,A,weigh);
%频率响应
[h,w]=freqz(b,1,256,1);
h=abs(h);
h=20*log10(h);
figure;stem(b,'.');grid;
figure(2);plot(w,h);grid;

这里写图片描述

这里写图片描述

  • 例2:fs=500hz,设计陷波器去工频干扰(50 100 150 hz)

“`
% 切比雪夫逼近法:Fs=500hz, 陷波 50 100 150hz
f=[0 .14 .18 .22 .26 .34 .38 .42 .46 .54 .58 .62 .66 1];
A=[1 1 0 0 1 1 0 0 1 1 0 0 1 1];
weigh=[8 1 8 1 8 1 8];
b=remez(64,f,A,weigh);
%频率响应
[h,w]=freqz(b,1,256,1);
hr=abs(h);
h=abs(h);
h=20*log10(h);
figure;stem(b,’.’);grid;
figure;plot(w,h);grid;

“`这里写图片描述

这里写图片描述

最后

以上就是顺心鸵鸟为你收集整理的FIR滤波器设计FIR滤波器设计的全部内容,希望文章能够帮你解决FIR滤波器设计FIR滤波器设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部