zoukankan      html  css  js  c++  java
  • matlab中设计低通滤波器

    方法1

    可以通过Filter Builder交互界面设计,这里选择Lowpass。

    指定参数,选择FIR滤波器,采样频率128Hz,通带截止频率15Hz,阻带截止频率16Hz。通带最大波纹0.1dB,阻带最小衰减60dB。这里选用Kaiser窗法设计(或等波纹法equiripple)。

     可以生成对应的代码

    function Hd = getFilter
    %GETFILTER Returns a discrete-time filter object.
    
    % MATLAB Code
    % Generated by MATLAB(R) 9.3 and DSP System Toolbox 9.5.
    % Generated on: 22-Jun-2020 15:08:24
    
    Fpass = 15;   % Passband Frequency
    Fstop = 16;   % Stopband Frequency
    Apass = 0.1;    % Passband Ripple (dB)
    Astop = 60;   % Stopband Attenuation (dB)
    Fs    = 128;  % Sampling Frequency
    
    h = fdesign.lowpass('fp,fst,ap,ast', Fpass, Fstop, Apass, Astop, Fs);
    
    % 等波纹法
    %Hd = design(h, 'equiripple', 'MinOrder', 'any', 'StopbandShape', 'flat');
    % kaiser窗法
    Hd = design(h, 'kaiserwin');

    查看滤波器特性

    Hlp = getFilter;
    freqz(Hlp) 
    % fvtool(lpFilt)
    

     

    通过filtfilt获得零相位延迟的滤波

    y = filtfilt(Hlp.Numerator, 1, x); % filtfilt(b, 1, x)

     滤波结果

     

    方法2

    也可以直接通过fdesign和design设计,跟前面是等价的。

    Fpass = 15;   % Passband Frequency
    Fstop = 16;   % Stopband Frequency
    Apass = 0.1;    % Passband Ripple (dB)
    Astop = 60;   % Stopband Attenuation (dB)
    Fs    = 128;  % Sampling Frequency
    
    h = fdesign.lowpass('fp,fst,ap,ast', Fpass, Fstop, Apass, Astop, Fs);
    
    % 等波纹法
    %Hd = design(h, 'equiripple', 'MinOrder', 'any', 'StopbandShape', 'flat');
    % kaiser窗法
    Hd = design(h, 'kaiserwin');

    方法3

    也可以通过designfilt设计数字滤波器,结果是一样的。

    lpFilt = designfilt('lowpassfir','PassbandFrequency',15/64, ...
             'StopbandFrequency',16/64,'PassbandRipple',0.1, ...
             'StopbandAttenuation',60,'DesignMethod','kaiserwin');
    
    y = filtfilt(lpFilt, x);
    

     滤波结果

     

  • 相关阅读:
    C++11 override和final
    C++11 类型推导auto
    C++11 强枚举类型
    C++11 explicit的使用
    《数据结构与算法之美》——冒泡排序、插入排序、选择排序
    《数据结构与算法之美》- 栈
    Spring Boot系列——AOP配自定义注解的最佳实践
    Spring Boot系列——死信队列
    Spring Boot系列——7步集成RabbitMQ
    让我头疼一下午的Excel合并单元格
  • 原文地址:https://www.cnblogs.com/jiangkejie/p/13935890.html
Copyright © 2011-2022 走看看