滤波器设计_滤波器设计软件 - CSDN
精华内容
参与话题
  • 滤波器设计 一、滤波器基本概念 二、RC有源滤波电路 三、RC有源滤波器的快速设计 四、滤波器设计注意事项 . . .
  • 各种滤波器设计实现

    千次阅读 2019-04-14 16:42:35
    经典滤波器和数字滤波器  一般滤波器可以分为经典滤波器和数字滤波器。 1、经典滤波器:假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。如果信号和噪声的频谱相互重迭,经典滤波器无能为力。比如 ...

    经典滤波器和数字滤波器
     一般滤波器可以分为经典滤波器和数字滤波器。
    1、经典滤波器:假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。如果信号和噪声的频谱相互重迭,经典滤波器无能为力。比如 FIR 和 IIR 滤波器等。  
    2、现代滤波器:从含有噪声的时间序列中估计出信号的某些特征或信号本身。现代滤波器将信号和噪声都视为随机信号。包括 Wiener Filter、Kalman Filter、线性预测器、自适应滤波器等
    Z变换和差分方程
      在连续系统中采用拉普拉斯变换求解微分方程,并直接定义了传递函数,成为研究系统的基本工具。在采样系统中,连续变量变成了离散量,将Laplace变换用于离散量中,就得到了Z变换。和拉氏变换一样,Z变换可用来求解差分方程,定义Z传递函数成为分析研究采样系统的基本工具。
        对于一般常用的信号序列,可以直接查表找出其Z变换。相应地,也可由信号序列的Z变换查出原信号序列,从而使求取信号序列的Z变换较为简便易行。
    在这里插入图片描述
    Z变换有许多重要的性质和定理:

    - 线性定理
      设a,a1,a2为任意常数,连续时间函数f(t),f1(t),f2(t)的Z变换分别为F(z),F1(z),F2(z),则有
      在这里插入图片描述

    - 滞后定理
      设连续时间函数在t<0时,f(t)=0,且f(t)的Z变换为F(z),则有
      在这里插入图片描述
      应用Z变换求解差分方程的一个例子:已知系统的差分方程表达式为y(n)−0.9y(n−1)=0.05u(n) ,若边界条件y(−1)=1,求系统的完全响应。
      在这里插入图片描述

    • IIR数字滤波器的差分方程和系统函数
      在这里插入图片描述
      其中ci为零点而di为极点。H(z)的设计就是要确定系数、或者零极点,以使滤波器满足给定的性能指标。
    • IIR数字滤波器结构
       数字滤波器的功能本质上是将一组输入数字序列通过一定的运算后转变为另一组输出数字序列。滤波器系统函数可以表达为多种不同的形式,每一种对应着不同的算法,也就对应着不同的实现结构。例如:
       在这里插入图片描述
      上述同一系统的三种不同描述形式就对应了不同的实现结构,或者说不同的滤波器结构可以实现相同的传递函数。IIR滤波器常见的结构形式有直接Ⅰ型、直接Ⅱ型(典范型)、级联型、并联型。通过差分方程能够画出包含反馈结构的数字网络称为直接型。 
      在这里插入图片描述
      直接Ⅰ型滤波器的网络结构可以根据差分方程很直观地画出(The Direct-Form I structure implements the feed-forward terms first followed by the feedback terms):
      在这里插入图片描述
      可以看出直接Ⅰ型滤波器需要N+M个延时单元(N≥M)。直接Ⅱ型结构是对直接Ⅰ型的变型,将上面网络的零点与极点的级联次序互换,并将延时单元合并。实现N阶滤波器只需要N个延时单元(The Direct-Form II structure uses fewer delay blocks than Direct-Form I),故称为典范型。

    直接Ⅱ型看上去不那么直观,可以通过下图进行理解。我们可以将整个滤波器系统看成A、B两个子系统串联而成,由于为线性系统因此交换顺序不影响最终输出结果,传递函数可写为:
    在这里插入图片描述
    直接型优点:直接型结构简单,用的延迟器较少(N和M中较大者的个数);缺点:系数ak,bk对滤波器性能的控制关系不直接,因此调整不方便;具体实现滤波器时ak,bk的量化误差将使滤波器的频率响应产生很大的改变,甚至影响系统的稳定性。直接型结构一般用于实现低阶系统。

    级联型:将系统传递函数H(z)因式分解为多个二阶子系统,系统函数就可以表示为这些二阶子系统传递函数的乘积。实现时将每个二阶子系统用直接型实现,整个系统函数用二阶环节的级联实现。
      并联型:与级联型类似,用部分分式展开法将系统函数表示为二阶子系统传递函数的和。每个二阶子系统仍然用直接型实现,整个系统函数用二阶环节的并联实现。

    用matlab设计滤波器得到参数

    在IIR滤波器设计过程中,通常利用模拟滤波器来设计数字滤波器,要先根据滤波器的性能指标设计出相应的模拟滤波器的系统函数H(s),然后由H(s)经变换得到所需要的数字滤波器的系统函数H(z)。常用的变换方法有冲激响应不变法和双线性变换法。下面使用MATLAB等工具直接生成数字滤波器系数:
      在MATLAB命令行中输入fdatool打开滤波器设计工具箱,为了便于分析,我们先从设计一个简单的2阶低通滤波器。Design Method用于选择IIR滤波器还是FIR滤波器,这里我们选择IIR滤波器,类型选择Butterworth,当然也可以选择其他类型,不同类型的频率响应不同,选择后默认的滤波器结构是直接II型。ResponseType用于选择低通、高通、带通、带阻等类型,选择低通滤波“Lowpass”。Frequency Specifications用于设置采样频率以及截止频率,这里填入200以及20,即采样率为200Hz,20Hz以上的频率将被滤除掉。Fiter Order 选择滤波器阶数,为了简单起见,先选择一个2阶滤波器做实验。
      参数设置好后点击Design filter按钮,将按要求设计滤波器。默认生成的IIR滤波器类型是Direct-Form II,Second-Order Sections(直接Ⅱ型,每个Section是一个二阶滤波器),在工具栏上点击Filter Coefficients图标或菜单栏上选择Analysis→Filter Coefficients可以查看生成的滤波器系数。
      在这里插入图片描述
      MATLAB中二阶滤波器差分方程公式如下(注意反馈项符号为负号): 
      在这里插入图片描述
      高阶IIR滤波器的实现是采用二阶滤波器级联的方式来实现的。默认情况下,Filter Coefficients把结果分成多个2阶Section显示,其中还有增益。增益的目的是为了保证计算的精度和系统的稳定性。选择[edit]→[Convert to Single Section],这时候系数变成我们熟悉的形式:
      按照上面的公式,滤波器差分方程为:y[n] =0.997x[n] +1.994x[n-1] + 0.997*x[n-2] - (1.994)*y[n-1] - (0.994)*y[n-2]
      知道了差分方程的形式并通过MATLAB得到滤波器系数后很容易写出相应的代码来实现数字滤波,另外还有一个网站能根据设计指标直接生成C代码:http://www-users.cs.york.ac.uk/~fisher/mkfilter/

    #define NZEROS 2
    #define NPOLES 2
    #define GAIN   1.482463775e+01
    
    static float xv[NZEROS+1], yv[NPOLES+1];
    
    static void filterloop()
    { 
      for (;;)
       {
         xv[0] = xv[1]; xv[1] = xv[2]; 
            xv[2] = next input value / GAIN;
            yv[0] = yv[1]; yv[1] = yv[2]; 
            yv[2] =   (xv[0] + xv[2]) + 2 * xv[1] + ( -0.4128015981 * yv[0]) + (  1.1429805025 * yv[1]);
            next output value = yv[2];
        }
    }
    

    原来的网址:https://www.cnblogs.com/21207-iHome/p/7059144.html
    相关链接:ARM官方DSP库IIR滤波器的实现(STM32)link

    FIR滤波器c代码link

    IIR滤波器的C++实现link

    展开全文
  • 滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。 滤波器设计的目标是实现数据序列的频率...

    原链接:   http://blog.sina.com.cn/s/blog_6163bdeb0102e1dj.html

    这篇文章写的非常好!!!!!!!!!!!!

    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。

        滤波器设计的目标是实现数据序列的频率成分变更。严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用fir滤波器实现。指定的要求不同,滤波器的设计也不同。

        Matlab的信号处理工具箱软件提供了两种方式设计滤波器:面向对象的和非面向对象的。面向对象的方法首先创建一个滤波器对象fdesign,然后调用合适的design参数设计。如实现一个5阶的低通巴特沃斯滤波器,3dB截止频率为200Hz,采样频率1000Hz,代码如下

    Fs=1000; %Sampling Frequency

    time = 0:(1/Fs):1; %time vector

    % Data vector

    x = cos(2*pi*60*time)+sin(2*pi*120*time)+randn(size(time));

    d=fdesign.lowpass('N,F3dB',5,200,Fs); %lowpass filter specification object

    % Invoke Butterworth design method

    Hd=design(d,'butter');

    y=filter(Hd,x);

        非面向对象的方法则适用函数实现滤波器设计,如butterfirpm。所有非面向对象的滤波器设计函数使用的是归一化频率,归一化频率[0, 1]之间,1表示πrad。将Hz频率转化为归一化频率的方法为乘以2除以采样频率。设计上面同样的滤波器,使用非面向对象的方法如下

    Wn = (2*200)/1000; %Convert 3-dB frequency

    % to normalized frequency: 0.4*pi rad/sample

    [B,A] = butter(5,Wn,'low');

    y = filter(B,A,x);

     

    滤波函数

    * filter:利用递归滤波器(IIR)或非递归滤波器(FIR)对数据进行数字滤波;

    * fftfilt:利用基于FFT的重叠相加法对数据进行滤波,只适用于非递归滤波器(FIR)

    * filter2:二维FIR数字滤波;

    * filtfilt:零相位滤波(IIRFIR均可)。

     

    滤波器特性分析

    * 脉冲响应Impz

        等价于使用函数filter输入一个脉冲信号x=[1;zero(N-1,1)]

    * 频率响应freqzfreqs

        Freqz:求解数字滤波器的频率响应

        Freqs:求解模拟滤波器的频率响应

    * 幅频和相频absangleunwrap

        Unwrap:解卷绕

    * 群延迟grpdelay

        群延迟即为滤波器相位响应的负一阶导数,是滤波器平均延迟的度量。

    * 零极点分析zplane

     

    IIR数字滤波器设计

    模拟低通滤波器设计

    * 巴特沃斯低通滤波器设计buttap

    * 切比雪夫低通滤波器设计cheb1apcheb2ap

    * 椭圆低通滤波器设计ellipap

    模拟滤波器最小阶数的选择

    * 巴特沃斯滤波器Buttord

    * 切比雪夫1型滤波器Cheb1ord

    * 切比雪夫2型滤波器Cheb2ord

    * 椭圆滤波器Ellipord

    模拟高通、带通、带阻滤波器设计

    * 模拟低通到模拟低通lp2lp

    * 模拟低通到模拟高通lp2hp

    * 模拟低通到模拟带通lp2bp

    * 模拟低通到模拟带阻lp2bs

    IIR实频变换

    * IIR实频率移位变换iirshift

    * 实低通到实低通的频率移位变换iirlp2lp

    * 实低通到实高通的频率移位变换iirlp2hp

    * 实低通到实带通的频率移位变换iirlp2bp

    * 实低通到实带阻的频率移位变换iirlp2bs

    * 实低通到实多带的频率移位变换iirlp2mb

    * 实低通到实多点的频率移位变换iirlp2xn

    IIR复频变换

    * IIR复频率移位变换iirshiftc

    * 实低通到复带通的频率移位变换iirlp2bpc

    * 实低通到复带阻的频率移位变换iirlp2bsc

    * 实低通到复多带的频率移位变换iirlp2mbc

    * 实低通到复多点的频率移位变换iirlp2xnc

    * 复带通到复带通的频率移位变换iirbpc2bpc

    模拟滤波器的离散化

    * 脉冲响应不变法impinvar

    * 双线性变换法bilinear

    IIR滤波器的直接设计

    * 贝塞尔模拟滤波器Besself

    * 巴特沃斯滤波器Butter

    * 切比雪夫1型滤波器Cheby1

    * 切比雪夫2型滤波器Cheby2

    * 椭圆型滤波器Ellip

    * 递归数字滤波器Yulewalk

        使用最小二乘法拟合频率响应函数。

    * 一般数字滤波器Maxplat

    小结

        相对于FIR滤波器,IIR滤波器的主要优点在于它以比FIR更小的阶数满足指定的滤波要求。虽然IIR滤波器有非线性的相位,但matlab软件中的数据处理方式是离散的,即全部数据序列被用于滤波。这允许了零相位滤波方法存在,可以使用函数filtfilt函数实现,它可以消除IIR滤波器的非线性相位偏移。

        IIR滤波方法小结

    滤波方法

    描述

    滤波器函数

    模拟原型

    使用连续域的经典低通原型滤波器模型零极点,再通过频率变换和滤波器离散化得到数字滤波器

    直接滤波器设计函数:

    besself,butter,cheby1, cheby2, ellip

    阶数预测函数:

    buttord, cheb1ord, cheb2ord, ellipord

    低通模拟原型函数:

    besselap, buttap, cheb1ap, cheb2ap, ellipap

    频率变换函数:

    lp2bp, lp2bs, lp2hp, lp2lp

    滤波器离散函数:

    bilinear, impinvar

    直接设计

    通过逼近线性幅值响应直接在离散域设计数字滤波器

    yulewalk

    广义巴特沃斯滤波器设计

    设计零点多于极点的低通巴特沃斯滤波器

    maxflat

    参数建模

    通过逼近给定的时域或频域响应得到数字滤波器

    时域建模函数:

    lpc, prony, stmcb

    频域建模函数:

    invfreqs, invfreqz

     

    FIR数字滤波器设计

    窗函数法

    * 设计具有标准频率响应的FIR滤波器Fir1

    * 设计具有任意频率响应的FIR滤波器Fir2(如多带通滤波器)

         使用凯塞窗时可以使用kaiserord函数设计FIR参数

    切比雪夫逼近法

    * 最佳一致逼近法设计firpm

         估计最佳一致逼近法滤波器的阶次firpmord

    * 任意响应法cfirpm

    约束最小二乘法

    * 设计线性相位滤波器firls

    * 设计多带线性相位滤波器fircls

    * 设计低通或高通线性相位滤波器fircls1

    设计Savitzky-Golay平滑滤波器sgolay

    小结

        FIR滤波器有如下主要优点:

    * 准确线性相位

    * 总是稳定的

    * 设计方法是线性的

    * 可以有效的在硬件上实现

    * 滤波初始过渡阶段持续时间有限

        它的主要缺点是它需要比IIR更高的阶数来实现给定的响应,相应的,它的滤波器延迟也比IIR的大。

        FIR滤波方法小结:

    滤波器设计方法

    描述

    滤波器函数

    窗函数设计法

    对傅里叶逆变换加窗

    fir1, fir2, kaiserord

    多带逼近

    最小二乘法一致逼近多带频率响应

    firls, firpm, firpmord

    约束最小二乘法

    在最大误差的约束下最小化误差平方和

    fircls, fircls1

    任意响应

    任意响应设计,包括非线性相位、复频域滤波器

    cfirpm

    Raised Cosine

    平滑正弦过渡的低通响应

    firrcos

     

    工具箱GUI

    Sptool信号分析工具箱GUI

    Wintool窗函数查看工具箱GUI

     

    展开全文
  • 滤波器设计软件

    2020-07-30 23:30:12
    滤波器设计软件,可以生成高通、低通、带通、带阻、巴特沃斯等,还可得到传输函数等。
  • 滤波器设计(一)

    2019-04-19 22:11:52
    滤波器设计 引言 对实际的控制系统而言,采集到的原始信号往往是有噪声的,而噪声往往会对系统的稳定性能产生隐患;或为了提取有用的控制信号,滤除不必要的频域成分,数字滤波技术必不可少。 滤波器的分类 按...

    滤波器的设计

    引言

    对实际的控制系统而言,采集到的原始信号往往是有噪声的,而噪声往往会对系统的稳定性能产生隐患;或为了提取有用的控制信号,滤除不必要的频域成分,数字滤波技术必不可少。

    滤波器的分类

    按频率特性分类:高通、低通、带通和带阻

    冲激响应特性分类:

    FIR滤波器:有限冲激响应,滤波器的输出只与当前输入和有限历史输入有关,无反馈回路,不存在不稳定的问题,其传递函数只有零点,这种滤波器的冲激响应时间是有限的,在一定时刻后滤波器的输出会为0;

    IIR滤波器:无限冲激响应,滤波器的输出不仅与当前和历史输入有关,还和历史输出有关;有反馈,传递函数既有零点也有极点,其冲击序列是无限的时间序列,随着时间的增长,输出可能会变小,但不会为0;

    滤波器的截止频率选取

    为了确定滤波器的截止频率,我们使用傅里叶变换来确定待滤波信号中的各频率分量信号占比;在matlab中调用快速傅里叶变换函数可以很方便地进行频谱分析(此处频率以赫兹为单位);ps:一般控制系统的频域分析以rad/s为单位,如bode图
    matlab进行频谱分析的示例代码如下:(输入信号由自己创建)

    %使用simulink输出信号使用快速傅里叶变换进行频谱分析
    num=144;
    T=10;
    Fs=num/T;
    Ts=T/num;
    t= Ts:Ts:T;%采样步长
    y= sim;
    N=length(t); %样点个数
    plot(t,y);
    fs=Fs;%采样频率
    df=fs/(N-1) ;%分辨率
    f=(0:N-1)*df;%其中每点的频率
    Y=fft(y)/N*2;%真实的幅值
    %Y=fftshift(Y);
    figure(2)
    plot(f,abs(Y));
    axis([0 fs/2 -inf inf]); 
    

    在这里插入图片描述
    这张是原始信号的波形。
    在这里插入图片描述
    这张是傅里叶变换后的的频域表示(横坐标为频率值,纵坐标为各谐波分量的幅值)。

    从频谱分析的结果来看,快速傅里叶变换能准确分离出不同频段的信号和其幅值,值得注意的是,由于香农采样定理,频谱图中频率高于采样频率一半的信号不能完全复现(故频谱只能分析频率在采样频率一半以下的信号)

    有了输入信号的频谱图我们便可以根据自己的需要以及信号的频谱特性来确定截止频率,以便得到自己想要的频率范围的信号。

    注意:在控制系统的反馈中,一般会结合被控对象的带宽来设置反馈信号的滤波器截止频率,高于系统带宽的信号往往是无意义的噪声(因为系统不能响应高于带宽的信号);

    一般来说,宏观机械系统的带宽在50Hz以下,微机电系统可以达到100KHz,电路系统的带宽可达100MHz甚至10GHz以上。

    滤波器的波德图

    FIR滤波器:

    从最基本的滑动均值滤波说起:

    以四阶滑动均值滤波为例,离散域传递函数:(1+z-1+z-2+z^-3)/4,从离散域分析,这是一个纯零点系统,无反馈;
    我们可以在matlab中画出该离散传递函数的波德图:
    方法如下:

    num=[1 2 3 4];%离散域传递函数形式:(1+2z^-1+3z^-2+4z^-3)/10
    den=[10];
    dbode(num,den,0.001)%假设采样频率为1000hz
    grid on
    

    在这里插入图片描述

    从波德图可以看出,这是一个低通滤波系统,截至频率在110hz左右(-3dB处);截止频率为Fs/n。其中Fs为采样频率。截至频率与采样频率相差越大,滤波器的阶数越高。(如下,采样频率1000hz,截止频率20hz,得到的滤波器127阶)
    在这里插入图片描述
    FIR由于只有前馈通道,没有反馈,可以不担心稳定性问题,这使得它在处理高速信号的时候具有优势。但是,FIR是非常消耗硬件资源的。使用硬件实现和代码实现均过于繁琐。

    IIR滤波器:

    反馈系统,最简单的例子是惯性环节;1/Ts+1,这是一个截止频率w约等于1/T的低通滤波器,但是惯性滤波的相位滞后比较严重,幅值曲线下降的也不够快,这时就需要更为高级的滤波器设计方法,如巴特沃斯和切比雪夫滤波器;下图为惯性环节的波德图:

    在这里插入图片描述

    将滤波器的传递函数表示离散化(欧拉法、双线性变换法)得到差分方程,即可在嵌入式中实现;在具有相同的截止频率时,IIR滤波器的阶数更低。使用matlab自带的fdatool工具箱,选择采样频率和截止频率即可设计需要的FIR,IIR滤波器,能直接给出差分方程形式的表示,直接使用即可。

    但是IIR是反馈系统,在高速的信号处理中,即使是使用并行实现,由于计算延迟和有限字长来造成的稳定性仍然是非常有挑战的。

    展开全文
  • 数字滤波器设计

    万次阅读 2018-03-10 14:48:30
    数字滤波一般分为时域滤波和频域滤波。频域滤波是将时域变换到频域,对相应频率做调整,然后反变换到时域,抛开FFT的话过程相对简单。在这里我们主要说时域滤波。时域滤波器分为无限脉冲响应IIR...在设计的过程中为...

    数字滤波一般分为时域滤波和频域滤波。频域滤波是将时域变换到频域,对相应频率做调整,然后反变换到时域,抛开FFT的话过程相对简单。在这里我们主要说时域滤波。

    时域滤波器分为无限脉冲响应IIR和有限脉冲响应FIR两种。IIR滤波器的优点是可以用较低的阶数(相比同样指标的FIR滤波器)实现滤波器。缺点一:不是线性相位,只能用于对相位信息不敏感的信号(如音频信号)。缺点二:有可能是不稳定的。在设计的过程中为了保持稳定性和因果性,要求z变换所有的极点都必须位于单位圆内。但即使是这样,也可能由于量化舍入等因素引起的误差最终导致IIR滤波器不稳定。FIR滤波器的优点是可以设计成具有线性相位的,并且是稳定的(FIR滤波器除原点处外没有极点),缺点是阶数高,也就是说计算量大。

    IIR滤波器设计:

    IIR滤波器最终具有如下形式:


    FIR滤波器最终为:


    IIR滤波器的设计主要是将已经比较成熟的连续时间滤波器(如巴特沃兹滤波器,切比雪夫滤波器,椭圆滤波器)变换成满足指标的离散时间滤波器。主要方法使脉冲响应不变法双线性变换法

    脉冲响应不变法:

    脉冲响应不变法的核心思想是:让离散时间滤波器的脉冲响应和已有的连续时间滤波器的脉冲响应保持“相等”。这里当然不可能相等,可以理解为,离散时间滤波器的脉冲响应是对连续时间滤波器脉冲响应的“采样”。

    设计过程如下:

    1,确定离散时间滤波器的技术指标。主要是通带截止频率,阻带截止频率,通带增益范围,阻带增益范围。下图摘自奥本海姆的《离散时间信号处理》。

      所以离散时间滤波器的技术的要求为:

      

      

    2,将离散时间滤波器所要求的技术指标转换成连续时间滤波器对应的指标。

    因为离散时间脉冲响应是连续时间脉冲响应的等间隔采样,所以离散时间滤波器与连续时间滤波器的脉冲响应有如下关系:

                         

    Td是离散时间脉冲响应对连续时间脉冲响应的采样间隔,在实际中会被消掉,计算的时候可以取便于计算的值,比如1。注意到等式右边乘了Td,是为了保持两者在频域的幅度一致。

    于是,两者的频率响应关系如下:

                    

    如果连续时间滤波器是带限的,并且满足:  对于

     那么就有:

                       

    比较可以看出。 如果领Td=1,则

    于是根据这个对应关系以及离散时间技术指标的两个不等式可以计算出连续时间的技术指标:



    3,选择连续时间滤波器,并按照2中的指标计算出连续时间滤波器的参数。

       以巴特沃兹滤波器为例:

       


    这里需要确定两个参数,一个是N, 一个是。这两个参数可以由2中的不等式取边际值变成等式方程组求出。

    4, 得到了N和, 连续时间滤波器就确定了,可以在S平面确定出极点的位置。为了保证稳定性,需要取S平面虚轴左面的N个极点。由这些极点,可以得到Hc(s)的表达式(拉普拉斯变换)。

    对于连续时间滤波器的系统函数,其对应的脉冲响应不变式的离散时间系统函数为: 


    于是,既然我们已经得到了H(s),就可以得到相应的离散时间滤波器的系统函数H(z),进而得到时域的表达式。

    至此,IIR滤波器通过脉冲响应不变法设计完毕!

    在设计过程中发现有一点是要求连续时间滤波器是带限的,这就是说,连续时间滤波器只能是低通或带通,那么脉冲响应不变法就不适用于设计高通或带阻的滤波器!而且,实际中连续时间低通滤波器也不是完全带限的,不过如果在高频部分趋于0,那么混叠就很小,在设计滤波器时,可以在满足通带指标的同时,适当超过阻带指标来做一些补偿。


    双线性变换法:

    双线性变换的核心思想是:确定一种s和z的代数变换,用这种变换将s平面映射到z平面。设计过程如下:

    1, 确定离散时间滤波器的技术指标。这一步和脉冲响应不变法相同。

    2,将离散时间滤波器所要求的技术指标转换成连续时间滤波器对应的指标。

         这一步和脉冲响应不变法不同的是,在脉冲响应不变法中,有。而对于双线性变换法,映射关系是:

          , 也即 


         上面的公式来源于
                     ,       
         具体的公式推导这里就不详细写了,重点就是Ω和ω的对应关系和脉冲响应不变法时不同了。
         接下来就可以按照这一对应关系,由1中ω的截止频率和频率响应的幅度的不等式,得到Ω对应的截止频率和不同频率响应的幅度的不等式,从而确定了连续时间滤波器的技术指标。
    3, 选择连续时间滤波器,并按照2中的指标计算出连续时间滤波器的参数。这一步和脉冲响应不变式相同。
    4, 根据N和,确定连续时间滤波器,得到H(s),这一步也和脉冲响应不变式相同。
    5, 根据H(s),得到H(z)。

         这一步需要将带入H(s),从而得到H(z)。这一步完成了双线性变换法从S平面到Z平面的映射。

    6, 根据H(z)得到形如的时域表达式。
    以下是三种用双线性变换法得到低通滤波器H(z)的零极点图,摘自奥本海姆的《离散时间信号处理》


        
    脉冲响应不变法的要求对应的连续时间滤波器必须是带限的。(否则会出现混叠)

    双线性变换法的要求对应的连续时间滤波器必须具有分段恒定的幅度响应。因为其频率映射(连续时间频率到离散时间频率)是非线性的,引入了频率轴的非线性畸变。


    FIR滤波器设计

    FIR滤波器的设计方法主要是窗函数法。

    所谓窗函数法,是说,假定有一个理想滤波器,那么它在时域具有非因果并且无限长的脉冲响应,为了在实际中应用,需要对该理想滤波器的脉冲响应h[n]加窗截断,来得到因果的并且有限长的脉冲响应。

    因为时域加窗后频域也会相应改变,理想滤波器就变成了“非理想”滤波器。于是问题就变成了寻找一个合适的窗,使这个加窗截断后的“非理想”滤波器满足技术指标。

    下图摘自奥本海姆的《离散时间信号处理》


    为了满足FIR滤波器的因果性和线性相位,窗函数应该满足:

                  

    也就是w[n]是对于点M/2对称的。

    通常所用的窗函数有:矩形窗,汉宁窗,海明窗,布莱克曼窗,凯撒窗等。

    因为凯撒窗的形状可以根据参数调节,所以对于频域指标有明确限制时会选择凯撒窗,通过频域指标来确定凯撒窗的参数。

    凯撒窗定义为:


    式中α=M/2, 为第一类零阶修正贝塞尔函数。

    所以凯撒窗也有两个参数:M和β。

    设计过程:

    1, 确定离散时间滤波器的技术指标。上图中的δ和通带截止频率,以及阻带截止频率

    2,定义为过渡区的宽度。并定义 用来计算β

        


        于是对于给定的δ就可计算出参数β。

    3,参数M可以通过以下公式计算出:

        

         至此,凯撒窗的参数就完全确定了。

    4,窗函数w[n]已经确定。如果理想滤波器的脉冲响应是h[n],那么对应的FIR滤波器就是h[n]w[n]。

    设计FIR高通滤波器:

    如果已有了FIR低通滤波器,很容易就可以设计出相反的高通滤波器。

    理想高通滤波器(广义线性相位)频响为:


    可以看出, ,于是高通滤波器的时域表示为:


    而且可以通过这种方式得到多通带多阻带的滤波器。

    展开全文
  • 滤波器设计指标

    千次阅读 2017-10-21 18:15:16
    经典滤波器与现代滤波器 经典滤波器就是我们熟知的FIR和IIR,经典滤波器要求对输入信号的频率范围已知,从功能上可划分为: 低通滤波器(LPF) 高通滤波器(HPF) 带通滤波器(BPF) ...
  • 滤波器设计

    2020-01-14 14:29:34
    N=16; %量化位数,即2的指数 Q_fir3=round(fir3/max(abs(fir3))*(2^(N-1)-1)); %将生成的数据以十进制数据格式写入txt文件中 fid=fopen('D:\fir3.txt','...%第一阶半带低通滤波器 %第二阶半带低通滤波器 ...
  • 设计一个RC高通滤波器或低通滤波器

    万次阅读 2019-05-03 11:42:42
    这个时候就需要滤波器来处理他们了。 二、滤波器电路图及其截止频率计算公式 一阶RC滤波器电路图如上,截止频率公式为:f=1/(2πRC) 如R=51Ω,C=22uF,则截止频率f=141Hz。意味着,高通RC滤波器会对低于141...
  • 几款好用的滤波器设计软件

    万次阅读 2012-11-05 15:40:55
    Nuhertz公司出品,Nuhertz公司是滤波器设计软件的行业领军企业。 网上只有试用版下载,仅有20天的试用期,过了软件就基本瘫痪了,当然咯,细心点的话还是可以找到序列号的。 功能非常齐全,值得一提的是,Filter ...
  • 带通滤波器设计

    万次阅读 2019-08-09 15:43:50
    一、滤波器滤波器按照频带划分可以分为:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)。其中射频天线领域主要采用带通滤波器(BPF)。 二、带通滤波器(BPF): ①:RF BPF:从天线中...
  • 用Matlab的FDAtool生成IIR滤波器参数

    万次阅读 多人点赞 2013-06-08 08:59:49
    MATLAB IIR数字滤波器设计   首先我们要明白相关的概念。 数字滤波器设计采用角频率,如何与实际信号频率对应? 角频率w,采样频率fs ,实际信号频率f的转换关系为:  W = 2*pi* f / fs 采样频率的角频率为...
  • Matlab滤波器设计

    万次阅读 2015-01-07 15:09:43
    滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。  滤波器设计的目标是实现数据序列的...
  • FIR数字滤波器设计方法

    万次阅读 2006-10-31 16:27:00
    在许多数字信号处理系统中,FIR滤波器是最常用的组件之一,它完成信号预调、频带选择和滤波等功能。F工R滤波器在截止频率的边沿... 本文主要研究了FIR数字滤波器设计方法,从数字滤波器的概念及基本原理的分析,得出数
  • 利用Matlab中的fdatool设计滤波器

    万次阅读 2018-04-14 11:40:44
    (一)设计一个低通滤波器打开matlab,键入fdatool后,会弹出该工具的对话框。然后按照下图设置相关参数,参数列表中的Fs应该是采样频率,Fc是截止频率,即幅频特性曲线-3dB对应的频率。点击“Design Filter”后,...
  • matlab设计模拟带通滤波器

    万次阅读 多人点赞 2018-10-25 12:44:02
    简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 代码如下: %设计带通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型...
  • 二阶有源低通滤波器设计

    万次阅读 多人点赞 2016-04-13 19:34:53
    滤波一般可分为有源滤波和无源滤波, 有源滤波可以使幅频特性比较陡峭, 而无源滤波设计简单易行, 但幅频特性不如滤波器, 而且体积较大。从滤波器阶数可分为一阶和高阶, 阶数越高, 幅频特性越陡峭。高阶滤波器通常可由...
  • 椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter):这是在通带和阻带等波纹的一种滤波器。椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。它在通带和阻带的波动相同,...
  • FIR滤波器和IIR滤波器的区别和选择

    万次阅读 2014-05-08 17:23:57
    例如用频率抽样法设计阻带衰减为-20db的FIR滤波器,其阶数要33阶才能达到,而如果用双线性变换法设计只需4-5阶的切贝雪夫滤波器,即可达到指标要求,所以FIR滤波器的阶数要高5-10倍左右。  2. FIR滤波器可得到...
  • matlab设计模拟高通滤波器

    万次阅读 2018-10-24 21:47:01
    简单记录下在matlab上如何设计出模拟的高通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 %设计高通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器 ...
1 2 3 4 5 ... 20
收藏数 30,692
精华内容 12,276
关键字:

滤波器设计