« ローコストSSBジェネレーターの実験 | メイン | バリコン式ATU mark 2 »

2024年6月12日 (水)

デジタルマイクコンプレッサーの製作1

カテゴリ<SDR> [ 自作  dsPIC]

秋月で扱っている安いdsPICを使い、安いSSBジェネレーターが実現できないか実験したところ、一応SSB信号の発生には成功したものの、出来上がった信号のスプリアスレベルが大きく、SSBジェネレーターの実験は失敗してしまいました。 しかし、せっかく、試作基板を作った事も有り、何かに活用できないか、考えていたところ、デジタルマイクコンプレッサーが出来るかもしれない。そこで、目的を変更して、実験を継続する事にしました。

無線機の平均変調度を上げて、了解度を改善する手段として、RFスピーチプロッセッサーと言うのが昔から存在します。 これは、低周波のままで、音声圧縮を行うと、どうしても、歪が増加してしまうのですが、一度、高周波のDSBに変換し、この高周波の尖頭レベルをクリップした後、フィルターを通し、元の音声信号へ復調すれば、歪の少ない圧縮された音声信号が得られるというものです。

従来は、ダブルバランスミキサーでDSBを作り、片方のサイドバンドのみをメカニカルフィルターや同等のフィルターで取り出した後、これにBFOを当て、元の音声信号に戻すという構成をアナログ回路でやっていました。 今回、これを全てデジタルで行います。

Mc_block

上のブロック図が今回実験するマイクコンプレッサーの構成図です。 オールデジタルと言っても、マイク信号をデジタル処理出来るレベルまで増幅する手段や、ADCの中で発生するエイリアシングノイズ対策及び、DAC出力に現れるサンプリイング周波数の漏れを対策する為のLPFはアナログ回路で作る必要があります。

マイクのすぐ後にあるリミッターアンプはADCが飽和しないようにレベルの先頭値を規制する為のもので、通常ALCと言われるICです。その後のオーディオLPFはOPアンプやLCで構成する3KHz以下を通すLPFです。 DSPと書かれた枠内にあるブロックが今回採用するdsPIC33FJ32GP202となります。ADCで12bitのデジタルに変換された信号は、10KHzのローカルオシレターの信号と掛け算され、キャリアの無いDSB信号となります。 その信号を16bitの最大先頭値信号から24dB低いレベルで、プラス/マイナスともクリップし、それより高いレベルは全てフラットにします。 次にクリップされたDSB信号のUSBのみをBPFで取り出し、この信号と10KHzのBFO信号を掛け算し、元の音声信号を復調します。 ただし、この復調信号には多くの帯域外ノイズが含まれいますので、3KHzのLPFを通した後、DA変換して、音声信号に戻します。 

このブロック図は原理図であり、実際の回路では、マイク感度とコンプレッサーレベルの調整の為、入力部と出力部に可変抵抗が追加され、色々なトランシーバーに接続出来るようにします。

私が作るコンプレッサーは、自作の無線機で使う事だけを条件にしますので、出力レベルは自作無線機に必ず付いているAUX端子のレベルに合わせる事にしています。

マイクコンプレッサー配線図 MIC_COMP_01.pdfをダウンロード

Mc_1khz

Mc_400hz

上の波形は、入力レベルを3VppでADCに加え、DSP内部にて、-24dBのレベルでカットした信号のDAC出力です。左が1KHz、右が400Hz。 -24dB下の波形は0.3Vppより少し低いレベルになりますので、カットされた波形は、ほとんど台形波形ですが、ごらんの通り、1KHzはほぼ正弦波に戻っており、400Hzでも、完全とはいかないにしろ、高調波歪はかなり抑えられています。

実際にマイクコンプレッサーとしてまとめるには、マイクゲイン、クリップレベル、DAC出力レベル等を、無線機の仕様に合わせる為、可変抵抗が必要になります。 特に、クリップレベルは実験しながら決める必要がありそうです。

ソースファイル

MIC_complessor.cをダウンロード

TapAUDIO127_BPF_KS.hをダウンロード

TapUSB255_BPF_KS.hをダウンロード

 

INDEXへ戻る