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モジュールが中国から届いた »
「無線と実験」カテゴリの記事
- HELLO UFO杖の製作(2023.09.12)
- EchoLink Proxy Serverのマニュアル設定(2023.09.04)
- WiFi速度測定(2023.07.27)
- DXV200L JARD保証認定について(2023.06.14)
- UISSでの通信 その2(2023.03.26)
「備忘録など」カテゴリの記事
- WiFi速度測定(2023.07.27)
- Windows 11が勝手にシャットダウンする件(2023.07.14)
- NTT IPv6プラスで速度出ない件(2023.04.29)
- 運転免許証更新 海老名警察署にて(2023.04.26)
- 非Windows11対応PCをWindows11にアップグレードする方法(2023.03.21)
「ラズパイ日記」カテゴリの記事
- 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)
「工作」カテゴリの記事
- 6V/16V過電圧保護回路(2023.03.08)
- アンテナマストを軽トラに取り付け。(2023.02.27)
- 144MHz 垂直ダイポール(2023.02.25)
- XR2206 Function Generator ICでのFSKについて(2023.01.20)
- NEO-7M GPSモジュールが中国から届いた(2023.01.15)
« wsappxの停止、スタートメニュー表示なし、検索不可に関する対応方法メモ | トップページ | NEO-7M GPSモジュールが中国から届いた »
コメント