TNCアプリにおけるDemoduatorの動作確認
PICO TNCのdemodulatorにおける信号処理を調べてみた。
demodulatorはADCデータを1バイト読み込み、ある値sumを出す。sumを算出するに当たってdemodulatorは以下の信号処理を行っている。
- Bandpass Filter 入力:adc 出力:val
- Digital Correlator (Delay) 入力:val 出力:m
- Lowpass Filter 入力:m 出力:sum
それぞれの処理後の値をプロットしてみた。
まずは全体像。それぞれの値に大きな差があるため、わかりにくくなっているが、mとsumの関係はわかる。
Bandpass Filterの出力。通過周波数は900Hzから2500Hz。これによってOffset成分がなくなる。
Delayの出力。DelayはMarkとSpaceのTone差を最大化することを目的としている。これにより、両Toneの分別がしやすくなる。ここでは446usのDelay値を積算することで1200Hzは正値、2200Hzは負値となるようにしている。一般的なDelayはDelay値を加算しているが、ここでは積算している。
m=val[t] * val[t-446us] なお、Sampling Rate =1200x11では6サンプル分遅延した値を積算している。
6サンプリング前の値を取り出す方法として、6エレメント(6サンプル)のリングバッファを使っている。リングバッファの場合、現在のポインタをtとすると、t+1は現在よりも5サンプリング前のデータが格納されている。t+2は4サンプリング前、、、、といった具合。なのでtは今から6サンプリング前のデータ格納されている訳で、その値を取り出してから、tに新しくサンプリングしたデータを格納する。こうすることで、過去のサンプリング値を取り出したあと、そこに新しいサンプリングデータを格納し、ポインターを一つ進める、という動作を繰り返すことで常に6サンプリング前のデータを取り出すことができる。
Lowpass Filterの出力結果。カットオフ周波数は1200Hz。プラス部分がSpace(2200Hz)、マイナス部分がTone(1200Hz)となってる。逆に言えば、この波形を取得するためにDelayを使っている。
レベル識別の閾値は以下のとおり
- sum < - 4096 : bit=1 (Mark)
- sum >= 4096 : bit=0 (Space)
DIGITAL PLL
Ditigal PLLは11回で1 Time Domainを形成している。
- PLL Counter Step = 390,451,572
- PLL Counterは正値5回負値6回、または正値6回負値5回の合計11回で1 time domainとなる。
- PLL Step 11回でbit decode
- 入力bitに遷移が発生した時にPLL Counterを25%調整する。
- PLL Counter値が負値の場合は25%加算し、正値の場合は25%減算する。
このPLL Counter値の正負で25%加算減算するのがミソで、bit遷移が発生した時点でのPLL Counter値からPLL Counter値自体を調整し、遷移点とTime Domainの位置関係を保っている。
実験結果
PICO_TNCが発生するAFSK信号をPCに取り込み、サンプルコードでDelay(積算)とLowpass Filterを通してみた。
Beaconデータ:ダウンロード - mice7mono.wav
Delayコード:ダウンロード - dd_psude_stereo2.c
Delay後データ:ダウンロード - mice7mono_output.wav
LPFコード:ダウンロード - dd_lpf2.c
LPF後データ:ダウンロード - mice7mono_output_output.wav
« wsappxの停止、スタートメニュー表示なし、検索不可に関する対応方法メモ | トップページ | NEO-7M GPSモジュールが中国から届いた »
「無線と実験」カテゴリの記事
- インド・ブータンの衛星 A55BTN(2024.09.02)
- 衛星SONATE-2について(2024.08.27)
- モクソン・ターンスタイル アンテナの製作(2024.08.16)
- ECHOLINKでDTMF 9999はECHOTESTサーバーに接続(2024.05.08)
- WIRESとFTM-100の相性(2024.03.08)
「備忘録など」カテゴリの記事
- 衛星SONATE-2について(2024.08.27)
- NTT ONU+ホームゲートウエイの初期化(2024.08.19)
- TOSTEM QDC-18 MIWAラッチボルトのメンテナンス(2024.04.30)
- Windows 11でログオン画面でPINが使えなくなったパスワードロックのリカバリー(2024.04.05)
- ワルボロWYJキャブレターの構造(2024.03.12)
「ラズパイ日記」カテゴリの記事
- NEO-7M GPSモジュールが中国から届いた(2023.01.15)
- TNCアプリにおけるDemoduatorの動作確認(2023.01.09)
- AFSKでの復調について(2023.01.04)
- APRSでのNRZIについて備忘録(2023.01.02)
- pico_tnc 2200Hz(Space)でPhaseをずらす件の備忘録(2022.12.31)
「工作」カテゴリの記事
- モクソン・ターンスタイル アンテナの製作(2024.08.16)
- TOSTEM QDC-18 MIWAラッチボルトのメンテナンス(2024.04.30)
- 超昔のメインアンプのスピーカー保護スイッチの製作(2024.03.23)
- ワルボロWYJキャブレターの構造(2024.03.12)
- Diamond SWR & POWER METER SX-400のメーターランプ交換(2024.02.24)
« wsappxの停止、スタートメニュー表示なし、検索不可に関する対応方法メモ | トップページ | NEO-7M GPSモジュールが中国から届いた »
コメント