私は信号処理の初心者で、私のプロジェクトの 1 つは C++ フィルター クラスを実装することです。Chebyshev タイプ I および II、Butterworth、Elliptic などの一般的なフィルターの高次係数が必要ですが、残念ながら、ネット内のほとんどの係数テーブルには最大 10 次までしかリストされていません。MATLAB を使用してこれらのフィルターを生成し、それらの高次係数を取得することにしましたが、混乱しているのは、1 セットの係数しか与えないことです。これは、(ao、a1、a2 ……アン)。
IIR フィルターには 2 セットの係数があり、通常は a0,a1...an と b0,b1,...,bn で表されることを知りました。これらの係数を生成して Excel ファイルにエクスポートする MATLAB コードを次に示します。
%Chebyshev Filter Coefficients
filename = 'cheby2coefs.xlsx';
for Order = 1:64
fprintf('This is');
disp(Order);
fprintf('coefficients');
[i,j] = cheby2(Order, 20, 300/500);
disp([i,j]);
fprintf('\n');
xlswrite(filename,[i,j]',Order);
end
これまでのところ、MATLAB を使用してこれらの係数を計算する方法に関する情報源がネット上にほとんどないため、苦労しています。私の質問は、これらのフィルターの IIR 係数を正確にどのように生成するのかということです (それらが IIR であると仮定して)。