0

フィルター (デジタル ハイパス IIR フィルター) を実装して、500 Hz 未満の周波数を減らし、より高い周波数を許可するタスクが与えられました。sptool と ellip 関数を使用して、次のように作成しました

% Sampling Rate (Hz)
Fs = 46875; 

% High-pass filter
N = 4; % Filter Order
Wn = 500/(46875/2);  % Cutoff Frequency in terms of Passband / Nyquist frequency ratio
Rp = 0.5; % Passband ripple specification
Rs = 20; % Stopband attenuation

[Num,Den] = ellip(N,Rp,Rs,Wn,'high');

secondOrderSection = tf2sos(Num,Den)./2

次に、L1 ノルムを使用してスケールファクタを計算しました。これを 16 ビット Atmel マイクロコントローラ (AC3U3 Xplained) に実装する必要があるため、スケールファクタを Q_0.15 形式で計算する必要があります。

% FIRST SECTION
firstScaleFactor = 1/(sum(abs(impz(1,secondOrderSection(1,4:6)))))
sf1_2_Q = round(firstScaleFactor*(2^15))

% SECOND SECTION
secondScaleFactor = 1/(sum(abs(impz(1,secondOrderSection(2,4:6)))))
sf2_2_Q = round(secondScaleFactor*(2^15))

問題: スケール ファクターが少し低いようです。最初のスケール ファクターは 77、2 番目のスケール ファクターは 14 です。計算にエラーはありますか?

4

1 に答える 1

1

テキサス インスツルメンツによるこのアプリケーション ノートには、固定小数点フィルターの実装でオーバーフローを回避するための手法の概要が含まれています。

于 2013-03-28T15:41:02.577 に答える