MATLABのfilter関数の使用方法

MATLABにおけるfilter関数は、信号に対してデジタルフィルタ処理を行う。フィルターの係数ベクトルとフィルタ処理したい信号の2つのパラメータを取る。

文法は下の通りです。

y = filter(b, a, x)

フィルタの分子係数ベクトルが b、分母係数ベクトルが a、フィルタリングされる信号が x です。

例えば、正弦波信号に10階のローパスフィルタをかける場合には、以下のようなコードを使用する。

fs = 1000; % 采样频率
t = 0:1/fs:1; % 时间序列
f = 50; % 正弦波频率
x = sin(2*pi*f*t); % 正弦波信号
% 低通滤波器系数
fc = 100; % 截止频率
[b, a] = butter(10, fc/(fs/2));
% 使用filter函数滤波
y = filter(b, a, x);
% 绘制结果
figure;
subplot(2, 1, 1);
plot(t, x);
title('原始信号');
subplot(2, 1, 2);
plot(t, y);
title('滤波后信号');

上記のコードでは、正弦波信号を定義し、butter 関数で 10 次のローパス フィルタ係数を生成し、最後に filter 関数で信号をフィルタし、元の信号とフィルタ後の信号を描画します。

なお、フィルタ係数bとa の長さは同じ長さであり、0 ではないことに注意してください。

bannerAds