阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器

在写这篇文章之前,xxx已经写过了几篇关于改阻带窗函数主题的文章,想要了解的朋友可以去翻一下之前的文章

    

1.计划参数    

        首先,先明白几个观点。通带,阻带,过渡带,通带纹波和阻带纹波分别是什么?看下图,

    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第1张图片

           范围阻带和窗函数称为通带,对于允许误差而言,阻带和窗函数这个范围,称为通带纹波。一样的,对于范围阻带和窗函数则是阻带,阻带和窗函数这个范围,称为阻带纹波。中间的玄色部份是过度带。角频率阻带和窗函数称为通带边缘频率,阻带和窗函数角频率则被称为阻带起始频率。

           平日的滤波器的计划,都会指明这几个参数,最后计划的滤波器,必须满意这几个参数。当然,这里举得例子是低通滤波器的,高通或者带通,就与之相反了。

    

2.理想FIR低通滤波器

          首先,先由理想低通滤波器为动身点开始考虑。理想低通滤波器的频响如下所示

    阻带和窗函数

           这里的阻带和窗函数,表示截止频率。

           先由理想的滤波器动身,求其理想滤波器的单位打击响应。得到了单位打击响应,也就得到了滤波器的系数。这样,我们就计划出了一个理想的滤波器。这是一个完善的想法,那么开始着手吧,寻找他的单位打击响应。运用离散时光的傅里叶逆变换,有如下的式子。

    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第2张图片

           由此,我们得到了一个单位打击响应的表达式(sinc是辛格函数),到这我们就能够计划出一个理想的滤波器了吗?好吧,让我们再确认一遍。第一,这个式子是离散的。对于单位打击响应,本来就应该是离散的,没有错,很好,我们距离理想滤波器又近了一步。第二,这个式子所求出的单位打击响应的个数,很可怜!个数是无限的。到这里,我们基本可以确定了,理想滤波器是实现不了的。

           虽然理想滤波器是实现不了的,但是我们可以退一步,从无限的理想滤波器的单位打击响应中,在选择一部份打击响应,构成一个不太理想的,但又到达一定标准的滤波器。我们只能“迁就”着使用这个不太理想的滤波器,那么接下来还有一个问题,我们要如何从无限的数列中选择出无限的一部份,从而到达我们的计划要求。

    

3.窗函数

           首先,我们先考虑最简略的情况。对于理想单位打击响应而言,其形状大概和一个高斯分布很像(当然,只是很像,n=0时候,单位打击响应的值最大,由双方渐渐减少。当然,可能也出现负值。)!所以,我们为了能使得滤波器的性能接近理想滤波器,那么,我们选择其最重要的部份,也就是,值较大的部份。其余部份则放弃。根据之前的叙述,我们可以使用如下式子表示。

    阻带和窗函数

          这个式子确切可以帮助我们选择一部份无限的数列。而这个式子,被称为矩形窗。可以看出,N越大,性能越街进理想滤波器。这里N称为窗函数的长度。

          这就是我们选定的窗口,然后我们把窗口函数加上,也就是加窗!其实也就一个乘法,如下所示。

    阻带和窗函数

     这样,也就完成了一个加窗。

     但是,在现实的实际过程中,很罕用矩形窗的。其原因是,矩形窗的阻带衰减不够,仅仅只有21[dB]。于是,林林总总的窗口就被提出了。各有各的特点,在我们所学的初步的计划中,我们就仅仅看阻带衰减就够了。各种窗函数的性能如下。

    每日一道理
有些冷,有些凉,心中有些无奈,我一个人走在黑夜中,有些颤抖,身体瑟缩着,新也在抖动着,我看不清前方的路,何去何从,感觉迷茫,胸口有些闷,我环视了一下周围,无人的街头显得冷清,感到整个世界都要将我放弃。脚步彷徨之间,泪早已滴下……

    ================================================

          窗函数                       过渡带巨细                       阻带衰减                               

    ================================================

      矩形窗                           1.8π/N                                  21[dB]

      汉宁窗                            6.2π/N                                 44[dB]

      汉明窗                            6.6π/N                                 53[dB]

    布莱克曼窗                        11π/N                                 74[dB]

    

    

4.用窗函数实现一个FIR滤波器

           以上说了很多有关于窗函数的原理,当初来整理一下计划的步调。

           1.根据计划的规格,参数要求,我们选择一个合适的窗函数。这里重要我们还是看阻带衰减,阻带衰减要大于给定的值。一般,若没有给定阻带衰减,我们则需要通过通带纹波和阻带纹波去求,如下。

    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第3张图片

          2.根据要求的通带边缘频率和阻带起始频率,盘算过度区的巨细,从而盘算出窗函数的长度。

          3.最后,根据窗函数和理想滤波器的单位打击响应,盘算出我们所需要的滤波器的单位打击响应。

          当初,我们来实战一下,假设我们需要计划如下滤波器。

        阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第4张图片

           规格中,没有给定阻带衰减,我们只能自己盘算。

       阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第5张图片

           这里,阻带衰减为40.8[dB],我们选择的窗的阻带衰减不能比这个小,这里其实汉宁窗就能够做到。但我还是选择用汉明窗去做。然后,盘算窗长度。

    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第6张图片

          

            窗长度有了,盘算单位打击响应吧。

      阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第7张图片

           这样,我们就得到了一个FIR滤波器。上面是我们盘算出来的这个滤波器的单位打击响应。

    

    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器_第8张图片

        

    

       5.写在最后的话

           到此,我们“计划”出了一个滤波器,我们也顺遂的得出了它的单位脉冲响应。

           但是,滤波器真的可以实现么?真的可以计划出这样一个滤波器么?

           我觉得要拿着这个单位脉冲响应结果,去现实盘算一下,才能发明,这样的滤波器是实现不了的!拿教科书上的话来讲,这个滤波器是非因果的!

           

    

        

文章结束给大家分享下程序员的一些笑话语录: 系统程序员
  1、头皮经常发麻,在看见一个蓝色屏幕的时候比较明显,在屏幕上什幺都看不见的时候尤其明显;
  2、乘电梯的时候总担心死机,并且在墙上找reset键;
  3、指甲特别长,因为按F7到F12比较省力;
  4、只要手里有东西,就不停地按,以为是Alt-F、S;
  5、机箱从来不上盖子,以便判断硬盘是否在转;
  6、经常莫名其妙地跟踪别人,手里不停按F10;
  7、所有的接口都插上了硬盘,因此觉得26个字母不够;
  8、一有空就念叨“下辈子不做程序员了”;
  9、总是觉得9号以后是a号;
  10、不怕病毒,但是很害怕自己的程序;

--------------------------------- 原创文章 By
响应和单位
---------------------------------

你可能感兴趣的:(函数)