DSP(Digital Signal Processor)によるSSBの作り方
(第2回)

99/6/30


DSP SSB発生器の試作


A. 目的

DSPを使用したSSB発生器を試作する。
DSPはいろいろなメーカーが販売しているが、今回はTI TMS320C5X スタータ・キットを使用した。

B.TMS320C5X スタータ・キット

このキットは、A/D,D/A,電源、ソフトウェア一式、マニュアルが含まれており、入門用として適当であると考える。
最近のICはピン数が多く、はんだ付けすら容易ではない。0.6mmピッチで132本もある。プリント板をどうやってつくるか!考えただけでもうんざり。

このキットの特徴として

1) 16ビット固定小数点DSP
2) 50nsサイクルタイム
3) 32KバイトPROM
4) TLC32040(アナログ・インターフェイス回路)を介した音声品質アナログ・データの取り込み
5) マイクロフォンおよびスピーカに直接接続できる、アナログ入力および標準RCAコネクタ
6) アセンブラ、デバッガ、詳細な取説(2cmもある)が付属
7) インターネットで、いろいろなサンプルプログラムが入手可能
等である。
プログラムは付属のアセンブラ、デバッガを使用して、DOS/Vホストコンピュータによって開発し、RS232Cを経由してキットにロードして実行できる。
(従って、このままではROMを付けることができない。動作をさせる前にホストコンピュータからプログラムのロードが必要)

C. 目標仕様

1) 出力周波数   : 455KHz付近
2) 方式      : FIR Filterによるフィルタタイプ
3) サイドバンド抑圧: 60dB以上
4) キャリア抑圧  : 60dB以上

D. ブロック図

とにかくミニマム・ハードウェアをめざす。(実は、最近年をとったせいか細かいことがめんどうになりつつあり、なるべくらくをしようと考えるようになってしまった)
DDSを使用したのはセラミックフィルタ(CF)の特性がわからなくて、特性のちょうど良いところに合わせたかったので、水晶では周波数が動かないし、いまさらLCBFOでもないと思ったため。
MIXerにアナログSWを使用したのは、コイルを巻きたくなかったためである。

E. 考慮すべき重要な事項

これらの制限はTI社のスタータキットをSSB発生器に使用するための考慮すべき事項である。
注)第1回で151タップのFIRフィルタを使用したと書いたが、これはあとで改善したためで始めの設計はここに書いたように127タップであった。151タップにして若干特性が改善されたが、大きな差はない。従って今回は127タップで話しを進める。
スタータキットの内容を全く知らないと理解できないところもあると思うが、かゆいところに手がとどくようにまで書くと、膨大になるのでその点はご容赦いただきたい。

1) サンプリング周波数 

DSK内蔵のA/D,D/Aのサンプリング周波数が20KHzまでなのでそれ以下であること。
実際はシステム・クロックから分周して作る。
(実際はプログラマブルカウンタが内蔵されているので数値を設定するだけで良い)
今回は18.5185kHzとする。
2) A/D
入力部にバンドパスフィルタがあり、on/offできる。
折り返しの問題でfs/2以下のカットオフのフィルタが必須であるので、offにはできない。
本来であれば低音側はDCから取り扱いたいのだが、構造上BPFであるので300Hz〜3.4kHzのバンドパスフィルタとして使用する。
この時、フィルタクロック周波数は、288kHzである。
A/Dの入力アンプのゲインは4である。
3) D/A
LPFが入ったままではずせないので、カットオフの周波数を決定する必要がある。
カットオフ周波数は、システム・クロックを分周して作らなければならないので、最終SSB出力
周波数のあたりで、カットオフしないといけない。
4) SSBキャリア周波数
サンプリング周波数の1/2,1/4・・などべき乗分の1にすると、バランスド・モジュレータが作りやすい。
したがって、1/4*fsとする。
5) その他
A/D,D/Aのフィルタは、フィルタクロック周波数288kKzを基準にスケーリングされる。
このクロックをたとえば2倍にすると、カットオフ数は数も2倍される。
1)〜3)は内蔵のプログラムカウンタで、プログラムで1/nを指定しなければいけない。
nは整数なので、設計の自由度がかなり制限される。
実際にどのような値に設定するかについて、次の項で説明する。
前述のように、A/D、D/A、サンプリング周波数はシステム・クロック(40MHz)から分周して作らねばならない。また分周比は整数でなければならない。
これらはDSKの内部で使用され、外には出てこない。
サンプリング周波数 
A/Dフィルタクロック
D/Aフィルタクロック
この3つの周波数の決定はきわめて重要であり、前述の制限からすべてを満足するようにはできないが、実用上さしつかえない範囲で設定する。



H 内部動作

1)マイクアンプ
マイクアンプの出力電圧は、DSPのA/D入力範囲±3Vなので±0.75Vを超えない範囲とする。
A/D内部のアンプのゲインが*1、*2、*4と設定できるので、今回は4倍を使用する。
スピーチアンプのゲインは、375mV/1mV=375倍=51.4dBでよい。
マイクはクリスタルマイクを使用するので、FET+オペアンプで設計する。
2)バランスト・モジュレータ
以下はDSPプログラムである。
A/D変換後のデジタル信号(数値)をBMの入力とする。
サンプリング周波数(fs)はキャリア周波数(fc)の4倍であるから、前述のように2データを取得後、次の2データは符号を反転する。符号の反転は”Complement”命令を使用すればよい。
fc/fsを整数倍に設定しない場合はこのように簡単には行かない。
3) サイドバンドフィルタ
サイドバンドフィルタは、FIRタイプ、IIRタイプがあるが、FIRタイプはプログラムが単純で、群遅延特性がよいのでこれを採用する。
今回は127タップで設計した。60dB/6dBの形状比は約1.3である。
形状比は申し分ないが、−3dBまでの肩の特性が若干丸みをおびている。
これを補正するのは大変そうなので、そのまま使用する。

フィルタの形状

フィルタの計算プログラムを使用して、EXELでグラフ化したもの。〜256ポイント。
右端は0.5fs(18.518/2=9.259KHz)であり、キャリアの周波数は、18.518/4=4.6295KHzで128ポイントのところ。
約-60〜-70dBダウン!
あとの特性はスケーリング。

4) D/A フィルタの出力をD/Aして、アナログ信号に変換する。
この時、注意すべきことは、fs/2を中心に信号のスペクトラムと反対側に折り返しのスペクトラムが発生する。これをカットしなければ ならない。このD/A に内蔵するLPFでは前ページの図のように十分カットできない。従ってこの後の段のセラミック・フィルタに依存する部分が大きい。
逆にいえば、セラミック・フィルタはこの折り返しの信号をカットできる特性のものが必要である。
また、fsと信号周波数が近いためsinX/Xの影響がある。(アパチャー効果。下図)
(sin(πf/fs))/(πf/fs)なので、fs=18.518kHz とすると
バンドの下限、上限である f=4.859kHz、8.229kHzではそれぞれ −1dB,−3.03dBとなってバンド内で約2dBの変化を生ずる。
今回はこの特性を無視する。

アパチャー効果。

D/Aでアナログ波形を出力したときに 同じデジタル振幅を出力してもfsと出力周波数の関係でアナログ出力レベルがかわってくる。ローパスフィルタを通したようになる。fs/2で約3.92dB減衰する。

5) ヘテロダイン用ミクサ
D/Aの出力である、4.859kHz〜8.229kHzを、455kHz付近に変換するためのミクサである。信号出力周波数は、約455kHz±1.5kHz
キャリア周波数は、約455kHz−1.5kHz−4.629kHz=448.871kHzとなる。
デジタルC−MOS SWを使用したミクサであり、500kHz以下の周波数でキャリアの減衰50dB、サイドバンド出力2Vpp@50Ωが可能である。ただし、Duty50%のキャリアが必要なので、2倍の周波数を使用し、フリップフロップで1/2してDuty50%のキャリアを作成する。
今回は4倍のキャリアを1/4にして使用している。
6) セラミックフィルタ
455kHzのフィルタで、次の条件を満たす必要がある。
(a) ミクサの出力を減衰すること無しに通過する。
(b) さらに上記周波数に対して、パスバンドエッジぎりぎりでないこと。これはバンドエッジでは群遅延による歪みが増えるのでその影響をさけるためである。
(c) D/Aの折り返しである、10.289kHz以上の周波数を十分減衰すること。
(d) ヘテロダイン周波数である、DDSからの450kHz付近の周波数を十分減衰すること。
これを図示する。

 

これらを満足するためのセラミックフィルタとして村田のCFx455Hを選定する、”H”は−6dB
パスバンドが6kHzである。 CFM455H(¥1000小沢電気)がよいようである。
CFK455H(¥500)もまあまあ、CFU455H(現在使用中¥250))
(あとでCFKタイプに変更した)
7) DDS
D/Aからの出力を455kHzに変換するためのヘテロダイン用発振器である。秋月のDDSキットをを使用する。これはDipSWで1Hz分解能の周波数を発生できるので、フィルタのパスバンドの都合のよい周波数に信号を設定できるので便利である。
ミクサにはキャリアの周波数の4倍が必要なので、約1.8MHzを発振させている。
セラミックフィルタはばらつきがあるため、最適のパスバンドに合せるためには発振器の周波数を数100Hzで調整する必要がある。従って使用する前にCFの特性を測定しておいてから最終出力周波数を決定する。

回路図はつぎのようになる。



写真

全くのバラック。もっとも電源をつくってケースに入れれば立派なSSBジェネレータ?!
作った回路は、左上の蛇の目基板に乗ったほんのすこしの部分。
ありあわせのシャーシの中においてある。(回り込み防止)
左下のコアは、回り込み防止のため。(比較的まわり込みを起しやすい)
DSKの右側にインターフェイス用のコネクタ。
DDSはディップSWで周波数を設定する。
プログラムをロードするときには、このシャーシから取り出す!!!


戻る
第1回へ
第3回へ