前回の「SINAD 計の製作について」の記事にコメントしてくださった、nobcha さんに触発されて、今回、マイコンの M5Stack を使った SINAD 計の製作に挑戦してみました。
www.jh1lhv.tokyo
M5Stack 系のマイコンは新しいやつが出るとすぐに買い求める癖があり、結局は積みマイコン化している現状ですが、今回、M5Stack Core2(ESP32 ベース)という、M5Stack 系のマイコンの中でも比較的高性能なものを使って 12dB SINAD 測定器の製作に着手してみました。
M5Stack Core2とADC の精度について
M5Stack Core2 に搭載されている ESP32 の ADC(アナログ・デジタル・コンバータ)は、理論上 12ビット(4096段階)の分解能を持ち、これは約72dBのダイナミックレンジに相当します。しかし、実際の ESP32 の ADC は直線性やノイズ面において理論値通りには動作しないことが知られており、有効ビット数は 8〜10ビット程度と見積もるのが現実的なようです。
とはいえ、今回の目的である 12dB SINAD レベルの測定においては、絶対的な精度よりも相対的な変化を捉える能力の方が重要です。そのため、M5Stack Core2 を用いても、実用的な SINAD 測定が十分可能であると判断しました。
M5Stack Core2 による SINAD 測定
M5Stack Core2 を使った SINAD 測定の基本的な流れは以下の通りです。
- 信号入力: 受信機のスピーカー出力やイヤホン端子から音声信号を取り出し、M5Stackの入力端子に接続します。入力信号のレベルを適切に調整するための回路が必要です。
- ADC 変換: M5Stack Core の ADC(ESP32のADC)を使用して、アナログ信号をデジタルデータに変換します。
- FFT 処理: 取得したデジタルデータに対して高速フーリエ変換(FFT)を適用し、周波数領域での信号を解析します。
- ノッチフィルタ処理: デジタル的にノッチフィルタを実装し、1kHzの正弦波信号成分を除去します。
- SINAD計算: フィルタ前後の信号電力比から SINAD 値を計算します。
M5Stack Core2 の G36 ポートにオーディオ信号を入力する際には、受信機のイヤフォン出力を M5Stack の ADC 入力範囲(0〜3.3V)に適合させるための回路が必要となります。
M5Stack Core2 を使用した SINAD 測定は、アマチュア無線用途において十分な精度で受信感度の評価が可能であると考えています。商用の測定器と比較すれば絶対精度では及ばないものの、手頃な価格で自作できること、カスタマイズ性に優れていること、そして何より自作する楽しさを味わえることが大きな魅力です。
現在、ソフトウェアによる SINAD 測定の精度向上に取り組むとともに、表示方法をデジタル表示からアナログ表示へと改良を進めているところです。