ラベル GMSK の投稿を表示しています。 すべての投稿を表示
ラベル GMSK の投稿を表示しています。 すべての投稿を表示

2009年2月21日土曜日

マイコンで復調

FSKの場合、周波数が高いか低いかが分かれば良いので、FFTを使うのも方法の1つだが、演算量が多い。受信は送信と異なり、常に動作していなくてはならないため、あまり複雑だと消費電力が多くなってしまう。そこで、外部に簡単な回路を設け、そこで電気的に相関の演算を行ってもらうことにする。

PSoCのアプリケーションノートAN2336「Simplified FSK Detector」では、FSK変調のかけられた信号をデジタル信号にした後、基準となるクロックとのXORをとり、これをLPFで平滑化することで相関を得る「correlator」の回路について書かれている。

マイコン外部にXORを用意し、マイコンからはクロックを、音声入力からは変調波を入力することで同じことが行える。あとはcorrelatorの出力を定期的にA/D変換し、その値を閾値と比較して'0'と'1'を判断する。

LPFはビットレートで定数が決まるはずなので、correlatorはキャリア検出のみに使用し、実際の処理は全てデジタルで行うべきかもしれない。

2009年2月15日日曜日

PSoCとGMSK/FSK

PSoCでCanSAT用のモデムを作ろうと考えていたが、GMSKはさすがに難しそうだ。ガウシアンフィルタを3次Salen-Keyを2つつなげて作るにしても、外付け部品が多くなりすぎる。もしGMSK9600bpsを求められたら、CMX589(RSで3000円)を使用した方がはるかに合理的と分かった。 一方FSK1200bpsで良い場合、FX614と水晶発振子の入手製の悪さ、PSoCでのFSKモデムの実現性を比べると、PSoCも充分競合できそうである。(PSoCはレジスタで回路構成を変えるため、ビット反転を検出、復旧する仕組みがないと、CanSATの審査で困るかもしれない)

2009年2月14日土曜日

GMSKのガウシアンフィルタ

GMSKで使われるガウシアンフィルタについて調べた。 ガウシアンフィルタとは、インパルス応答がガウシアンであるIIRフィルタである。インパルス入力発生した時刻でガウシアンの中心が出力されるため、入力がないのに出力が生じる非因果的なフィルタである。このようなフィルタは実現できないため、実際には近似が使われている。本来のインパルス応答の時間を遅らせれば、LPFで実現可能な形になる。 The art of analog circuitガウシアンフィルタの解説ページでは、ChebychefやButterworthはガウシアンに分類され、Besselは除外されることがあると書いてあるが、GMSK用のICであるCMX589では、6次のBesselと思われる周波数応答がデータシートに載っていたことから、実際のところはBesselが使われていると考えて良いのかもしれない。 (GMSKで使われるガウシアンフィルタは、VCOの制御電圧を与えるためにあるため、オーバーシュートが小さい方が好ましいため、過渡応答でオーバーシュート・アンダーシュートのないBesselが好ましいのかもしれない) フィルタの実現にはOPアンプとRCを使ったアクティブフィルタが使われる。フィルタの設計には、いくつかの決まった形のフィルタをつなげて設計するツールが存在する。Texas Instruments社のFilterPro、Linear Technology社のFilterCAD、National Semiconductor社のWebBenchの他にも、フリーでいろいろなツールが存在する。ただ、大抵は1つのOPアンプで1~2次のフィルタを作り、それをつなげるという方法がとられているため、OPアンプ数を減らしたい場合は独自に計算するしかなさそうである。 GMSKではガウシアンフィルタの形を決めるパラメータにBTがある。CMX589ではBT=0.3または0.5が選択できるようになっている。BTの定義はフィルタのカットオフ周波数(fc や f-3dBと書かれる)のビットレートに対する比で与えられる。従って、9600bpsでBT=0.5としたら、ガウシアンフィルタのカットオフ周波数は4800Hzとなる。 今後は、GMSKに使える6次のBesselフィルタを少ないOPアンプで作れるか検討してみる。

2009年2月12日木曜日

MSKについて

最小の周波数偏移のFSK

2値FSKでは、1シンボルに対して2つの周波数を割り当てる。この周波数の差は大きいほど弁別しやすいが、占有帯域は広がる。最小の周波数偏移は、ビット時間において2つの周波数が直交するという条件から求める。 (1)を零にする必要があるので、信号の積を取ったらLPFで遮断することが必要となる(実は積分回路自体がLPF)。このときの偏移から変調指数を求めると、以下のようになる。 よく「変調指数(modulation index)が0.5であること」がMSKの定義のように書かれている気がするが、これは結果であって、偏移が最小になる理由ではない。

サブキャリアの最小の周波数

モデムのようにサブキャリアを使う場合は、サブキャリアの周波数も最小化できる。GMSK 9600bpsの場合はサブキャリアも最小化されているようで、周波数は9600~14400Hzの間で変化する。 パルスが正しく変調できる最小の周波数は、幅T[s]のパルスの帯域を求めることで計算できる。 帯域は無限になるが、一番大きなローブだけを送るとすると帯域は1/T [Hz]となる。これを正しく変調するには、最低でも1/T [Hz]が必要となる。これが最小の周波数である。GMSKではこの最小の周波数9600Hzを下限とし、最小の偏移4800Hzを加えた14400Hzを上限としている。