前回の各周波数設定で動く基準となるプログラムを考えます。
@ T2周期の 1/2の周波数(DAC.Fs/2)のキャリア信号を作る。
@ ADC入力の低周波信号で、其のキャリア信号を変調する。
@ 其の結果はキャリア信号の両側波帯(DSB波)が得られる筈?
そして ADCに 3kHzの低周波信号を入力した時の DAC出力(0x03F6)の 200kHzスパン・スペアナ画面は・・・
DACのLPFの影響を受けてUSB側のレベルが少し下りますが見事な DSB信号が確認されました。
因みにオシロで見ると・・・
レベルの違う両側波帯が同時に見えるのでコンナもんでしょう。
今回はオトナしく 3kHzの低周波信号を ADC入力としましたが、10kHz前後の SSB信号でも良い訳です。
そして他の 33FJ64で作った SSB信号を SPIのデジタル信号として取り込めば、デバイスは2個になりますが一応フルデジタルの動作になります。
実は過去に其の実験は立証済みで、かなり綺麗な SSB信号が DAC出力として取り出せました。
でも残念ながらデバイスは2個必要で・・・(最近のツインコア dsPICなら1個で OK?)
しか~し、趣味でやっているので 33FJ64GP802・1個にもう少しコダワリたいと思います。
今回は前回で設定した T2/8=ADC/Fs=33.85kHz動作で SSB信号を作ってみます。
当然の様に PSNで作るので FIRフィルタは BPF/APF(ヒルベルト変換)の2個が必要です。
でもサンプリング変換後に LPFとして Yリングメモリは使用済みで、此の2個の為に使えるリングメモリは Xの1個だけです。
此れは困りました・・・イキナリ挫折ですかね!
其処で昔? Yリングメモリの使い方が解らず Xリングメモリだけで FIRフィルタを作った事を思い出しました。
其れを少し工夫して多少の高速動作にした怪しげ?な FIR/BPF,APFプログラムを下に・・・
一応 BPF=301tap APF=351tapになります。
後は然るべきデータを DAT2()に入れれば良い筈ですが
取り合えず前回のプログラム上の DAT2()に FIR/BPF,APF(ヒルベルト変換)用のデータを書き込みます。
BPF(301tap)はアドレス 0x2810から 301個
APF(351tap)はアドレス 0x2A80から 351個になります。
Advertisements
個々のデータ値は各自の好みになりますが。
そして実際にプログラムを走らせて、ADCに 1kHzの低周波信号を入力した時の DAC出力(0x03F6,0x03F8)は・・・
折角うまく動いた BPF/APF(合計 652tap)ですから、此れに 33.85/4=8.46kHzの I,Q信号を絡めて SSB(USB)信号を作ってみます。
其の キャリア用 I,Q信号を作るプログラムを下に・・・
そして其れ用の DATAを関数(DAT0)として作っておきます。
最後に前回までに作っておいた低周波 I,Q信号を絡めて SSB信号にします。
最後に前回までに作っておいた低周波 I,Q信号を絡めて SSB信号にします。
1kHzと 2kHzの2トーン入力時のキャリア信号 8.46kHz SSB(USB)のオシロ波形を下に・・・
でも此れは 33.85kHzで動かしているからで・・・の話です。
実際に 33.85*8=270kHzで動かせなくては目的を達成できません。
実際に 33.85*8=270kHzで動かせなくては目的を達成できません。
と云う事で次回は此のシリーズの最大難所である高速動作を考えます。
最終的には「・・・5」で作られた SSB信号を「・・・2」の入力信号に置き換えれば良い訳ですね!
(何~だ簡単じゃん)
でも実際にプログラムを組もうとすると大問題に直面します。
@ 「・・・5」のプログラムは 33.8kHz動作です。
@ 「・・・2」のプログラムは 270kHz動作です。
しかも題目である「100kHz以上の SSBを作る」を達成するには「・・・2」の動作周波数を落とせません。
・・・だったら「・・・5」の動作周波数を8倍の 270kHzにすれば良いじゃん・・・
しかし「・・・5」のプログラムは 33.8kHzだから巧く動くのであって、合計で 652tapの FIRフィルタは此のデバイス(33FJ64)の 270kHz動作では無理です。
普通は此処で諦めて、高性能(高価)なデバイスを選びます。
・・・しか~し私はシツコイ!・・・
結局1ヶ月以上の思考錯誤を繰り返して、プログラムの「分割」と云う方法に辿り着きます。
其の8分割の最終部分のプログラムを参考までに・・・
当然のように前後には膨大な量のプログラムが並びます。
入力は前回と同じ 1kHzと2kHzの2トーンですが、キャリア周波数が 100kHz以上になったので荒っぽさが消えました。
でも折り返しの影響が少し出て(-30db程)ギザギザが見えます。
次に其の折り返し対策用のアナログ・フィルタについて・・・
偶々ですが某所の通販カタログを見ていたら 136kHzの IFTの様なコイルがありました。
早速注文して使って見ましたが、快適動作です。
此れで折り返し信号もバッサリ切れました。
其の実験中の写真を・・・