MATLABのfreqz関数の使用方法を教えて下さい。

MATLABでは、freqz関数を使用してデジタルフィルタの周波数応答を計算およびプロットできます。

freqz関数の基本的な使い方は次のようなものです。

freqz(b,a,n,fs)

なお、bとaはデジタルフィルタの係数で、nは周波数応答の点数、fsはサンプリング周波数である。

具体的には次のとおりです。

  1. デジタルフィルタの係数bとaを決定します。
  2. 周波数応答を計算するためにfreqz関数を呼び出します。freqz関数は、周波数応答を描画するために使用する点の数nとサンプリング周波数fsを指定できます。
  3. freqz 関数は、2 つの出力引数を返します。最初の引数は周波数応答の振幅応答であり、2 つ目の引数は周波数応答の位相応答です。
  4. 周波数応答をプロットするには、plot関数を使用できます。

以下は例です

% 定义数字滤波器的系数
b = [0.1 0.2 0.3 0.2 0.1];
a = 1;
% 计算频率响应
n = 1024; % 频率响应的点数
fs = 1000; % 采样频率
[h, w] = freqz(b, a, n, fs);
% 绘制频率响应
figure;
subplot(2,1,1);
plot(w, abs(h));
title('Amplitude Response');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
subplot(2,1,2);
plot(w, angle(h));
title('Phase Response');
xlabel('Frequency (Hz)');
ylabel('Phase (rad)');

上の例では、5次のデジタルフィルタを定義し、freqz関数を用いてそのフィルタの周波数応答を計算・プロットしました。振幅応答と位相応答をそれぞれ別のサブプロットに表示するために、subplot関数を使用していることに注目してください。

bannerAds