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);
    

     滤波结果

     

  • 相关阅读:
    点分治。。。。。
    巧克力
    离散化初步
    [NOI1998]:围巾裁剪
    关于Tarjan(3)——离线LCA
    Eigen学习笔记2-Matrix类
    Eigen学习
    Git使用入门笔记
    LeetCode 之二叉树中序遍历(使用栈实现)
    leetCode之二叉树数中序遍历(递归实现)
  • 原文地址:https://www.cnblogs.com/jiangkejie/p/13935890.html
Copyright © 2011-2022 走看看