MATLABでシンプルなバンドパス/バンドストップフィルタをデザインする

MATLABで簡単なバンドパス/バンドストップフィルタを設計するには、fir1関数またはfirpm関数を使用してフィルタ係数を設計できます。以下にfir1関数を使用してバンドパス/バンドストップフィルタを設計するサンプルコードを示します:

% 设计一个简单的带通/带阻滤波器
fs = 1000; % 采样频率
fcuts = [100, 200, 300, 400]; % 通/阻带边界频率
mags = [0, 1, 0]; % 通/阻带增益
devs = [0.01, 0.05, 0.01]; % 通/阻带允许波动范围
% 使用fir1函数设计滤波器系数
order = 64; % 滤波器阶数
b = fir1(order, fcuts/(fs/2), 'bandpass', 'cheby1', 'noscale');
% 绘制滤波器的频率响应
freqz(b, 1, 1024, fs);
% 使用滤波器滤波信号
% x = 输入信号
% y = filter(b, 1, x);

上で述べたコードでは、fs はサンプリング周波数、fcuts は通過域/阻止域の境界周波数、mags は通過域/阻止域のゲイン、devs は通過域/阻止域における許容変動範囲であり、order はフィルタの次数です。fir1 関数を使用してフィルタ係数 b を設計し、filter 関数を利用してフィルタを適用します。最後に、freqz 関数を使用してフィルタの周波数応答をプロットします。

广告
広告は10秒後に閉じます。
bannerAds