ダイレクトPSN/SSB送信機Ⅱ・・・その4
前回までに出来上がったファイナル・ユニットを YM150ケースに収めて、その他諸々の引き回しをしました。結構大変でしたが・・・アレコレ定数変更も有り、見ての通り酷い有様です。其の甲斐があってか、バラックで測定したよりか性能は多少向上しました。気になる IMDを下に貼って置きます。1W2W1Wも2Wも -60db程で余り変りません。 3W此の辺(3W)で...
View Article小さな桐の箱
一昔前から、小さな桐の箱が捨てられずに有る事は判っていました。コンナ箱です。大きさの比較がないので9V乾電池(006P)を乗せて・・・もう少し深さが有って大きいと、真空管入れにピッタリなんですが。目の前に置いて真面目に考えてみました。最近、オーディオはパワーアンプこそ...
View ArticledsPIC33FJ64GP802/リングメモリ・・・その1
・・・素人の屁理屈を一席・・・「リングメモリ」って何?(1年前の私です) 連続した音声などのアナログ信号をA/D変換した後に、データを一時的に保管する循環バッファとして使われるリング状のデータメモリです。 たとえば20kHzでサンプリングしたA/D後のデジタル信号は、1秒/20kHz=50μ秒ごとに出力されます。...
View Article33FJ64GP802/リングメモリ・・・その2
前回は[X]メモリの設定方法を独りよがり的に書きましたが合っていると思います。 突然ですが此処で、先頭(偶数)・後尾(奇数)のアドレス値は何処まで許されるのか?つまり[X]リング・メモリの大きさの話をしておきます。 非DSP命令:0x0800~0x47FF でも両端部分は不安定動作になるので、実際は 0x0810~0x47EF ほどです。(たぶん)DSP命令:0x0800~0x27FF 実際は...
View Article33FJ64GP802/移動平均・・・その1
移動平均と云う言葉の意味が良く解りませんが、自己流に解釈します。(またかよ)前回までで dsPICの[X]リングメモリに ADCからのデータを順次書き込みました。 そして其の中の1番古いデータと1番新しいデータを読み出し、適当に?加算してエコー装置だと・・・...
View Article33FJ64GP802/移動平均・・・その2
前回組んだ怪しげなをプログラムを動かしてみようと思います。 内容はXリングメモリ(810~822の10個)に仕込んだ A/D変換データを単純に加算して8で割った後、D/A変換して左側出力として取り出したものです。横軸は周波数で縦軸は dbメモリになっています。...
View Article33FJ64GP802/FIRフィルタ・・・その1
FIRの具体的意味について調べてみると「有限インパルス応答」だそうで・・・益々解らなくなりそうなのでパスします。前回の 10個の ADCからのデータを今回は都合により 11個にして(都合が多いぞ)Xリングメモリも 11個(810~824)に設定します。asm("mov #0x0810,W0");asm("mov W0,XMODSRT"); asm("mov #0x0825,W0");...
View Article33FJ64GP802/FIRフィルタ・・・その2
何の事は無い、積和演算を高速で処理したいが為の DSP命令です。 そして DSP命令をしないと普通の 16bit/PICマイコンです。 其れが DSP命令をした途端に、DSPエンジンに火が入り変貌します。 当然の如く DSP命令が終ると・・・普通のPICマイコンに戻ります。 以上で...
View Article33FJ64GP802/FIRフィルタ・・・その3
いよいよ DSP命令の大本命 mac命令を動かそうと云う大仕事です。 その macを下に書いて置きます。mac W4*W5,A,[W8]+=2,W4・・・今回はYメモリを使わないので短いです。mac命令を動かすに当たり基本的設定があります。 まず Aアキュムレータを「空」にして、W4,W5,W8に数値を入れなくては・・・...
View Article33FJ64GP802/FIRフィルタ・・・その4
前回の「・・・その3」でプログラム本体の話は終っています。 でも tap数を多くするとフィルタ特性は豹変します、と書いたので豹変させてみましょう。現用で使っている SSBジェネレータの BPF部分が此れと同じプログラムなので、係数を含めて流用します。 仕様は・・・381tap/100~2900Hz BPFです。当然 381tapですから、其れに見合った Xリングメモリにしなくてはいけません。...
View Article