バージョンが変わって、前回から設定画面が少し変わっています。
FIR Compilerでは、複数チャンネルを時分割で処理することができますが、うまく動かせなかったので左右2チャンネルを別々に処理してみました。(所要リソースが増えます)
※実際には、別途アップするFIR Compilerを使わない頂き物のコードを使うつもりです。
周波数特性
理論値と実測値を示します。実測値はCS4270コーデックのアナログ入出力端子間で測定しました。WaveSepectraの測定の都合上測定ダイナミックレンジが取れていません(実測値:阻止域)が、19kHzサイン波の比較では100dB程度の減衰量がありました。過剰なスペックかもしれませんね。
FIR Compilerの画面
周波数特性実測値(通過域)
周波数特性実測値(阻止域)
19kHzサイン波(ローパスフィルタ通さず)
19kHzサイン波(ローパスフィルタ挿入)
WaveSpectraで周波数特性測定の覚え書き
・WaveGeneのユーザ波形で周期スイープ信号を発生
・WaveSpectraでドライバ・録音デバイス・録音フォーマットをWaveGeneと一致させる
・WaveSpectraでFFTデータ数をWaveGeneと一致させる
・WaveSpectraで窓関数を なし(矩形) とする
96kHz以上のサンプルレートでは、波形が不安定で測定できない場合あり
(当方の環境ではダメでした)
WaveSpectraを用いた周波数特性の測定について
周期スイープを用いた周波数特性の測定について
FIR Compilerの設定
lpf15k コード
FIR Compiler出力の桁取りが良くわかっていません。実験的に設定を探りました。
なお、FIR Compilerが512クロック毎に出力データをアップデートしてくれるのでサンプリングパルス en は使っていません。
module lpf15k_cg(
l15k_l_i, l15k_r_i, l15k_l_o, l15k_r_o,
clk, en, reset, l15k_thru
);
input [23:0] l15k_l_i;
input [23:0] l15k_r_i;
output [23:0] l15k_l_o;
output [23:0] l15k_r_o;
input clk;
input en;
input reset;
input l15k_thru;
wire [43:0] dout_1, dout_2;
assign l15k_l_o = (l15k_thru) ? l15k_l_i : {dout_1[43], dout_1[35:13]};
assign l15k_r_o = (l15k_thru) ? l15k_r_i : {dout_2[43], dout_2[35:13]};
// FIR Compiler v5.0
lpf15k_coregen lpf15k_coregen (
.clk(clk),
// .rfd(ready_for_data),
// .rdy(ready),
.din_1(l15k_l_i[23:6]), // input [17 : 0] din_1
.din_2(l15k_r_i[23:6]), // input [17 : 0] din_2
.dout_1(dout_1), // output [43 : 0] dout_1
.dout_2(dout_2)); // output [43 : 0] dout_2
endmodule
フィルタ係数 COEファイル
・タップ数: 256
・入出力サンプルレート: 152kHz
・通過域: 0~15kHz
・阻止域: 19kHz~
この係数ファイルは頂き物です。(JA2SVZ様ありがとうございます)
radix=2;
coefdata=
000000000000000001,
000000000000000001,
000000000000000000,
111111111111111111,
111111111111111110,
111111111111111101,
111111111111111110,
000000000000000000,
000000000000000011,
000000000000000101,
000000000000000101,
000000000000000001,
111111111111111100,
111111111111110111,
111111111111110110,
111111111111111010,
000000000000000010,
000000000000001100,
000000000000010010,
000000000000001111,
000000000000000011,
111111111111110011,
111111111111100101,
111111111111100011,
111111111111110000,
000000000000001001,
000000000000100010,
000000000000101111,
000000000000100101,
000000000000000110,
111111111111011101,
111111111110111110,
111111111110111100,
111111111111011101,
000000000000011000,
000000000001010000,
000000000001101010,
000000000001010000,
000000000000001000,
111111111110101111,
111111111101110001,
111111111101110010,
111111111110111110,
000000000000111000,
000000000010101010,
000000000011010101,
000000000010011010,
000000000000000101,
111111111101011000,
111111111011100110,
111111111011110101,
111111111110001110,
000000000001111001,
000000000101000111,
000000000110001011,
000000000100001110,
111111111111110111,
111111111010111110,
111111110111111111,
111111111000101100,
111111111101001101,
000000000011101110,
000000001001001011,
000000001010101011,
000000000110111100,
111111111111010000,
111111110110111111,
111111110010010010,
111111110011111101,
111111111011111010,
000000000110110110,
000000001111100111,
000000010001100001,
000000001010110100,
111111111101111011,
111111110000101000,
111111101001100110,
111111101101000010,
111111111010011000,
000000001100000000,
000000011001011111,
000000011011101010,
000000010000001011,
111111111011011000,
111111100110101100,
111111011100100001,
111111100011000010,
111111111000101111,
000000010100010111,
000000101000101011,
000000101010101111,
000000010111101001,
111111110110101101,
111111010110111110,
111111001000011100,
111111010100001100,
111111110111001000,
000000100010010000,
000001000000111000,
000001000010010011,
000000100010101000,
111111101110000010,
111110111100100000,
111110100111001101,
111110111100000110,
111111110101101110,
000000111011100110,
000001101100001011,
000001101100010100,
000000110101100010,
111111011011111010,
111110000111101110,
111101100100010001,
111110001011000101,
111111110100101010,
000001110110111110,
000011010100010010,
000011010101100100,
000001100110001101,
111110100100011110,
111011011110001010,
111001111000010000,
111011001001001101,
111111110100000110,
000111010011100101,
001111111110010110,
010111100101010000,
011100000001011001,
011100000001011001,
010111100101010000,
001111111110010110,
000111010011100101,
111111110100000110,
111011001001001101,
111001111000010000,
111011011110001010,
111110100100011110,
000001100110001101,
000011010101100100,
000011010100010010,
000001110110111110,
111111110100101010,
111110001011000101,
111101100100010001,
111110000111101110,
111111011011111010,
000000110101100010,
000001101100010100,
000001101100001011,
000000111011100110,
111111110101101110,
111110111100000110,
111110100111001101,
111110111100100000,
111111101110000010,
000000100010101000,
000001000010010011,
000001000000111000,
000000100010010000,
111111110111001000,
111111010100001100,
111111001000011100,
111111010110111110,
111111110110101101,
000000010111101001,
000000101010101111,
000000101000101011,
000000010100010111,
111111111000101111,
111111100011000010,
111111011100100001,
111111100110101100,
111111111011011000,
000000010000001011,
000000011011101010,
000000011001011111,
000000001100000000,
111111111010011000,
111111101101000010,
111111101001100110,
111111110000101000,
111111111101111011,
000000001010110100,
000000010001100001,
000000001111100111,
000000000110110110,
111111111011111010,
111111110011111101,
111111110010010010,
111111110110111111,
111111111111010000,
000000000110111100,
000000001010101011,
000000001001001011,
000000000011101110,
111111111101001101,
111111111000101100,
111111110111111111,
111111111010111110,
111111111111110111,
000000000100001110,
000000000110001011,
000000000101000111,
000000000001111001,
111111111110001110,
111111111011110101,
111111111011100110,
111111111101011000,
000000000000000101,
000000000010011010,
000000000011010101,
000000000010101010,
000000000000111000,
111111111110111110,
111111111101110010,
111111111101110001,
111111111110101111,
000000000000001000,
000000000001010000,
000000000001101010,
000000000001010000,
000000000000011000,
111111111111011101,
111111111110111100,
111111111110111110,
111111111111011101,
000000000000000110,
000000000000100101,
000000000000101111,
000000000000100010,
000000000000001001,
111111111111110000,
111111111111100011,
111111111111100101,
111111111111110011,
000000000000000011,
000000000000001111,
000000000000010010,
000000000000001100,
000000000000000010,
111111111111111010,
111111111111110110,
111111111111110111,
111111111111111100,
000000000000000001,
000000000000000101,
000000000000000101,
000000000000000011,
000000000000000000,
111111111111111110,
111111111111111101,
111111111111111110,
111111111111111111,
000000000000000000,
000000000000000001,
000000000000000001;
0 件のコメント:
コメントを投稿