0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FIR滤波器在信号处理和通信系统中的应用

冬至子 来源:Egoedge 作者:Egoedge 2023-06-15 15:12 次阅读

FIR滤波器信号处理和通信系统中有着极为广泛的应用,全称是有限长单位冲击响应滤波器。

FIR滤波器的缺点是运算量大,但结合目前的芯片技术FPGA自然不必说,可以非常灵活的设计很高阶次的并行结构,ASICGPU都是高密度的流水线型DSP处理,对于FIR所要求的高运算能力,自然是不在话下。另一个缺点在于对于低频信号处理显得有一些力不从心。

FIR滤波器的优点在于阶次可以做的很高,并且很容易得到各种各样期望是的响应曲线,很灵活,并且通过调整窗函数,可以得到很好的滤波效果。

FIR滤波器可以说是和卷积相当紧密的联系在一起的,可以说FIR是完全依托于卷积的概念而生的一种滤波器。并且由于傅里叶前辈的贡献,我们可以很简单的用FFT来计算大长度的FIR,也因此在通信系统的信号处理中随处可见FIR的身影。

滤波

想要把一个知识点发散出去,那就得对它认识的足够深刻。作为一个硬件工程师,对于滤波的概念再熟悉不过了,所谓滤波,就是滤掉不想要的杂波,留下我们想要的信号。

但是如果我不能给别人讲出一点更深层次的东西,也辜负了别人关注我一番。从频域上来讲,信号是一个矢量,滤波的目的在于只保留这个矢量的某些分量,而滤掉其他分量,得到其在子空间内的投影。

图片

举个简单的例子,一阶低通滤波。一阶低通滤波是怎么实现的?在对输入信号做了延时之后再叠加回去,就得到了滤波之后的结果。信号在时间上的延时就相当于相位上的滞后,参照上图的频率响应曲线。当相位的滞后到了180°时,和原本的信号做叠加,得到的结果就是0,于是就被滤掉了。

把一阶低通滤波抽象到离散系统中,采用数字的方式来实现,其数学表达式是Y(n)=a*X(n)+(1-a)*Y(n-1)。这个结果在我大三的计算机控制课上有过详细的推导过程,但我没记住,自己推了半天也没推出来,索性就直接放个结果吧。可以看到,一阶低通滤波的本质是把输入信号和上一次的输出信号做一个加权,通过调不同的加权系数来调整滤波器的带宽。

数字滤波器可以认为是直接用数学语言来对信号进行滤波,所以其使用和实现上与威廉希尔官方网站 搭建的滤波器有着本质的差别。例如上面的一阶低通滤波,用程序实现的话可以实现任意的带宽设计,而用RC威廉希尔官方网站 实现就会严重受限于器件的工艺。所以把滤波器引申到数字处理之后可以得到这样的定义:滤波器的本质是对频率的加权叠加;和期望的响应曲线做相关。这两句话想不通也没有关系,下面还会继续介绍。

卷积

卷积对于工程学来讲可以说是大厦的根基一般,往广义了来讲,可以说世界上一切都是卷积的结果。

图片

上图是卷积运算的一个示意图。那么卷积的物理意义是什么?我看到过很多很多的解释,但回头来看,这些解释,懂得人看起来觉得说的没问题,不懂的人还是看不懂。我这里举一个例子来说明什么是卷积:小哪吒很皮,这天偷跑出去,在城里惹了祸,把别人家房子弄塌了,李靖给人赔礼道歉修房子,回到家打了小哪吒一顿,屁股肿了,过了两天肿消下去了,没多久又出去惹了祸,抽了敖丙的龙筋,老龙王找上门来,李靖气的又打了他一顿,屁股又肿了,过了半小时,李靖气没消,又打了一顿,老龙王不依不饶,李靖没办法又打了一顿,屁股就肿的越来越高。

在这个例子里,小哪吒屁股肿的程度是最终的输出结果,这个结果不是由李靖的某一巴掌所单独决定的,而是这一天加起来挨的打所共同影响的结果。从最终的结果来讲,第一巴掌的贡献是最小的,最后一巴掌的贡献是最大的。这就是加权叠加。而一巴掌的结果,随着时间的推移,影响会逐渐消散,这是一个一阶惯性环节的响应。整个过程可以抽象为李靖打在哪吒屁股上的巴掌在经过一阶惯性环节之后,不同的输入叠加,最终输出的结果是哪吒现在屁股肿的程度。仅仅一巴掌,大概半小时就消下去了,但是由于李靖打的时间间隔缩小,当无穷小时就是连续的积分,最终的结果是得好几天才能消肿。

所以通俗地讲:卷积就是在输入信号的每一个位置(每一巴掌)处叠加一个单位响应(半小时消肿),把每个位置得到的结果叠加就得到了输出。对于离散系统来讲,卷积的定义是

图片

x(n-k)是依次的n个输入,h(k)是每个输入所对应的权值。在滤波的应用中,最简单的就是移动平均数的方式,对相邻的几个历史值做平均加权。这一节最开始放的示意图是图像处理中常用的一种移动平均的滤波方式。

图片

图片

见上图,图中有很多噪点,这些噪点很尖锐,属于高频噪声,将图像提取出来,做成矩阵之后,就可以采用卷积的概念,把每一个点的输出和周围8个点做平均,于是得到如下的结果

图片

FIR滤波器

在理解了卷积的概念之后,FIR滤波器就变得顺理成章。把系统响应的函数换成我们所期望的函数,这样卷积的过程就变成了FIR滤波器。我看到很多地方对滤波的定义是:用一个期望的频率特征函数H(f)去乘以输入信号频率X(f)。对于这个解释我理解了好久,为什么要用一个期望的函数去强行改变输入频率?但现在理解了之后,对这个解释稍作修改之后应该会变得容易理解很多:用一个期望的频率响应去乘以输入信号,这就是滤波。

图片

上图是FIR的一个典型的结构,是一个简单的四阶移动平均的FIR滤波器。每次的输出都是对4次历史值的平均。下图分别是经过11阶平均和51阶平均的效果。

图片

当我们把平均值的响应函数换成我们所期望的响应函数,这样就变成了我们想要的滤波器。我们设计滤波器的过程就是选择FIR中各阶输入的权重值的过程。

FIR滤波器和FFT

滤波就是用一个期望的频率响应去乘以输入信号的频率,这个定义更明确一点来说是在频域上对滤波概念的解释,而在时域的解释就是用我们所期望的响应函数h(f)做iFFT之后的时域函数H(t)和输入信号X(t)做卷积。可以看到FIR滤波器其实是遵循的滤波在时域上的定义。

傅里叶前辈不仅给我们指出,所有的信号都可以被分解为若干正弦波的叠加,同时还给出了我们时域频域相互变换的方法,其中有一条相当重要的结论就是:时域上的卷积等价于频域上的乘积。因此对于FIR滤波器来讲,我们只需要把输入信号变换到频域,再乘以我们期望的响应函数,再逆变换到时域,就得到了滤波后的结果。

图片

FIR滤波器的设计

在有了FFT的工具之后,我们就可以很方便的进行FIR滤波器的设计。根据上面的说法,我们只需要给定所期望的特征函数h(f),就可以得到结果,再逆变换回时域,算出不同tap的权值,就得到了时域上FIR的滤波器参数

FIR滤波器的设计一般有窗函数法、频率取样法和优选法。窗函数法由于其简单直观,应用最多最广泛。举例说明窗函数法的设计应用。

图片

假设我们要设计一个低通滤波器,在频谱上的表示如上图,Fs是采样率,在第一奈奎斯特区内是低通的特性。所谓窗函数法就是加一个滤波器的窗口,如上图所示,对于低通的特性,理想效果是一个矩形窗,低于截止频率通,高于截止频率不通。

假设我们所要设计的滤波器为128阶,截止频率是Fc,在频谱上的表示就是Nc=Fc*(Fs/128),然后得到期望的特征函数

图片

在频域上,用这个特征函数乘以信号,就得到了输出的结果。我们用一个0Hz~Fs的chirp信号输入滤波器来测试,这个chirp信号的频谱就是一个矩形,得到的结果见下图

图片

可以看到128阶FIR滤波器的边沿还是非常陡的,有很好的滤波性能,但旁瓣的抑制很差,这个就是FIR滤波器在频谱上的泄露。泄露是由于FFT只能处理有限时间长度的时域信号,如果时域截取的数据不是信号周期的整数倍,就会存在泄露。由于矩形窗的边沿过于陡,只有很小的概率正好截取到信号周期的整数倍,因此泄露很严重。可以通过选择合适的窗函数,来减少频谱上发生的泄露。一般常用的窗函数有矩形窗、汉宁窗和平顶窗,他们的特征如下图所示

图片

不同窗函数所对应的结果看下图

图片

关于窗函数就不再介绍了,窗函数的选择是FIR滤波器设计的重点,矩形窗的优点在于计算量小,其他的窗函数基本都是基于升余弦函数,汉宁窗属于升余弦函数的一个特例。有兴趣的大家自己可以去研究研究。

最后要说的一点是,FIR滤波器的阶数越高,则边沿越陡,运算量越大。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    DSP in FPGA:FIR滤波器(一)

    FIR 滤波器广泛应用于数字信号处理,主要功能就是将不感兴趣的信号滤除,留下有用
    发表于 06-27 10:02 9524次阅读

    DSP in FPGA:FIR滤波器(二)

    FIR 滤波器广泛应用于数字信号处理,主要功能就是将不感兴趣的信号滤除,留下有用
    发表于 06-30 09:47 2156次阅读

    FIR滤波器和IIR滤波器有什么区别

    考虑来加以选择。从使用要求上来看,在对相位要求不敏感的场合,如语言通信等,选用IIR较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线
    发表于 06-27 04:20

    怎么设计高阶FIR滤波器

    相对无限冲击响应(IIR)滤波器,有限冲击响应(FIR)能够满足滤波器幅频响应的同时获得严格的线性相位特性,而数据通信、语音
    发表于 08-23 06:39

    怎么设计高阶FIR滤波器

    相对无限冲击响应(IIR)滤波器,有限冲击响应(FIR)能够满足滤波器幅频响应的同时获得严格的线性相位特性,而数据通信、语音
    发表于 08-27 07:16

    基于DSPBuilder的FIR滤波器系统该怎么设计?

    信息信号处理过程中,如对信号的过滤、检测、预测等,都要使用滤波器,数字滤波器是数字
    发表于 08-30 07:18

    什么是fir数字滤波器 什么叫FIR滤波器

    什么是fir数字滤波器 Part 1: Basics1.1 什么是FIR滤波器?FIR 滤波器
    发表于 01-16 09:42 1.7w次阅读

    轻松设计数字FIR滤波器

    的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器通信
    发表于 06-07 08:51 13次下载
    轻松设计数字<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>

    基于FPGA的硬件加速FIR流水结构滤波器实现、设计及验证

    。 随着数字通信技术的快速发展,高质量的信息处理滤波器的性能和资源占有量提出了更高的要求。有限冲击响应(FIR)数字有限冲激响应滤波器
    发表于 11-18 06:15 1535次阅读
    基于FPGA的硬件加速<b class='flag-5'>器</b>的<b class='flag-5'>FIR</b>流水结构<b class='flag-5'>滤波器</b>实现、设计及验证

    基于FPGA的可调FIR滤波器实际通信系统的实现方法设计

    的自适应调整是通过控制算法对信道信号进行快速检测,然后将结果和滤波器的输出结果进行差值计算进行反馈调节。利用Quartus II和DSP Builder设计基于FPGA的16阶系数可调FI
    发表于 07-23 17:21 2597次阅读
    基于FPGA的可调<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b><b class='flag-5'>在</b>实际<b class='flag-5'>通信</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>的实现方法设计

    基于FIR滤波器结构实现级联型信号处理器FPGA的设计

    在数字信号处理领域,滤波器无疑是个非常重要的环节。而在数字滤波器,有限脉冲响应(FIR
    的头像 发表于 04-22 08:07 5872次阅读
    基于<b class='flag-5'>FIR</b><b class='flag-5'>滤波器</b>结构实现级联型<b class='flag-5'>信号</b><b class='flag-5'>处理器</b>FPGA的设计

    FIR滤波器和IIR滤波器的区别与联系

    滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。 2.FIR和IIR FIR
    的头像 发表于 12-30 23:45 3872次阅读

    数字信号处理v2 第七章 FIR数字滤波器的设计方法(1)

    版。 重点知识! 重中之重! 实际使用,看重的就是FIR滤波器的线性相位特性和稳定性。通信信号
    的头像 发表于 03-13 18:05 1199次阅读
    数字<b class='flag-5'>信号</b><b class='flag-5'>处理</b>v2 第七章 <b class='flag-5'>FIR</b>数字<b class='flag-5'>滤波器</b>的设计方法(1)

    IIR滤波器FIR滤波器的区别

    数字滤波器是数字信号处理中最常用的一种技术,可以对数字信号进行滤波、降噪、增强等处理,其中最常见
    的头像 发表于 06-03 10:21 1.9w次阅读

    如何区分IIR滤波器FIR滤波器

    IIR(无限脉冲响应)滤波器FIR(有限脉冲响应)滤波器是数字信号处理领域中两种非常重要的滤波器
    的头像 发表于 07-19 09:44 4801次阅读