無線機の特性試験の試験方法に登場する「疑似音声信号発生器」を WebAudio で実現します。
「擬似音声発生器は、白色雑音をITU-T勧告G.227の特性を有するフィルタによって帯域制限したものとする。」
WebAudio で音声を生成しています。白色雑音を生成するために AudioWorkletNode を使っているため、サポートするブラウザが必要です。
- Google Chrome 67
- Mozilla Firefox 76
- Microsoft Edge 79
実際の無線機測定に使用する場合は、以下のガイドを参照してください:
- 測定器としての使用ガイド - DAC選定、校正方法、セットアップ手順
ITU-T G.227 記載のアナログフィルタを双一次変換してデジタルIIRフィルタとし、さらにFIRで補正しています。係数の算出は以下の通り Jupyter Notebook で行いました。
理論特性に対する相対誤差は0.29%(dB換算で0.025dB)以下を実現しています。
White Noise → IIR Filter → FIR Filter → Output
Generator (4th order) (Correction)
| | |
| | |
AudioWorklet coeffs.json[0] coeffs.json[1]
ホワイトノイズ生成には Box-Muller変換 を使用し、正規分布に従う高品質な雑音を生成しています:
すべてのフィルタ係数は coeffs.json
に事前計算済みで格納されています:
coeffs.json[0]
: IIRフィルタ係数 (双一次変換によるデジタル化)coeffs.json[1]
: FIRフィルタ係数 (高周波誤差補正用)
// IIRフィルタ (4次)
const iirFilter = audioContext.createIIRFilter(coeffs[0].num, coeffs[0].den);
// FIRフィルタ (畳み込み)
const firFilter = audioContext.createConvolver();
// coeffs[1] をインパルス応答として設定
この2段階のフィルタリングにより、ITU-T G.227の理論特性を高精度で実現しています。
- 別表第三十五 証明規則第2条第1項第12号に掲げる無線設備の試験方法 (アマチュア無線機の試験方法)
- ITU-T Recommendation G.227