Quantcast
Channel: JA1QVM
Viewing all articles
Browse latest Browse all 161

33FJ64GP802/FIRフィルタ・・・その4

$
0
0
前回の「・・・その3」でプログラム本体の話は終っています。
でも tap数を多くするとフィルタ特性は豹変します、と書いたので豹変させてみましょう。

現用で使っている SSBジェネレータの BPF部分が此れと同じプログラムなので、係数を含めて流用します。
仕様は・・・381tap/100~2900Hz BPFです。
当然 381tapですから、其れに見合った Xリングメモリにしなくてはいけません。
その設定用プログラムを関数形にして・・・

XYZ(){
asm("mov #0x0810,W0");
asm("mov W0,XMODSRT");
asm("mov #0x0b09,W0");
asm("mov W0,XMODEND");
asm("mov #0x8008,W0");
asm("mov W0,MODCON");
asm("mov #0x0810,W8");
}

そして係数データも 381個にしますが、此処に全部は書けないので中を省略します。

DAT(){
asm("mov #0x1600,W1");

asm("**********");・・・1個目
asm("**********");・・・2個目
**********
**********
**********

asm("**********");・・・380個目
asm("**********");・・・381個目
}

此の**********部分は、各自の好みにより計算した数値を入れて下さい。
此れも忘れずに↓
asm("do #379,loop");・・・前回のプログラムの #9を #379にする
以上の設定で動かした結果を下に・・・

イメージ 1

横軸は [kHz] 縦軸は [db]で・・・381tap/BPFの実力は凄いですね。
1年ほど使っていますが問題ない様です。

さて私を含めて初心者と云う事で、扱いの容易い Xメモリだけを使ってプログラムを組んで来ました。
でも徐々に仕組みが解ってくると Yメモリも使って見たくなります。
実際に macの様な DSP命令は X/Y両方使うことが前提だと思います。
因みに Yも使うと 2000tap/20kHz近く入ります(実証済み?)
先は長いですがボケ防止にはピッタリの題材を与えてくれた OMに感謝です。

今回をもって FIRフィルタについての屁理屈は終ります。
長い間お付き合い頂き有難うございました。
by    JA1QVM

P.S  FIRフィルタのフロクとして登場する筈だった「ヒルベルト変換」の理論が薄ら覚えで、開発時は解ってプログラムを作りましたが今は自信が有りません。 間違いなくボケは進んでいるようです!

Viewing all articles
Browse latest Browse all 161

Trending Articles