ラベル FPGA FMトランスミッタ2作目 の投稿を表示しています。 すべての投稿を表示
ラベル FPGA FMトランスミッタ2作目 の投稿を表示しています。 すべての投稿を表示

2009年9月2日水曜日

FMトランスミッタ: FM変調器(3)

(6)高域特性低下の影響

 「ゼロ次ホールド」で高域特性が低下するとき、ステレオコンポジット信号はメインチャンネルよりサブチャンネルのレベルが低下してしまい相互にレベル差が生じます。このため、周波数特性(平坦性)が悪くなる他にステレオセパレーション特性も悪化します。
 そのレベル差を確認するため、(5)で示した「ゼロ次ホールド」の周波数特性グラフに変調する音声信号の最高周波数(15kHz)をプロットしてみます。




ステレオコンポジット信号の周波数特性
192ksps、「ゼロ次ホールド」の場合








 ステレオコンポジット信号では最大53kHzまでの帯域を使用しています。(音声変調周波数15kHzの場合)音声のサンプリング周波数が192kHzのとき、53kHzは正規化周波数0.28(=53÷192)となります。sinc関数の式によると、振幅は0.88すなわち1.2dBの低下です。わずかな低下と思いきや、ステレオセパレーションへの影響は大きなものです。FMトランスミッタ: ステレオ変調器(2)のグラフによると、ステレオセパレーションは最良でも23dB程度まで低下してしまうことになります。

 このレベル低下を改善するには、取り扱う信号の周波数帯域がサンプリング周波数よりも十分に小さくなるようサンプリング周波数をずっと高くなるようにします。(エンファシスをかける等して補正する方法もあります)

2009年8月12日水曜日

FMトランスミッタ: FM変調器(2)

(3)DDS(Direct Digital Synthesizer)
 DDSのブロック図を示します。DDSの内部では基準クロック毎に所定の周波数のサイン波形の振幅を計算してD/Aコンバータに出力します。原理はAnalog Devices社のDDSチップのデータシート(例えばAD9851など)に詳しく解説されているのでそちらを見てください。



DDSのブロック図








 DDS出力の周波数は、次式で決まります。但し、Nは位相アキュムレータのビット数です。






 今回はDDSを使ってFM変調をかけます。変調したい音声をA/Dコンバータでデジタル化し、DDSに接続すればFM変調をかけることができますが、特性よく変調をかけるには両者のサンプルレートを合わせる必要があります。


(4)音声のスペクトラム
 音声波形をA/Dコンバータでデジタル化する場合を考えてみます。



音声信号のサンプリングイメージ









 上の図では音声(正弦波)をサンプリングしてパルス列に変換する様子を示しています。デジタル信号処理の教科書に登場してくるパルス列は、パルス幅が無限小の信号です。
 次に、アナログの音声信号とサンプリングされたデジタル信号のスペクトラムを示します。




アナログ音声信号のスペクトラム
上の例では正弦波なので単一スペクトラムとなる












デジタル音声信号のスペクトラム
基本波(赤色)の他にエイリアス(青色)がずらりと並ぶ








 上の例で音声は正弦波なので単一のスペクトラムですが、サンプリングするとサンプリング周波数の整数倍の周波数の前後に基本波(赤色)のイメージ成分(青色)が出現します。
 こんなスペクトラムの信号をFM変調器に接続したら、中心キャリアの周りに基本波のイメージ成分に対応したたくさんスペクトラムがずらりと並ぶことになります。これらの信号は当然帯域外にもまたがりますのでスプリアスになってしまいます。そのため、変調に不要な信号成分は、DDSに接続する信号からあらかじめ取り除いておく必要があります。この処理はサンプルレート変換の過程で行うのが一般的です。

(5)ゼロ次ホールド
 今回製作したFMトランスミッタの音声サンプルレートは192kHz。そしてDDSの基準クロック(サンプルレート)は49.152MHzと両者の間は256倍も開きがあります。一番簡単なサンプルレートの変換方法は、「そのまま繋ぐ」ことです。DDSから見ると、256サンプル毎に周波数設定が階段状に変化しているようになります。これはゼロ次ホールドと呼び、ちょうどD/Aコンバータの出力波形もこのような形になっています。




ゼロ次ホールド波形(青い波形)









 上の図では、赤い●が音声波形のサンプリング点で、次のサンプリング点まで同じレベルを(DDSの基準クロックで256回)ホールドしておいてDDSに渡します。(青い波形)

 ところで、この「ゼロ次ホールド」信号のスペクトラムはどのようなものになるでしょうか。(4)で示した音声信号のサンプリング波形と同様に、サンプリング周波数の整数倍の周波数の前後に基本波(赤色)のイメージ成分(青色)が出現するところまでは同じですが、振幅特性に変化があります。(4)の信号では、幅が無限小のパルスであったのに対し、「ゼロ次ホールド」は階段状の波形です。このためデジタル信号処理ではデジタル信号と矩形波の畳み込みとして扱われ、その周波数特性はsinc関数(シンク関数)で表されます。



sinc関数
但し、xはサンプリング周波数で正規化した周波数








「ゼロ次ホールド」の周波数特性
sinc関数(緑のライン)のエンベロープに沿って基本波もイメージ成分もレベルが低下する

2009年8月10日月曜日

FMトランスミッタ: 位相雑音(2)

 位相雑音多めのDCMを使わず、クリスタルオシレータの出力を直接マスタクロックとして使用するよう変更してみました。確かにノイズは減ったみたい・・・ですが、評価に使っている受信機(DDT誌ディジタルFMステレオチューナ)のRF同調を取っていないのでスプリアスを拾ってグジュグジュ音が出てどれだけ下がったかはよくわからない感じ。

 とりあえず位相雑音を見てみます。便宜上、中心周波数は9.8MHzになってます。
10kHz離れでだいたい-105dBc/Hzくらい。
少しは良くなった・・・でもよく見ると、帯域内だけスペクトラムが盛り上がっています。



FMトランスミッタのスペクトラム
両側の信号は19kHzパイロット信号

SPAN 50kHz















次にパイロット信号を停止させてみます。
手をかざすとレベルが変化するし、この盛り上がりの正体はアナログ系(A/Dコンバータ)のノイズです。
A/Dコンバータは192kspsで動作していますが、15kHzのローパスフィルタを入れているのでノイズの形もそのようになってます。このノイズ、全体のノイズが減ると、相対的に浮かび上がってきてよく目立ちます。要はアナログ系の実装がマズいのが原因ですね。片面基板でA/Dコンバータの基板設計も初めてなので改善方法がわかりません。片面でなんとかできる方法ってあるんでしょうか。




FMトランスミッタのスペクトラム
19kHzパイロット信号オフ

SPAN 50kHz














それならA/Dコンバータを接続しなかったら、信号発生部の実力がわかる?ということで試してみます。そんな変更もマウスとキーボードを叩くだけでできるのはありがたいことです。



FMトランスミッタのスペクトラム
19kHzパイロット信号オフ
A/Dコンバータを取り外し

SPAN 100kHz














 信号発生器としての素の実力というか、A/Dコンバータの信号をカットすると位相雑音は10kHz離れでスペクトラムアナライザの読みで-130dBm/Hzほど。これなら文句なしと言いたいところ、帯域外に目を向けるとスプリアスがいっぱいいます。



FMトランスミッタのスペクトラム
帯域外に-60dBcのスプリアス

SPAN 10MHz

2009年8月8日土曜日

FMトランスミッタ: 位相雑音

1.位相雑音

どうもノイズが多い。

製作したFMトランスミッタの音を聞いたときの印象です。
どこか処理にまずいところがあるからだろうといった想像をしていましたが、師匠からFPGAのDCM(Digital Clock Management; Xilinx社製FPGAに内蔵されていて、外部クロックから任意の周波数を作り出せるめちゃ便利な機能)の位相雑音のせいではないか?との指摘があり、確かにそれが原因である可能性が濃厚だと思っています。目的外使用というかアナログ変調品質が重視されるアプリケーションに使ってしまったのはまずかったですね。

 位相雑音はスペクトラムアナライザで簡易的に測定(参考リンク;素晴らしいページです)できるわけですが、DCMのパラメータ(てい倍とか分周とか)によりだいぶ変わります。製作中のFMトランスミッタでは、12.288MHzのクリスタルオシレータをクロック源として、DCMで19倍と3分周して77.824MHzを生成しています。このクロックを元にDDSで10.7MHzのFM変調波を生成しています。

 まずは、12.288MHzのクリスタルオシレータをDDSに直接接続して1/4の周波数(3.072MHz)を生成したものと、クリスタルオシレータにDCM(2てい倍と2分周;入力と同じ12.288MHz)を経由してDDSにより同じ1/4の周波数を生成して比較してみました。(位相雑音の値はキャリアから10kHz離れの値)

  • 12.288MHzクリスタルオシレータ : -128dBc/Hz
  • 12.288MHzクリスタルオシレータ+DCM: -116dBc/Hz

結果は、DCMを使用した方が12dBほどノイズが高いように見えます。ただし、測定に使用したスペクトラムアナライザそのものも位相雑音を持っていますから正確ではありませんが、傾向としては正しいはずです。次に肝心なFMトランスミッタ(10.7MHz)の位相雑音を測ってみます。

  • FMトランスミッタの位相雑音 : -97dBc/Hz
ずいぶん悪いです。DDSでの分周数が半端な値なので、位相誤差が増えていることも一因かも知れません。
 ついでにDCMのパラメータをいろいろと変えて測定したものをグラフにプロットしてみました。すべてクロック源は12.288MHzのクリスタルオシレータです。





位相雑音の比較









 一番下の◆がクリスタルオシレータ(からDDSで生成した信号)で、一番上の■がトランスミッタです。その他のMなんとかDなんとかと書いてあるところはDCMで、Mに続く数字がてい倍数、Dに続く数字が分周数を示しています。いい加減に測定したのでばらつきがありますが、同じ周波数を生成する場合でも、19てい倍、3分周のように周波数関係が複雑な方が位相雑音が高いことがわかります。
 FMトランスミッタのクロックは、このDCMで「19てい倍、3分周」したものですが、それよりもFMトランスミッタ出力のほうが10dBほどさらに悪いです。ちょっと悪すぎる気がしないでもありません。

 一方、雑音が低い方では-125dBc/Hz以下でグラフがカーブを描いています。これは測定に使用したスペクトラムアナライザそのものがもつ位相雑音の影響ではないかと想定しています。でもスペクトラムアナライザの位相雑音というのは、こんなに低いんですかね?もっと悪いと思っていました。

 いずれにせよ、DCMを使うと使わない場合より位相雑音特性が不利になることがわかりました。さらに位相雑音が大きいとFM復調したときに、そのまま音声出力に出てきてS/N劣化という形で影響がでます。そういうわけでDCMを使わないよう設計変更をすることにしました。

 クリスタルオシレータとしては、デジタルオーディオで使われる48kHzの整数倍関係で、なるべく高い周波数のものということで49.152MHzを選定しました。Connor-Winfield社のSMDタイプのものがDigi-Keyで300円ほどで入手できます。このデータシートには位相雑音の規定があり10kHz離れで-140dBc/Hzということで、これを使うとどんなものができるのかと期待しています。

2009年7月20日月曜日

FMトランスミッタ: FM変調器(1)

(1)あらまし
 FM変調器は音声信号を電波に乗せるFMトランスミッタの心臓部です。従来はVCO(Voltage Controlled Oscillator; 電圧制御発振器)に与えられる制御電圧に音声信号を加えFM変調を行うアナログ式が主流でしたが、最近ではNCO(Numerically Controlled Oscillator; 数値制御発振器)を利用してデジタル処理でFM波を生成する方法も使われています。
 デジタル処理なら正確無比な変調を行うことができ、アナログ式の課題であった変調直線性や安定度などは一挙解決するはずでしたが、問題はそれだけではありません。NCOを正しく実現するには、様々な技法や幅広い知識が要求されます。正直わからないところだらけですが、デバイスの進歩や開発環境の充実等により個人の趣味ベースであっても以前とは比較にならないほど「デジタル処理」に親しみやすい状況になりつつあるように感じています。

 なお、勉強しながら記事を書いているので、間違えなどお気付きの点があればご指摘頂くとありがたいです。


(2)デジタルFM変調器
 NCOにはDDS(Direct Digital Synthesizer)が広く使われています。専用ICとしては、Analog Device社が多くの製品を製造しています。特にAD9851は180MHzのクロックレートで動作し10ビットD/Aコンバータまでも内蔵していて早くからローコストで入手できたこともありアマチュア無線での自作例も多いようです。
 DDSが生成する周波数は、周波数設定レジスタに与えるデータにより決めることができるので、このデータを音声信号に応じて逐次適切に変更するだけで、FM変調を行うことができます。



DDSを使ったFM変調
DDSの周波数設定データを音声データで変化させればFM変調をかけられる

2009年7月12日日曜日

FMトランスミッタ: ステレオ変調器(2)

3.ステレオセパレーション

 分離度とも呼ばれますが、受信機ではメインチャンネルとサブチャンネルの信号の和と差を取って左右の信号を分離しますから、トランスミッタではメインチャンネルとサブチャンネルの間のレベルと位相をきっちりと合わせておく必要があります。これは、ステレオ変調器に限らず、その後に接続されるFM変調器や高周波フィルタでレベル差や位相差があると特性が劣化することになります。

 特に、サブチャンネルはメインチャンネルよりも高い周波数帯域を使用しているので、その後の伝送路でメインチャンネルと比較して振幅が下がってしまったり位相がずれるなどの影響を受ける可能性が高くなります。その場合のサブチャンネルの波形を示します。





サブチャンネル信号波形(1)
振幅、位相のずれがない場合
(Lチャンネルのみ信号あり)










サブチャンネル信号波形(2)
振幅70%、位相ズレなし
(Lチャンネルのみ信号あり)












サブチャンネル信号波形(3)
振幅誤差なし、位相45度遅れ
(Lチャンネルのみ信号あり)








 次に、サブチャンネルに振幅や位相ズレが起きたときのセパレーションのグラフを示します。




ステレオセパレーション(1)













 さらに高いセパレーションが必要な場合のグラフを示します。仮に高級チューナが謳う50dBのセパレーションを確保するには、位相ズレはもちろん0.05dBものレベル差までしか許容されないことになり、シビアな数値に思えます。




ステレオセパレーション(2)

2009年7月8日水曜日

FMトランスミッタ: ステレオ変調器(1)

1.ステレオ変調信号
 ステレオ変調信号(ステレオコンポジット信号)は、メインチャンネル信号、サブチャンネル信号、パイロット信号から成り立っています。

  • メインチャンネル信号(M)
左信号(L)と右信号(R)の和。
    L+R
  • サブチャンネル信号(S)
左信号と右信号の差信号でステレオサブキャリア(38kHz)で平衡変調。
    (L-R) sin ωs t
  • パイロット信号(P)
ステレオパイロット信号(19kHz)。レベルは10%変調相当レベル。
    P sin ωp t

  • コンポジット信号(C)
C = (L+R) + (L-R) sin ωs t + P sin ωp t




ステレオ変調器 ブロック図










 このコンポジット信号のスペクトルイメージは次の通りです。メインチャンネルの最大レベルは変調度90%相当。サブチャンネルも同様ですが、和・差の関係から、メインチャンネルとサブチャンネルの合計が90%を越えることはありません。パイロット信号は10%相当で一定レベルです。




コンポジット信号のスペクトルイメージ








2.ステレオ変調信号波形
 エクセルで作成したステレオ変調信号波形例を示します。
 まず音声信号の振幅は左右それぞれ最大レベル、すなわち45%変調相当レベルを想定しています。グラフ上では振幅0.45としています。Lチャンネルの信号周波数は1kHz、Rチャンネルは2kHzです。このほか38kHzのサブキャリア信号、19kHzのパイロット信号も示しています。パイロット信号のレベルは10%変調相当としています。




ステレオ変調信号波形(1)
Lチャンネル: 45%変調相当、1kHz
Rチャンネル: 45%変調相当、2kHz
38kHzサブキャリア信号
19kHzパイロット信号、10%変調相当





 次は、サブチャンネル信号波形です。L-R信号に従って、38kHzサブキャリア信号の振幅と極性が変化していることがわかります。




ステレオ変調信号波形(2)
サブチャンネル信号








 メインチャンネルとサブチャンネル信号を合成した波形です。パイロット信号を含まないステレオコンポジット信号です。L+R信号を中心にサブチャンネル信号を重ね合わせた波形となっています。




ステレオ変調信号波形(3)
メインチャンネルと
サブチャンネル信号の合成







 (3)と同じ信号ですが、左右の信号を2倍にした波形をプロットしたところです。
メインチャンネルとサブチャンネル信号の合成波のエンベロープ(包絡線)は、左右の信号そのものであることがわかります。言い方を変えると、左右の信号の間を38kHzのサブキャリアで塗りつぶしたような波形になっています。




ステレオ変調信号波形(4)









 最後にステレオコンポジット信号です。パイロット信号を含むので波形がくずれてしまい、わかりにくいですね。




ステレオ変調信号波形(5)









2009年7月4日土曜日

FMトランスミッタ: プリエンファシス(4)

7.作成したプリエンファシスの評価
 例によってWaveSpectraで特性を測定します。先のローパスフィルタと同様、FPGAにはオーディオCODECを接続してあるので、USBオーディオを介してループバックテストを行います。




プリエンファシスの周波数特性
0-24kHz、5dB/div







 妥当な特性に見えます。20kHz以上で下がっているのは、USBオーディオの制限によるものです。
 このグラフからは、詳細にレベルを読み取ることが出来ませんので、いくつかのポイントで正弦波を入力して、プリエンファシスをオン・オフ(スルー)することでレベル差を測ります。これもWaveSpectraの測定機能を使います。 



正弦波入力時のスペクトル
測定機能を使いレベル測定







 プリエンファシスにより高音域でA/D、D/Aコンバータ系に起因するノイズフロアが持ち上がって見えます。
 さて、いくつかの周波数を選定して詳細に測定したデータを示します。実測値はプリエンファシスを使用した場合と、スルーにした場合を切り替えて比較したのでPC接続のUSBオーディオとデジタルフィルタに接続しているオーディオコーデックの周波数特性には影響を受けないことになります。




周波数特性実測値
1kHz基準











 黄色のセルが実測した周波数特性で1kHzを基準にしています。水色のセルは理論値、というより設計値ですね。実測値と理論値はよく一致していることがわかります。また、1kHzにおける利得はプリエンファシス使用時とスルーとで0.1dB以下の差なのでこれも設計通りと言えます。測定系の誤差はもちろん演算語長に起因する計算誤差もそれなりにあると想定していたので、正直なところここまで理論値とよく一致するとは予想外でした。

2009年7月3日金曜日

FMトランスミッタ: プリエンファシス(3)

5.デジタルフィルタ係数の検討

 今回作成したプリエンファシスの私の設計方針としては、理想プリエンファシス曲線からの偏差を0.5dB以内にすることと1kHzで入出力関係を1:1、すなわち利得を0dBにするというものです。このフィルタで、1kHzの通過利得はかなり小さくなってしまうので、通過利得を0dBとするために調整(下図G)する必要があります。




 作成したプリエンファシスのブロック図








 このブロック図の係数k、b、Gの3つを導出するため理想プリエンファシス特性との偏差のグラフを作成し、それらが最小になるよう3つの係数をカットアンドトライで決定しました。とはいえ、3つのパラメータのうち周波数特性そのものに影響するのは2つしかないうえ、理想値との偏差をエクセルのmaxやmin関数で表示させながら作業したのでそれほど難しくありませんでした。

 グラフ作成には、エクセルを使います。たとえば、10Hzから100kHzまでを任意の間隔で振幅を計算します。振幅は、対数を取ってdB表記にすると見やすいです。

 理想値との偏差は、kを1に近づけるほど小さくなる傾向のようですが、そうすると1kHzでの減衰量が増える傾向になります。FPGAでは24ビットの固定小数点演算を想定しており音声データのビット落ちが心配でしたが適当なところで妥当な特性が得られたのでそれ以上は深追いしませんでした。

 今回の設計値(fs=152ksps)
  k 0.75
  b 0.04541
  G 20.875





理想プリエンファシス特性との偏差
10Hz~15kHzで約±0.3dB(1kHz基準)










6.FPGAへの実装 ステートマシンを組んで、フィルタのブロック図通りレジスタへの足し算引き算を繰り返すだけですが、そのまま実現するには、k, 1-k, 1+b, Gの4つの乗算操作が必要になります。これを左右2チャンネル分なら都合8組の乗算が必要でハードウエアのコストが増えてしまいます。
 しかし、今回の製作ではプリエンファシス処理のサンプルレートは192kHz、システムクロックは38.912MHzと1サンプルの処理に256クロックもの時間があります。さらに係数そのものは一定なので乗算する2進数の係数をビット毎に分解して、そのビットとの乗算に相当するビットシフトと加算を繰り返しり乗算と等価な演算を行いました。

 先ほどの係数を例にとり、2進数に変換すると・・・
  k 0.75 → 0.11
  b 0.04541 → 0.00001011101
  G 20.875 → 10100.111

 ここで0.11との乗算は、2進数で1ビット右シフトと2ビット右シフトの和と同じですので、乗算器を使わずとも2回の加算で同じ結果が得られます。

2009年7月1日水曜日

FMトランスミッタ: プリエンファシス(2)

4.デジタルフィルタによる実装
(1)移動平均型LPF

 プリエンファシス回路は抵抗とコンデンサの組み合わせで実現できているわけですから、これをデジタル処理するにはIIRフィルタで実現できるんだろう、と想像はできますが何をどうすればよいのかまったくわかりません。とっかかりがなく途方に暮れているとき、師匠(勝手にそう呼ばせて頂いてます)から『「移動平均型」のフィルタでサンプリング周波数がある程度高ければ、CRの1次の特性、50μsとか75μsのカーブにうまく合います。』というコメントとともに資料が届きました。


 移動平均型LPF(1)
 ブロック図。IIRフィルタそのものです。
 Z-1は1サンプル遅延を示しています。





 移動平均型LPF(2)
 伝達関数




(2)移動平均型HPF

 『LPFの出力と入力の差をフィルタの出力とすれば、LPFの通過帯域を遮断域とするHPFとなる』。明快な説明です。妙に納得しました。



 移動平均型HPF(1)
 ブロック図








 移動平均型HPF(2)
 伝達関数



(3)移動平均型LPF, HPFの周波数特性




周波数特性











 たしかに、HPFの遮断域のカーブは、プリエンファシスのカーブにもよく似ています。しかし、音声の中~低域の周波数はHPFの遮断域真っ直中。カットされてしまいます。そこで、図のように加える入力のレベルにゲタを履かせ、わずかに持ち上げてやればプリエンファシス・カーブに近づきそうに思えます。




 移動平均型HPF(3)
 加える入力を持ち上げてみる "b"







 移動平均型HPF(4)
 伝達関数は当然 "b" を重ね合わせたものになります




 次に、このフィルタの周波数特性を調べてみます。参考書(古い本ですが、比較的わかりやすいように思えます。)によると、周波数応答はシステムを表す伝達関数の z に を代入せよとあります。
 そして、下式を用いてH(ω)の実部と虚部を求め、H(ω)の絶対値を計算するそうです。





 先ほどの式に、これを代入してみます。










 ωは、角周波数で周波数[Hz]に2πを掛けたもの。Tはサンプリング周期[sec]です。この式を変形してゆき、実部と虚部に分けてH(ω)の絶対値を取れば、周波数毎の振幅特性を計算できます。

2009年6月28日日曜日

FMトランスミッタ: プリエンファシス(1)

1.あらまし
 FM変調方式の受信機の音声出力の雑音スペクトラムは、周波数に比例して高音域ほど大きくなるので、高音域ではS/N比が悪くなってしまいます。このため、あらかじめ送信機(放送局)で高音域の変調度を強調(プリエンファシス)しておき、受信機では逆特性(ディエンファシス)を持たせています。この操作により送受を通した音声信号の周波数特性はフラットになりますが、受信機で発生する雑音はディエンファシスされた分だけ下がるので総合的なS/N比が改善されます。

 送信機(トランスミッタ)では、プリエンファシスを実装して高音域のレベルを持ち上げることになり過変調が心配です。これは、人間の声や自然界の音には高音域のエネルギー分布が少ないから問題なし、ということになっているものの、現代の音楽ではシンセサイザー楽器が多用されていることもあり高音域までそれなりの信号が出ています。このため、FM放送用の音声リミッタ(メジャーどころではOrban社OPTIMODなど)はプリエンファシス特性を考慮したものが使われています。


2.プリエンファシス特性
 プリエンファシスの周波数特性は、次式によります。


ただし τ: プリエンファシスの時定数


 日本やヨーロッパのFM放送の時定数は50μs。アナログテレビ放送の音声やアメリカのFM放送では75μsと決められています。

 ※初めてMicrosoft Office付属の「数式エディタ」を使いました。これ便利。
   今まで無理矢理ワープロ打ちしていたのは何?って感じ。



理想的プリエンファシス特性
1kHz基準の場合








 上のグラフは、プリエンファシスの式をもとにエクセルで描画させたものです。便宜上1kHz基準にしてあります。100Hzで約-0.4dB、15kHzでは約13.3dBの周波数特性を持っています。


3.プリエンファシス回路 ディスクリート部品によるプリエンファシス回路としては、抵抗とコンデンサ、抵抗とコイルの組み合わせたものがあります。
                        



プリエンファシス回路(a)













プリエンファシス回路(b)









 FMトランスミッタのキットなどでは抵抗とコンデンサを組み合わせた(a)の回路がよく使われています。一方、(b)の回路は安藤電気のステレオ信号発生器で使われているのを見たことがあります。確かにコイルの方がコンデンサよりも経年劣化要素が少ないのかもしれません。






新日本無線 ステレオモジュレータICNJM2035のプリエンファシス回路
まだ現役なんですね












ローム ワイヤレス・オーディオリンク ICBH1417のプリエンファシス回路

プリエンファシス回路はオペアンプのフィードバック回路に組み込まれています。内部の22.7kΩと2200pFの組み合わせで約50μsの時定数を得ています。

2009年6月21日日曜日

FMトランスミッタ用 入力ローパスフィルタ(6)

7.作成したローパスフィルタの評価
 せっかくなので周波数特性を実測してみます。PCにUSBオーディオを接続し、WaveSpectraを立ち上げます。まずは動作確認として、USBオーディオの入出力を直結して周波数特性を確認。




USBオーディオの周波数特性
0-24kHz、2dB/div
(サンプリング周波数48kHz)





 10kHzくらいからだらだらとハイ下がりになっています。こんなものなんですかね。6年前に買って放置状態のUSBオーディオなのでひょっとすると何か劣化しているのかも。しかも0.5dB範囲くらいでウネウネしています。これは、A/D、D/Aコンバータ内蔵のデジタルフィルタの特性かな。手持ちはこれしかないので仕方ないです。

 それではローパスフィルタの実測値です。



ローパスフィルタの周波数特性
0-24kHz、20dB/div






 いちおう、それらしい特性に見えます。




ローパスフィルタの周波数特性
0-24kHz、2dB/div



 


 通過域の特性は、USBオーディオの単体特性と比較すると、リプルがより目立つようになりました。差分を考えれば、0.5dB程度?と言えるかな。




ローパスフィルタの周波数特性14-20kHz、20dB/div





 阻止域の特性は、19kHzで60dB以上を確保できています。

8.実験風景




実験風景
(左)DDT誌 デジタルFMステレオチューナ
(右)デジタル処理型FMトランスミッタ
    (開発中ですが・・・)







写真は、トランスミッタとチューナを縦続接続しているところです。
ローパスフィルタの特性は、トランスミッタ(DWM誌2007.7付録のSpartan3E FPGAボード使用)に実装した音声コーデック(Cirrus Logic, CS4270)を通して測定しました。


9.まとめ なんとか所期の仕様を満たすものを作成することができました。本当は、一からHDLを書くつもりでしたがどうにも動作周波数を上げられず、自分のスキルのなさを痛感しました。そこでCoreGenの力を借りた訳ですが、適当にやれば動くだろうと期待したところ、そんなことはありませんでした。まず自分のコードの書き方を疑い、シミュレーション波形とにらめっこして最終的にはなんとか動作させることができましたがかなり遠回りをした気分です。今回得た教訓は「原因は、よくわからないと読み飛ばしたところにある」です。