2022年8月5日金曜日

2022/08/05 Amateur Radio Transceiver Made by Software Engineer #15

2022/08/05 softwareエンジニアがつくるtrx #15
Unfortunately this text is in Japanese only.
使用するマイコンSoC chipの選定。候補は枚挙にいとまがないですが取りあえずESP32(無印)にしました。理由は
  • 手持ちがある
  • 安価なのに比較的高速・低消費電力
  • FPU(浮動小数点ユニット)を搭載
  • デュアルコアでRTOS
  • I2Sが内部ADC/DACにDMAマッピングできる(ステレオ1chのみ)
  • WiFi・Blutooth対応(技適なしモデルなので使用予定なし)
開発環境はVS code+PlatformIO(arduino core)
先ず、内部DAC(8bit) I2S経由ステレオ(2ch)でどの程度速度が出るか軽くテストしてみました。先人のsampleをパクッて参考にして実行。

正弦波を出力。オシロは28KHzと表示。

FFT。内蔵DACは8bitなためダイナミックレンジが低いからか少々ジッターが出てるみたいだけど出力周波数を上げてS/N比稼いでどこまでカバーできるか。

L/R 2chへI/Q直交信号みたいに90度移相して同時出力。

振幅違いのsin()/cos()のツートーン。任意波形を生成できることを確認。DACの確認は終了。本日はここまで。

2022年7月24日日曜日

2022/07/24 Amateur Radio Transceiver Made by Software Engineer #14

2022/07/24 softwareエンジニアがつくるtrx #14
Unfortunately this text is in Japanese only.
また、半年近くも更新が滞ってた...💦

知識の習得と実験で寄り道し過ぎて遅々として進まなかったmicrowave SSBハンディー機製作ですが、スローモーションのように進んでいます。
フレンド局から「いつ完成するの?」というプレッシャーの中、他の方が着々と成果をblogにて綴っておられる中、「急がば回れ」と自分に言い聞かせて公私の合間にやってます。

遅れの主な原因は、送受信系統を従来のダブルスーパーヘテロダインの様な正攻法な構成にすると、例え直交変調にしたとしてもLO漏れ等が原因で、どうしてもアナログフィルター作成の必要がありそうで新スプリアス基準に適合した電波の質を確保するためにはアナログ的技術鍛錬に時間を要するため、送信系統はμSDXの様なダイレクトコンバージョンにしたかった事(終段のE級増幅は除く)。それとソフト屋としては、無線工学(=数学)の知識が乏しくても、仕組みについては最低限の理解をするため、ソースコピーと改変でなくスクラッチから起こしたかった事です。とりあえず送信系は目途がついた...かも。

で、ごちゃごちゃやってたのは

〇 SSBのベースバンド信号生成(ヒルベルト変換)

 実信号からのIQ信号分離後、FFTして負周波数をゼロに、正周波数を2倍にしてiFFTする方式。
 任意の帯域でUSB/LSBが生成できたが、これを極座標変換し、振幅と位相成分に分離し、低周波のキャリアに同時変調し、確認のためベースバンドへ復調して再生すると、FFT時に適用した窓関数の周期で音声レベルに周期性が出てが揺れてしまう。
 まぁ、連続する音声サンプリング信号を定周期で切り出して窓関数かけてからFFTするため揺れるのは当たり前だと思うがどうすれば良いのか分からないので挫折。

 で、皆さんがやってるフィルター方式に切り替える。複素フィルターを設計できないといけないので頓挫するかと思いましたが、  [数式をほとんど使わずに理解するディジタルフィルタ] のサイトを読んで意外にも簡単にできました。この説明、「本記事では、できるだけ直感的にディジタルフィルタを理解することを目指して解説していきます。」って書いてあるだけあって凄く分かりやすい。

総合的なテスト(確認)はRFワールド No.22  「らくらく!SDR無線機入門」 のC#ソフトを改造しました。この記事は非常にためになりました。記事、ソフトの

[良かった点]
 ・単純乗算でのmixerと比べて直交mixerの仕組みと優位性が分かったこと。
 ・演算を回転(移相)ととらえて角速度がイメージできるようになり、位相や周波数が回転速度で表現できることが直感的、視覚的に理解できたこと。
 ・ソースを読んで、AM/FM変調、フィルタ畳み込み演算など具体的な手法(計算方法)が分かったこと。

[混乱した点]
 ・入力がIQ信号に分離されている区間のAPになっているため、IQ分離は外付けハードウェアを想定されていて、IQ信号形式のファイルやcos()/sin()しか入力できず、PCのマイクやLINE端子から実信号を入力してソフトウェアでIQに分離する処理がなかったこと。
 ・使用されているフィルタはSINC()実数フィルタのため正負の対象性を使用して±1.5KHzで3KHz帯域を切り出しているが下限が0と時は良いがゼロ以上に設定すると帯域の中心から情報が欠落すること。

取りあえず複素フィルタパラメータ計算の結果とSdrStudy(mod)での検証結果のみ。

 [Tj LabのAF PSNの記事] と結果が同じ。サンプリング周波数は16,000sps、バッファ長は1024個でtap数は512。

 


SDRstudy C#のソースを追加/変更して結果の確認作業。







「SSB」チェックボックスは実信号からのSSB(USB) RF信号生成。







  • PCのLINE端子ステレオ実信号をモノラル信号に変換。
  • FFT/iFFTを使用してヒルベルト変換し負周波数をカット。
  • 極座標変換し、位相と振幅でキャリア(4KHz)に同時変調。

複素フィルターでの実装









  • PCのLINE端子ステレオ実信号をモノラル信号に変換。
  • 複素フィルター(設計値は300Hz~3KHz)で加重平均畳み込み演算

バッチリ指定帯域が切り取られてる。切れ味最高!アナログでは不可能でしょうね。検証は終わった感あるので、そろそろ実機ハード作成とマイコンソフト作成時期かなぁ。

2022年2月13日日曜日

2022/02/13 Amateur Radio Transceiver Made by Software Engineer #13

2022/02/13 softwareエンジニアがつくるtrx #13
Unfortunately this text is in Japanese only.
長らく更新が滞ってた...💦
仕事が忙しいのもあるケド、次から次へと脱線して覚えたり実験したりする事項が多すぎたのと、パワーアンプ部分がどうしてもクリアできない。検証結果の一部分のみ記録。

( TQP7M9103 )
• 400 – 4000 MHz
• +29.5 dBm P1dB
• 16.5 dB Gain at 2140 MHz
• +5 V Single Supply, 235 mA Current
Pout=+29.5 dBm CW
片面基板に銅テープでマイクロストリップライン引いた渾身の作でテストしたケド全く出力出ない!。3ヶ試してみたけど全くでない!フェイクチップの可能性大。

続いて例によって中華のcomplete。
-30,-20,-10dBと入力側アッテネータを緩めていって250mw程度出た気がする(記憶があいまい)だが0dBにした瞬間にお亡くなりになったチーン
HackRFから、じわじわと連続的にUpすれば良かったと後悔。


NETでもフェイクが多いという報告がみられるシリーズ。ディスコンなのにピッカピカのシルク印刷なんて怪し過ぎるが、偽物でもパワーが出れば全く文句はないのでテストしたが出力出ない、全くでない!!さすがに心が折れます。


やっぱパワー計は要るなと思って仕入れる。中華(蟻)で3K以上したぞ!
しかし、こんな物でも有るのと無いのとでは大違い。絶対値は正確でないにしろ傾向が分かるのは大きい。


セットするのは周波数とOffset。Offsetは外部に挿入したアッテネータ値を±して表示するだけの値で実際にアッテネーションされる訳ではないので注意。周波数を入れるのは感度補正と思われるが不明。
大して電子工作の力量もないのに、こんなものも購入。プローブ2本ついて20K強の激安。30数年前に会社で使ってたのとほぼスペックは同じだが小さく軽くcheepだが、100万円!してたのに。しかもこちらはデジタルストレージだし。

まだ少し触っただけ。液晶画面は綺麗だけど110Mspsのうたい文句だが2CHにすると50Mspsに落ちる...マジか。XYリサージュプロットやFFTも付いてるが、REGOLの様にSPI,I2C等デジタル系のdecode機能はない模様(こちらは1,000円I/OカードとPCのPulseViewで賄えるし)。


ADF4351も良いケド、本命の1200MHz,2400MHz SSB/オールモードハンディー機作製で必要な直交変調I/Q信号用にsi5351aのブレークアウト基板。簡単に移相信号が発生できて超便利。しかも安い!


2mからtrvするための1,150MHzを作るために7逓倍を狙って164.285MHz。BPF通せば十分使えそう。このボードは160MHz、chipは200MHzまでの様だが5逓倍狙って230MHzでもちゃんと発振しました。これだけでも当分遊べそうだが時間が...