« 2022年12月 | トップページ | 2023年2月 »

2023年1月

2023年1月29日 (日)

IC-705とMX-P50Mにおける送信出力測定結果

IC-705にパワーアンプMX-P50Mを接続した場合の送信出力測定結果。

MX-P50M製品仕様 (Aliexpressより)
-周波数帯域: 80m 40m 30m-17m 15m-10m
動作モード: ssb cw am、rtty、fm-デューティーサイクルの削減
-RF入力: 5w
パワーアウト: 45w
-Bandモード: 手動
-必要電力: 13.8v 8a、赤 "" 黒 "-"
-冷却方法: パッシブ空冷
アンテナコネクタso-239 50オーム
-サイズ: 155*100*35ミリメートルd * ワット * h
-重量: 0.55kg

 

MX-P50Mのパワー測定環境は下図の通り。ダミーロードで終端したSWR/パワーメータにてMX-P50Mの出力を測定する。IC-705の外部電源は外部電源からの供給としている。
Photo_20230129164701

システム全景。MX-P50Mの電源は13.8V/30Aの電源で供給する。
Img03893_hdr_small

同軸ケーブルの接続の様子。
Img03886_hdr_small

パワー測定はIC-705出力の最大出力を10Wに設定した上で、出力レベルを10%から50%まで10%間隔で増加させることで測定した。52%を測定しているが、これは52%がリコメンデーションとのアドバイスを頂いたため。

7.090MHz
7090mhz

3.5MHz、21MHz、28MHz

3528mhz

結果と考察

製品仕様として最大入力5Wに対して出力は最大40Wとなった。周波数によって最大出力は変化して、28MHzでは40Wに対して21MHzでは32Wとなった。また入力3Wまでは出力はリニアに増加するが、それを超えると周波数によって出力の伸びは変化する。傾向としては4Wを超えると出力はサチる感じである。よって、最大入力4Wまでが無理のない運用との印象を受ける。

ISSからのAPRSパケット受信

ISSの信号を145.825MHzでモニターした。

以下IGATE TrafficとしてのISS関連シグナル。ただし、Jan-27,10:11:50のRF to Internetはテスト用に手持ちのハンディから発信したビーコン信号。
Issigatetraffic

 

RF to Internet

・・自作ビーコン発生機からFT-70Dを通して発信した確認用信号
2023-Jan-27 10:11:50 JA0WBT-7>SUTPW9,WIDE1-1,JA0WBT-10,I:    
`AB(l!-[/`"9C}_0

・・ISSから受信した信号
DX6RANがRS0ISSを通して発信した(RS0ISSがレピーターとして機能)信号
2023-Jan-27 13:10:33 DX6RAN>APWW11,RS0ISS*,JA0WBT-10,I:
=1044.71N/12258.22Er(Time 0:00:00)!INSERVICE!
以下の3つはRS0ISS自身が発信した信号
2023-Jan-27 13:12:34 RS0ISS>0P0PS1,APRSAT,JA0WBT-10,I:
'v&l SI]ARISS-International Space Station=
2023-Jan-27 13:15:34 RS0ISS>0P0PS0,APRSAT,JA0WBT-10,I:
'v&l SI]ARISS-International Space Station=
2023-Jan-27 14:48:41 RS0ISS>0P0PS0,APRSAT,JA0WBT-10,I:
'v&l SI]ARISS-International Space Station=

 

Internet to RF

・・インターネット経由でポルトガルのCT1ENIが当局を経由してRF送信
2023-Jan-27 14:15:11 (Port 2) JA0WBT-10>APU25N:
}CT1ENI>CQ,TCPIP,JA0WBT-10*::RS0ISS :QSL and 73 via ISS

つまり自分がDigipeaterとして機能しているという意味になる

Local Station

・・ローカルステーションとしてRS0ISSが記録されている。
RS0ISS

 

JJ1WTK局が公開されているISS Packet受信状況。当局の受信記録もログられている。

Isspacketbyja

2023年1月26日 (木)

アンテナアナライザーAA-1500でのケーブルインピーダンス測定について

Facebook RigExpertグループに投稿した内容をこちらにまとめておく。

事の発端はローカル局のアンテナ調査。6m同軸ケーブルでSWR=1.9位になる件。同じアンテナで10mだとSWR=1.1。そこで、ケーブル・インピーダンスを計ろうと思ったことが事の始まり。

ケーブル端に50Ωのダミーロードを付けてケーブルSWRとR,Xを測定したが、SWR=1.45、R=72Ωと出た。ちょっと変なので、AA-1500に直接ダミーロードを付けて測定した。

Photo-1がダミーロードを取り付けているところ。Photo-4でDC抵抗が50Ωであることを確認。
Img03799_small Img03800_small

この状態でもSWR=1.44(Photo-2)、R=72.75Ω(Photo-3)。System Impedanceは50ohmとなっている(Photo-5)。何かがおかしい感じがするのでSelf testを実施したらLoad Testにて232エラーとなった。232エラーが何を意味するかわからないけれど、Self Testがエラーに終わったのはわかる。

Screens

この状況をRigExpertグループにて報告したら、ダミーロードが3GHzまで対応するアダプターなしのダミーロードでないのがいけないとのコメントをいただいた。いいかげんなダミーロード取り付けが原因でSelf Testがエラーになるという指摘は反論することができないが、この状態でR=72.75ohmというR,X Chartが出てくることは納得がいかない。50Ωのダミーロード直付けでR=72ってのはどう見ても変だ。

Self TestがちゃんとしたダミーロードならPassするのだろうか?これはちゃんとしたダミーロードを買って試してみるしかない。一方AA-1500にはCalibration機能がある。カジュアルな方法になるけれども手持ちのダミーロードでキャリブレーションしてみたくなった。そのうえでケーブルインピーダンスを計ろうと思う。

まず同軸ケーブルの等価回路から特性インピーダンスを求める計算式を設定する。測定はRG58/1.5mと5D2V/6mの2本で行った。Open、Short試験でのShortではM型メスコネクターにて芯線と外被線をショートさせた。

Cablezo1

それぞれのケーブルの特性インピーダンスはともに70Ω程度となった。50Ωのダミーロードを直結した状態とほぼ同じだ。なので、系としてはちゃんと動作している感じだが、インピーダンスが50Ωから随分と外れている。

Cablezo2

そこでCalibrationを実行。

Cablezo3

キャリブレーション後のケーブルインピーダンスはおよそ50Ωと算出された。こうならないとおかしい。

Cablezo4

実際のアンテナのSWRがCalibration適用有無でどう変化するかを確認した。

Cablezo5

SWRの変化の様相は周波数によって異なることがわかる。ただ、思いのほかCalibrationの影響が現れていない感じもする。周波数によってSWR値が変化する(10MHz)場合とSWR値はそれほど大きく変化しないが共振点が変化する(14MHz)場合があることがわかる。

よくよく考えてみるに、なぜCalibration機能があるのだろう?ここについてはもう少し考えてみたい。

2023年1月20日 (金)

XR2206 Function Generator ICでのFSKについて

XR2206を使ったFunction Generator kitを作った。このICはFSKをサポートするのでその動作について確認した。

Img03748_small
奥がKit、手前がFSK切替信号を発生させているPico。

このキットは中国製で、正弦波と三角波を生成するFunction Generator。少ない外付け部品で広範囲の周波数の信号を作ることができる。回路図は以下のとおり。キットの回路図にFSK実験用のR10とPICO接続端子、SINE出力のAC成分だけを取り出すようにC10を追加している。

Xr2206fsk

このXR2206はTC1・TC2間に接続されるコンデンサーCとTR1(P7)とTR2(P8)のそれぞれに接続される抵抗値R6,7,8とR10によってそれぞれ2つの周波数を生成する。この周波数のどちかを出力するかをFSKコントロール端子(P9)によって選択する。発生する周波数は以下のとおり。

F = 1/RC

Xr2206fsk2

キットの回路図にR10を接続し、FSK制御信号として、Picoから8msecインターバルの信号を入力した。その結果が以下のオシロスコープ出力結果になる。

Ds1z_quickprint1_20230120212301

周波数の切り替えはスムーズだ。全く同期がとれていない2つの発信波形を切り替えると、切替時点でレベルが大きく変化するが、XR2206は波形のレベルが引き継がれている。これってどうやって実現するんだろう??優れものだと思う。

2023年1月15日 (日)

NEO-7M GPSモジュールが中国から届いた

アマゾンでオーダーしたNEO-7M GPSモジュールが中国郵便ePacketで届いた。PICO-TNCのGPSモジュールとして使えるか確認する。

届いたのはモジュール基板とアンテナモジュール、ピンヘッダー。
Img03600_small

ピンヘッダーを半田付けして、RS232Cレベル変換モジュールを通してPCのコムポートに接続してGPSモジュールの出力を見てみた。
Img03622_small

GPSモジュールは以下のテキストデータを1秒間隔で出力し続けている。

$GPRMC,013837.00,A,3540.78920,N,13738.11534,E,0.134,,150123,,,A*76
$GPVTG,,T,,M,0.134,N,0.248,K,A*2B
$GPGGA,013837.00,3540.78920,N,13738.11534,E,1,06,1.91,540.5,M,36.5,M,,*53
$GPGSA,A,3,25,32,24,10,23,12,,,,,,,3.20,1.91,2.57*09
$GPGSV,3,1,09,10,47,226,29,12,51,054,26,22,29,312,10,23,26,190,12*7B
$GPGSV,3,2,09,24,22,071,09,25,79,103,30,29,12,146,08,31,26,273,26*77
$GPGSV,3,3,09,32,61,324,29*48
$GPGLL,3540.78920,N,13738.11534,E,013837.00,A,A*6D

この出力内容の内、$GPGGAはプロトタイプで使っていたGPSモジュールが出力していた$GNGGAとフォーマットが同じであることが確認できたので、この出力をそのままPICO-TNCのコードに読み取らせた。

結果は良好で、PICO-TNCはビーコンを発生することができた。なお、NEO-7Mモジュール基板はGPSデータ出力時にLEDを点灯する。よって、このLEDの点灯でGPSデータ受信が行われていることが分かる。
Img03644_small

NEO-7Mモジュールをプラケースにねじ止め固定した。
Img03647_small

蓋を閉じる前の様子はこんな感じ。ケース内のスペースにはまだ若干の余裕がある。
Img03646_small

蓋を閉じるとこんな感じになる。FT-70Dよりも一回りちょっと大きなケースとなるが、プロトタイプ1号機としてはまずまずの出来だと思う。
Img03648_small

PICO-TNCとFT-70Dで近所を軽トラ(超低速)で走ってみた。Beaconインターバルは1分。プロットはいずれも移動経路上にあり、GPSとしては使いそうと判断した。
20230115neo7mtracking

このNEO-7Mモジュール+アンテナモジュールはアマゾンで850円程。送料が800円かかる。とりあえず追加で3個をオーダーした。

追記

このGPSモジュールは捕捉できるGPS衛星の数が5から8個程度のようだ。秋月で購入したGPSモジュールは、みちびきも捕捉できるので12個だった。つまりこのGPSもジュールはそれなりの誤差があるということだ。

$GPGGA,013837.00,3540.78920,N,13738.11534,E,1,06,1.91,540.5,M,36.5,M,,*53
$GPGGA,202824.00,3540.79166,N,13738.11552,E,1,07,1.55,510.8,M,36.5,M,,*59
$GPGGA,221438.00,3540.78683,N,13738.11710,E,1,08,1.10,513.7,M,36.5,M,,*52

実験をしている作業場所をGoogle Mapでみてみると35.67982(3540.7892)、137.63527(13738.1162)とでてくる。標高も30メートルは前後する様子だ。

2023年1月 9日 (月)

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の関係はわかる。
Graphtotal

ADCデータ列
Graph1

Bandpass Filterの出力。通過周波数は900Hzから2500Hz。これによってOffset成分がなくなる。
Graph2

Delayの出力。DelayはMarkとSpaceのTone差を最大化することを目的としている。これにより、両Toneの分別がしやすくなる。ここでは446usのDelay値を積算することで1200Hzは正値、2200Hzは負値となるようにしている。一般的なDelayはDelay値を加算しているが、ここでは積算している。
  m=val[t] * val[t-446us]    なお、Sampling Rate =1200x11では6サンプル分遅延した値を積算している。
Graph3
6サンプリング前の値を取り出す方法として、6エレメント(6サンプル)のリングバッファを使っている。リングバッファの場合、現在のポインタをtとすると、t+1は現在よりも5サンプリング前のデータが格納されている。t+2は4サンプリング前、、、、といった具合。なのでtは今から6サンプリング前のデータ格納されている訳で、その値を取り出してから、tに新しくサンプリングしたデータを格納する。こうすることで、過去のサンプリング値を取り出したあと、そこに新しいサンプリングデータを格納し、ポインターを一つ進める、という動作を繰り返すことで常に6サンプリング前のデータを取り出すことができる。

Lowpass Filterの出力結果。カットオフ周波数は1200Hz。プラス部分がSpace(2200Hz)、マイナス部分がTone(1200Hz)となってる。逆に言えば、この波形を取得するためにDelayを使っている。
Graph4

レベル識別の閾値は以下のとおり

  • 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 Delay Lpf

Beaconデータ:ダウンロード - mice7mono.wav

Delayコード:ダウンロード - dd_psude_stereo2.c

Delay後データ:ダウンロード - mice7mono_output.wav

LPFコード:ダウンロード - dd_lpf2.c

LPF後データ:ダウンロード - mice7mono_output_output.wav

 

2023年1月 5日 (木)

wsappxの停止、スタートメニュー表示なし、検索不可に関する対応方法メモ

Windows 10における以下問題の対応と方針

  • wappxのシステムリソース消費大
  • スタートメニュー表示なし
  • 検索欄に入力できない

作業記録

gpeditにてwappxを未構成に設定。ターゲットPCは既に有効に設定してあった。有効設定でもwappxは可也のCPUとメモリーの両リソースを消費していた。

Regeditにてsvchostのwappxをclipsvc AppXSvcからNotFound AppXSvcに変更

以上でCPU使用率およびメモリー使用率はかなり低下した。

その他問題で実施したこと

スタートメニューが現れない件参照リンク

以下を試したが効果なし。

システムファイルの整合性等の確認

  • DISM.exe /Online /Cleanup-image /Restorehealth
  • sfc /scannow

システム必須アプリの再導入、PowerShellから以下を実行

  • Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like “*SystemApps*”} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml” -Verbose}
    この実行は10時間以上時間がかかる。Powershellは途中でエラー終了してしまった。

検索入力が出来ない件参照リンク

以下を試したが効果なし。

  • ctfmon
  • コマンドプロンプト管理者権限で以下を実行
    REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v ctfmon /t REG_SZ /d CTFMON.EXE

復帰ポイント12月23日に戻す(Edgeのインストールがおこなわれていたようだ)-> 戻すことはできたが

スタートアップオプションからスタートアップ修復  -> スタートアップ修復するものがない

セーフモードからの回復、更新プログラム実施前に戻す -> 更新から10日以上経過していると戻せない

--------

上記いずれもNG。イベントビューアをみると以下のエラーが多発している。

障害が発生しているアプリケーション名 TextInputHost.exe
障害が発生しているモジュール名 KERNELBASE.DLL
TextInputHostに障害が発生すると日本語変換にも影響がでるらしい(参照リンク)。

このTextInputHostのエラーがスタートメニューや検索での問題を引き起こしている可能性が高いと判断。上記参照リンクではインプレースアップグレードによる修復でリカバリー成功している。

TextInputHostに関する修正がKB5019157にて昨年Windows11に適用されている。恐らくWindows10にも適用がされたのではないかと思うが記録なし。ターゲットPCでは12月15日更新プログラムが適用された記録があるので、この変更がエラーの引き金になっている可能性が高い。しかし、更新から10日以上経過していると更新前には戻せないようだ。

KERNELBASE.DLLが何でエラーを出し続けているかは不明。何かしら入力デバイス(タッチパッドなど)から異常な入力が頻発するとこうなるのだろうか?こうなるとインプレースアップグレードが視野に入ってくる。デバイスマネージャでタッチパッドをアンインストールしても状況は変わらず。次の再起動でドライバー再導入となったが状況変わらず。

KERNELBASE.DLLの修復に関する記述から、KERNELBASE.DLLの入れ替えが有効と思われる。しかし、この作業をマニュアルで行うことはリスクが高い。むしろインプレースアップグレードを行う方が安全・確実と判断できる。

Windows10のインプレースアップグレード

手順に従ってインプレースアップグレードを実行する。インプレースアップグレードとはシステム部分のみを上書き(アップグレード)するWindowsインストール手法。

この時点での結論

Windows10のインプレースアップグレードを実施する。一般的な修復作業では改善が見られず、手探りでWindows内部に手を入れようとするとWindowsのデスクトップが立ち上がらなくなるリスクを伴うので、インプレースアップグレードにより包括更新を行うのがベストな対応と判断される。

 

作業内容の詳細

Group Policy Editorによる修正

ストアの更新プログラムの自動ダウンロードおよび自動ダウンロードを未構成にする。

Wapp01 Wapp02 Wapp03

Registryの修正

Wapp04

Windows 10無印ではgpedit.mscが存在しないのでRegistryを直接編集する。
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
既に何かがインストールされているとxxx AppXSvcとエントリーされているはず。ここをNotFound AppXSvcとModifyする。
なお、Registry変更の場合は必ず事前にエクスポートして変更前データを保全しておくこと。

wappxの自動更新の未構成設定とRegeditによるwappxプロパティの変更の前後でのパフォーマンスモニター改善

作業前:wappxがCPUをかなり消費している。
Img03454_20230108143901

修正後。wappxによるCPU消費は改善された
Img03456_20230108144101

System File Checker (sfc) によるシステムファイル確認

破損ファイルが見つかったが正常に修復された。Img03458

DISMコマンドによるScanHealthtとRestoreHealthの実行

その後のsfcで正常性を確認。
Img03461

上記作業後もスタートメニュー、検索とも改善無し。

Windows アプリ更新作業の実施(背景画面)22時から翌日7時まで実行後、途中でPowerShellが停止してしまった(前面に出ているファイルリストはイベントビューでエラーがログられているtextinputhost.exeの保存先)。この後の再起動でWindowsが立ち上がらなくなり(Explorer起動エラーと思われる)、タスクマネージャから再起動をかけたところWindowsが復旧した。このことから、真の原因が不明なまま大きなアクションを実行することはリスクが伴う判断する。
Img03475

イベントビューワーのApplicationのイベントログには3分間隔でTextInputHost.exeの障害がログられている。障害を発生しているモジュールはKERNELBASE.dllなので、仮に障害対応を実施するとなるとKERNELBASE.dllに対して行うことになる。
Img03476

TextInputHost.exeとの関係で入力デバイスの問題を仮定し、TouchpadをDisableしてみたが効果はなかた。
Img03478_20230108145501

念のため、スタートアップオプションで修復作業を試みたがいずれも効果は無かった。
Img03493

Img03477
回復オプションで、explorerのシステムエラーがレポートされた。今回の障害との関連は不明だが、何かしらの異常な(大量な?)入力が行われている事を示唆しているようにも感じる。

加えてとても気になるのが頻繁(2,3秒おき)に回転リングが表示されることだ。これとKERNELBASE.dllとの関係を疑ってみる。
Img03495

定期的にシステムリソースを消費しそうなアプリで、かつ年末にインストールされたものとしてAvast Antivirusが目に留まった。
Img03497

これをアンインストールしてみる。結果は効果は認められなかった。
Img03496

以上

追記

インプレースアップグレードによって今回の問題は解消!!!

やっぱりマニュアルでチマチマ作業するよりは一括で更新がリスクも少なく安全と実感した。ただし、Windows 10が最新バージョンに更新されることで戸惑うアプリもあるようだ。実際、更新後にAcrobat Readerが互換性問題を検出し、継続使用するか否かのユーザー選択を求めてきた。

手順はシンプルでWindows 10ダウンロードリンクにアクセスし、ツールを今すぐダウンロードをクリックする。後は表示される手順に沿って作業を進めるだけ。ただ、その前にセキュリティツールをアンイストールすることがRecommendされている。これはセキュリティツールがWindows インストールを阻害する(システムファイルへのWriteアクセスをさせない)場合があるため。インストールプロセスが途中で停止してしまい、システムが不定状態になると厄介なので、ここは確実にアンインストールする。実際の作業ではNorton 360をアンインストールしたが、このアンインストールに先立って、後の再インストールの為にユーザーアカウント情報を保存するか聞かれるので、保存するを選択する。これによってWindows 10インプレースアップグレード完了後にNorton 360をインストールすれば、アンインストール前の状態に戻せるはずだ。

Win10

Windows 10ライセンスを含めた個人情報が引き継がれると思うので、Windows 10の再インストール後も自分用にカスタマイズされたWindows 10環境はそのまま維持されるはずだ。

Img03692_small

Windows 10インストール自体は結構時間がかかる。
Img03693_small

Windows10本体のインストール後は更新プログラムのインストールが続く。この過程で何度か(5回くらいだったか)リブートする。
Img03696_small

一連のインストール/更新作業が完了すると、ログオン画面が現れ、ログオンするとWindows 10インストール前のデスクトップが維持された状態でWindowsが立ち上がる。

事前情報通り、個人情報とアプリ環境はそのままでWindows 10本体が最新バージョンにリフレッシュされたようだ。このリフレッシュにより、イベントログ上もKERNELBASE.DLLエラーが引き起こしていた一連の問題がシステムログに記録されることは無くなり、障害は解消されたことがわかる。

以上

2023年1月 4日 (水)

AFSKでの復調について

AFSKの復調について大変参考になる情報があったので、その要約も含めて備忘録。

 

復調における課題:

  • Low SNR
  • Hight Twist -  Mark信号とSpace信号の大きな振幅差
  • Phase distortion - Mark信号とSpace信号が符号境界に到達しない
  • Inter-Symbol interference - Mark信号とSpace信号がPhase Distortionにより重なる
  • Frequency Distortion - Tone周波数とData Rateとの大きな差
  • No error correction - 1ビットエラーで破棄

Hight Twist対策

Digital Correlator

Comb Filter(自らの遅延信号によりその信号自体を増幅する手法)の利用。

Comb

Delayを最適化することでMarkとSpaceのTone差を最大化することができる。
Zero Cross Detectorを使ってアナログ信号をデジタル変換し、同じDelayをComb Filterに適用する。

テストでの入力信号は以下。ジッターを発生させる低周波成分が含まれていてこのままではZero Cross Detectorにかけられない。
Wave1

1200Hz-2200Hzを通過させるBandpass Filterを通すと、低周波成分が除去できる、
Wave2

Bandpass Filterを通した波形をZero Cross Detectorにかける。

Wave3

Digital Comb Filterを適用する。Digital Comb Filterでは以下を実行する。

  1. Zero Cross Detector出力をDelayさせた信号とXORを取る
  2. 得られた信号に対してLow Pass Filterをかける。
  3. 得られた波形に対してZero Cross Detectorをかける。

XORを取った信号波形

Wave4

Cutoff 760HzでLowpass Filterをとおした波形

Wave5

Lowpass Filterを通した波形に対してZero Cross Detectorをかける。

Wave6

Clock Recovery

送信信号に対して、受信側のクロックを同期させる必要がある。そうしないと上記Bit Periodが得られない。

この為にTX Dlayがある。TX Delayで送られる信号でこのClock同期をとる。よってTX Delayはそれなりの長さが必要となる。

この過程においてCarrierシグナルからビット周期(パルス幅)を測定する。

Wave7

クロック同期をとるためにDigital PLLをつかう。Digital PLLはジッター量を計り、そのジッター量により、Data Carrierに同期しているかを判断する。

ここでは、シンボル周期をサンプリング数22で測定している。この範囲で上記矩形幅によってPLLを遅らせたり、進めたりする。

ロック状態と判断するには、ジッター幅が1.1サンプル以内になった時、アンロックと判断するのはジッター量が4.4サンプル以上となった時。

2023年1月 2日 (月)

APRSでのNRZIについて備忘録

APRSでのNRZI方式について備忘録

APRSはHDLCフレームをAX.25で転送するとの理解で考えると、APRSのTNCはNRZ-SpaceでEncode/Decodeしていると解釈される。

NRZ-Spaceはレベル遷移をゼロで行う。一般的なNRZIは1でレベル遷移実行となっているからここが大きな違いだ。

これについてはWikiwandに書かれている。以下がNRZ-Space部分の抜粋。

Non-return-to-zero space

Non-return-to-zero space
Encoder for NRZS, toggle on zero

"One" is represented by no change in physical level, while "zero" is represented by a change in physical level. In clock language, the level transitions on the trailing clock edge of the previous bit to represent a "zero".

This "change-on-zero" is used by High-Level Data Link Control and USB. They both avoid long periods of no transitions (even when the data contains long sequences of 1 bits) by using zero-bit insertion. HDLC transmitters insert a 0 bit after 5 contiguous 1 bits (except when transmitting the frame delimiter "01111110"). USB transmitters insert a 0 bit after 6 consecutive 1 bits. The receiver at the far end uses every transition — both from 0 bits in the data and these extra non-data 0 bits — to maintain clock synchronization. The receiver otherwise ignores these non-data 0 bits.

更に重要なのは赤字部分。1が5つ続いたら0を挿入すること。これを知らないとデコードが出来ない。

« 2022年12月 | トップページ | 2023年2月 »