MATLABでローパスフィルターのコードを作成する方法

MATLABでは、designfilt関数を使用してローパスフィルターを設計できます。以下に簡単なサンプルコードを示します。

% 设计低通滤波器
fs = 1000; % 采样率
fc = 100; % 截止频率
[b, a] = butter(6, fc/(fs/2), 'low'); % 6阶巴特沃斯滤波器

% 生成随机信号
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*120*t) + randn(size(t));

% 使用滤波器进行滤波
y = filter(b, a, x);

% 绘制原始信号和滤波后的信号
figure
plot(t, x, 'b')
hold on
plot(t, y, 'r')
legend('原始信号', '滤波后的信号')
xlabel('时间')
ylabel('幅值')

上記のコードでは、まずbutter関数を使って、カットオフ周波数100Hzの6次バターワース低域通過フィルタを設計しました。次に、50Hzと120Hzの正弦波とノイズを含むランダム信号を生成しました。最後に、filter関数を使って生成した信号をフィルタに通してフィルタ処理し、もとの信号とフィルタ処理された信号をグラフにしました。

bannerAds