MatlabでLPF

備忘録です。
Matlabでローパスフィルタを簡易的に作成してみました。

    処理手順(おそらく)

  1. LPFの変数指定
  2. FIRフィルタの係数計算
  3. フィルタ係数と入力信号から、通過信号算出

fdesign関数のパラメータをいじれば、いろいろなフィルタが簡易的にすぐに設計できそうです。
帯域を狭帯域にしすぎたり、阻止帯域での減衰が大きすぎると係数が増加し、処理時間も増加します。

function y = lpf_filtered_signal(x,Fs)
    % LPF 処理信号算出関数
    %
    % 変数
    %   Fs  : サンプリング周波数
    %   Fp  : 通過帯域周波数
    %   Fst : 阻止帯域周波数
    %   Ap  : 通過帯域のリップル [dB]
    %   Ast : 阻止帯域の減衰量 [dB]
    
    % 変数の設定
    Fp  = 10*1e6;
    Fst = 20*1e6;
    Ap  = 1;
    Ast = 50;
    h = fdesign.lowpass('Fp,Fst,Ap,Ast',Fp,Fst,Ap,Ast,Fs);
    
    % フィルタの設計
    H = design(h);
    
    % フィルタ通過信号
    y = filter(H.Numerator,1,x);
end
    参考にしたサイト
  • 実践に即したデジタル フィルターの紹介 – MATLAB & Simulink – MathWorks 日本
  • フィルターの実装と解析 – MATLAB & Simulink – MathWorks 日本
  • ローパス FIR フィルターの設計 – MATLAB & Simulink Example – MathWorks 日本