SSブログ

サブウーハーコントロールアンプの設計 [PCオーディオ]

ステレオメインスピーカー2台とウーハー1台を使う2.1chシステムでは、左右の信号から低い周波数成分だけを抜き出してウーハーに与える。低周波は指向性が鈍い(人間の耳ではどこから音が出ているか判別し難い)ので、1台で済まそうというわけだ。実際は楽器の定位に少なからず影響はあるが、今までもたいした違和感は無かったし、PC用の小型スピーカーがメインでは、低音が豊かになる恩恵のほうがはるかに大きい。

構成は以下のようにした。
SBW-CT1ダイアグラム
まずは、マスターボリュームで全体の音量を調節して、メインスピーカーとウーハーへ送る。ウーハー用は左右の信号をミックスし、ローパスフィルタで低域成分を抽出する。フィルタのカットオフ周波数は音を聞きながら調整したいので、ツマミで変えられるように、可変範囲は50Hz~250Hzを目標にする。ウーハー用のボリューム調整と位相を反転する切替スイッチを通してから出力する。

実際の回路は以下のとおり。
SBW-CT1アンプ部回路図
マスターボリュームは50kΩ2連Aカーブ。左右の信号ミックスはオペアンプの反転増幅回路を使った加算器。ローパスフィルタは非反転の多重帰還型(Sallen-Key)アクティブフィルタで構成した。フィルタの基本回路はこれ。
Sallen-Key LPF
バターワース特性でQ=1/√2にしてカットオフ点のレベルを-3dBに。C1=2×C2にすれば、ほぼR1=R2でいける。R1とR2を変えれば周波数を連続可変できる。入手しやすい2連ボリュームを使うため、2次フィルタ(-12dB/Oct)にした。できれば3次の-18dB/Octくらいほしかったが仕方がない。
C1=0.2uF、C2=0.1uFのとき、R1=R2=24kΩでFc=47Hz、R1=R2=4.7kΩでFc=240Hzがいいところだ。その範囲より外だとQまたはR1=R2が満足できなくなる。従って可変範囲は47Hz~240Hzとなった。

10kΩのサブウーハー用ボリュームを通った後、反転と非反転を切り替えられ、ゲインを持たせたバッファアンプを通して出力する。VR3で絞った分を補うのと、この後につながるパワーアンプのゲインやスピーカーの能率に余裕を持たせるためだ。加算器で一度反転しているので、ここで反転すると入出力が同相になる。

カップリングコンデンサを極力除くためオペアンプにはFET入力(入力オフセット電流が少ない)のOPA2134を使う。オフセット電圧(電流)があると、ボリュームを動かしたときにガサゴソいうし、スイッチを切り替えたときにショックノイズが出る。何かの拍子にDCを漏らすといけないので、最終出力にだけ無極性のケミコンを入れておく。

NJM2114DDの謎
実は最初の実験では、オペアンプにバイポーラ入力のNJM2114DDを使ったのだが、うまく動作しなかった。まずローパスフィルタの出力が11Vにラッチアップする。発振している様子はないのだが信号が出てこない。また電源OFF時のショックノイズが大きい。+10V~-10V振るためスピーカーのコーンがどえらく動いて危険なので却下した。同じBi-P入力でもNJM4556ADやNJM3414ADなどでは問題ない(電源OFF時ショックノイズは出る。出方はオペアンプごとに特徴があるようだ)。ヘッドホンアンプのオペアンプもNJM2114DDなので変えてみる価値はあるかもしれない。


バスレフ箱の設計を推測する [PCオーディオ]

サブウーハーを自作するにあたって、それぞれのスピーカーの設計がどうなっているか調べておこう。測定すればいいのだが、あいにくリファレンスマイクロホンや無響室を持っていないので、箱の寸法から推測する。まずはPM0.3だ。

裏パネルにあるバスレフポートの直径は約15mm(半径r=7.5mm)。穴にメジャーを突っ込んで引っ掛かりを探して測ると長さ(L)は48mmくらい。
箱の大きさが100(W)×185(H)×130(D)。バッフル板の厚みは12mmくらいある。その他の板厚はFostexの小型箱キットと同じ9mmと予想すると、内容積は(100-18)×(185-18)×(130-12-9)=1492646mm^2(約1.49リットル)。デジタルアンプや電源の体積がわからないが、少し差し引いて1.4リットル=1400000mm^2としよう。

バスレフボックスの共鳴周波数F[Hz]は、(v/2π){S/(Vo(L+r))}^0.5 で求まるらしい。

ここでは、
  v:音速≒340000mm/sec
  S:ポート断面積=πr^2≒177mm^2
  Vo:ボックス容積≒1400000mm^2
  L:ポート長=48mm
  r:ポート半径=7.5mm
で、計算すると81.7Hzとなった。いろいろ補正が必要らしいからざっくりとした値ではあるが、このサイズにしてはだいぶ低め。径も小さいので、ポートからの放射で低音の音圧を稼ぐことはあまり考えていないと思われる。ポートの共振周波数以下で周波数特性が急激に下がるので、それを低めにしておいてダラ下がりにしておき、アンプ側のバスブーストで持ち上げて使えるようにしたのかも知れない。実際グラフィックイコライザで低域を持ち上げるとそれなりに出る。しかしバスドラの「ポン」が「ボン」にはなるが「ドン」にはならず、「ドスン」という響きに包まれるような雰囲気までは無理だ。

YST-MS25のウーハー部の箱は、150(W)×280(H)×210(D)あるが、後ろが少し絞られているのと、上部ツマミのあたりは別室でアンプが入り、スピーカーの後ろに電源トランスが入っていると思われるので、実質3.8リットルくらいか。バスレフポートのサイズが直径35mm、長さは142mmくらい。ボックスとしての共鳴周波数を計算すると64.7Hz。こいつはヤマハのアクティブサーボテクノロジーで、スピーカー部のインピーダンスが上昇するとアンプが電流を増やして強制駆動するから40Hzくらいまでは出るかもしれない。

アクティブサーボはアンプに正帰還をかけるので、アンプとスピーカーを決め打ちしてきちんと調整しないと危ない。トーンコントロールでいじるのは面倒なので、なるべく低い周波数まで音圧が出せるスピーカーシステムにしたい。バスレフで50Hz以下を目標にする。

箱の大きさは、置き場所の制限から幅30cm、高さ20cm、奥行き30cmとする。幅は少し余裕があるので容量の調整はここでする。板厚はベニア合板で12mm以上ほしい。
板厚と取り付けスペースを考慮すると、スピーカーユニットの口径は10~12cmがいいところ。コイズミ無線で安めのウーハーを探し、DAYTON AUDIOのDC130BS-8を3200円くらいで購入した。F0は49Hzと言っていたが、カタログを見ると61.2Hzだった。
DC130BS-8

「バスレフ 設計」でヒットしたページで設計プログラムを公開してくれている方がいたので、ありがたく使わせてもらう。
http://www.asahi-net.or.jp/~ab6s-med/NORTH/SP/bassreff_canvas.htm

そこでDC130BS-8を選択するとすぐに結果が出て、容積18.77リットルの箱と42.37Hzのポートで、33Hzくらいまでレスポンスが稼げる。このままではサイズが合わないので、使いたい箱の容積とポート共振周波数を調節する。
最終的に決めたのが、幅32.4cm(板厚分だけ伸ばした)、高さ20.0cm、奥行き30.4cm(28cmに板厚を加算)。ポート径5.6cm(入手可能な塩ビパイプVU50規格の内径)、ポート長17.6cm。ポート共振周波数は47Hzで入れたが、吸音材やポートに容積を食われて48~49Hzくらいになりそうだ。グラフによると36Hzくらいで-10dBになる。


Fostex PM0.3を購入 [PCオーディオ]

PC用スピーカーはYAMAHAのYST-M8にYST-MS25のサブウーハ部を組み合わせていたが、決して満足していたわけではない。
YST-M8 + M25S

机上のスペースが限られているので、幅10cm程度がいいところ。とはいえ小型のパワードスピーカーにはこれといったものが見つからなかった。フルレンジ一発でYST-M8以下では仕方がないし、2.1chはハンパな前衛芸術みたいなカッコウをしてる。BOSE?・・まあいいんだけどさ、2.1chに慣れてしまうと重低音の倍音ばっか盛られてもなあ。自作するしかないかと10年(ヲイ)考えていたのだが、ついに出た!
FOSTEX_PM03
幅は10cm、正統派の格好、頑丈なBOXと2Way構成、15Wアンプ内蔵と、求めていた仕様にジャストフィットだ。色はグレー。スピーカーユニット周りが黒いので真っ黒よりはデザイン的アクセントがあるし、白みたいに主張し過ぎないのが良かった。液晶ディスプレイが黒なので周りにも良く溶け込む。青色のLEDは各所のレビューで眩しいと悪評だが、ステレオ配置で正面から見なければちょうど良い明るさだと思う。

Fostexといえば老舗のスピーカーメーカーで、中学生時代初めて作ったスピーカーもユニットはフォスター電機、高校生のとき作ったバックロードホーンもFostexのFE-163を使った憶えがある。

パワースイッチとボリュームが右スピーカーの裏パネルにある。電源はPC連動なので問題ないけれど、ボリュームは少し困った。PC側で調節するとAカーブでないのでやりづらい。作りは質実剛健で良心的だが、唯一左スピーカーへのケーブルがミニフォーンで接触不良気味なのがいただけない。とりあえず接点復活剤で安定したけど、これで15W通るのか?保障期間が過ぎたら適当なコネクタに改造しよう。オカルトオーディオでケーブルを取り替えて「音が良くなる」のはほとんどが接触状態の改善による。

音は落ち着いた感じで、ボーカルが非常に綺麗に聞こえて良い。低音はキャビネットサイズの限界もありあまり出ない。低音楽器では少し上の帯域を強調しているようで、バスドラの「ドン」という音が「ポン」になる。耳で聞いた限りでは、だいたい150Hzくらいから落ち始め、130Hz付近で少し盛り上がり、その先はどんどん落ちていく印象。

YST-MS25のサブウーハーを組み合わせるとなんだかおかしい。この音場が広がる感じはたぶん逆位相だろう。ウーハーを後ろ向きにしたところ違和感は少なくなった。カットオフ(クロスオーバー)周波数も少し合わない気がする。
YST-MS25_WF
サテライトスピーカーの片方は電源スイッチとボリューム調整のために残してある。その奥の棚板の下が21cmくらいの高さ。

サブウーハーはほしい。とはいえ、Fostexの最小サイズのPM-SUBnでも、300(W)×301.2(H)×364(D)mmある。上位機種のPM0.4nPM0.5n用ということだから、20cmクラスのユニットでないと負けてしまうのだろう。アコースティックサスペンションということは密閉箱に吸音材を詰め込んで小型化しアンプのパワーで押すタイプか。それでも大きい。PCデスクの足下に棚板があり、その下に入れられればすっきりするので高さは20cmに抑えたい。

YAMAHAにYST-FSW050という横長のタイプがある。サイズは350(W)×163(H)×350(D)mmで良いがカットオフ周波数が150Hz固定で、位相も切り替えられない。上位のFSW150は横幅が大きくかえって邪魔になりそう。

サイズ、カットオフ周波数、位相、ボリューム調整を全て満足する既製品はないので、ここはひとつ自作するか。


出力段バッファ付きヘッドホンアンプ(その5)ケースに組み込む [ヘッドホンアンプ]

オペアンプ+ダーリントンバッファのアンプ基板を放っておいたら、バーンズの半固定抵抗のつまみが変色していた。基板むき出しのまま机の上に置きっぱなしで1年以上過ごせる自分にあきれる。歪率計で測定しようとしたら信号が不安定でうまくいかないので、ケースに入れてちゃんと配線してやることにした。タカチのMB-52(W110×H30×D140)に、アンプ基板、3端子レギュレータ、電源スイッチとパイロットランプ、入出力ジャックとボリュームを組み込む。
HPA-DR1内部
いろいろと手持ちの部品を使ったので統一感がないが、機能はAT-HA2に準じてある。入力のRCAピンジャックと3.5mmステレオミニジャックはパラレル接続で、コネクタ形状に対応することと、PCサウンドをヘッドホンとパワードスピーカーへ分岐するために使える。たまにPC以外の外部入力をつなぎたいことがあるので、もうひとつミニジャックを付け、ここにプラグが差し込まれるとRCA側からの入力をカットするようにした。ヘッドホン出力のミニジャックは単なるパラレル。

電源は12V-500mAのトランス式ACアダプタが発掘されたのでそれを使う。ハムノイズの除去とアンプに使用した電解コンデンサの耐圧以下を保証するために3端子レギュレータを通す。以前、3端子レギュレータの出力に大容量のコンデンサをつけたときの保護回路の動作を確認した手前、シリーズ抵抗無しなのは少々心が痛むが、まあ壊れることはなかろう。

3端子レギュレータは放熱(実際ほとんど発熱しないが)とシャーシアースを兼ねてケースに直付けした。正電源の78xxシリーズは放熱フィンがGND端子と共通なのでこれができる。負電源の79xxシリーズはフィンが入力端子と共通なので絶縁しなければならない。最近のレギュレータICは全体が樹脂モールドされているので絶縁は楽だがフィンを電極としては使えない。これが1点アースかというとそうではなく、入力のRCAピンジャックが絶縁なしのシャーシ直付タイプだし、優先側プラグジャックのGNDがシャーシに触れている。この信号レベルと規模のアンプならあまり一点アースにこだわる必要はない。
パネル前面と全体はこんな感じ。ボリュームつまみは適当なのを買ってきて付けよう。インレタも面倒なのでテプラか何かでお茶を濁すつもり。型番は仮にHPA-DR1とでもしておく。
HPA-DR1外観

最近自作した自動歪率計で測定した結果がこれ。負荷抵抗は50Ω。
歪特性HPA-DR1_50Ω3F
NJM4556A(オぺアンプ)一発と比べて10mW以上の歪率が多少良いが、最大出力はあまり変わらない。これはNJM4556Aの許容出力電流が高いのと、電源電圧の不足が原因だ。もっとインピーダンスの大きいヘッドホンに対応するには電源電圧を上げてやればいい。

負荷抵抗が16Ωになるとだいぶ違ってくる。
歪特性HPA-DR1_16Ω3F
NJM4556A一発と比べて歪率は全体的に1/10くらいになって、最大出力も250mWが余裕でクリアできる。10kHzの歪率が少々悪化するのは少し気になるが、0.03%以下なら問題にするレベルではないだろう。

音楽を聞いてみた。音源はCDからリッピングしたWAVEファイルを、LilithのWAVEOutでSE-200PCIに送る。AT-HA2改(NJM4556Aオペアンプ一発)と比べたところ、全体的にパワーがあってハッキリしている感じ。AT-HA2改とゲインは同じはずなのに最初の音が出たときに「音量上げすぎたか?」と思ってしまった。ノイズはボリュームをいっぱいに上げたときに少し聞こえる程度だが、AT-HA2改よりは多めだ。

ちなみにヘッドホンはMDR-EX90SLと、オーディオテクニカのATH-CKS90。最近外出時には専らATH-CKS90を持ち歩いている。オーディオテクニカにしては比較的低音が良く出るし中高音もうまく鳴る。さらに嬉しいのは外部への音漏れが少ないこと。MDR-EX90SLは音漏れが多いので電車内などでは使いづらかった。
ATH-CKS90
実はインナーイヤータイプはほとんどが合わない。耳の形が一般的でないのかうまくはまらずすぐに外れて落ちてしまうのだ。イヤーピースの大きさ云々の問題ではない。ATH-CK90はドライバーの径が13mmと大きめなので外耳のふちにうまく載る。ATH-CKSシリーズもドライバ径が小さいタイプはダメだったし、最近のソニーでドライバが横を向いているタイプは全くもって耳に乗らない。ちなみにATH-CK90はすでに生産が終わっている。つくづく間抜けたブログである。


測定ソフトの改良 [歪率計]

以前は信号レベル対歪カーブの途中におかしなピークが出ていたが、1ステップずつ送って調べたところ、ある条件で入力アッテネータの調整に失敗して波形がクリップしていた。またSB-HDに変えたところ、入力感度の違いで時間波形の振幅が少し小さくなったため、アッテネータのステップ間を行ったり来たりして収束しない場合があった。
レベル調整アルゴリズムを再検討するとともに、測定スピードのアップを図ったところ1ステップ2秒ほどで測定できるようになった。54ステップの測定が1分55秒で完了する。
Win7_歪50Ω_2周波数
今度は、0.02W近辺の段付きが気になる。これは感度を上げるためにU2アンプのゲインを上げると、ゲイン切り替えリレーを駆動するスイッチング電源のノイズ(25kHz付近のノイズが盛り上がる)も増幅され、THD+NのNが増加するためだ。リレーを駆動用電源をオペアンプと共通化するのは後にして、とりあえずスイッチング電源をトランス式のACアダプタに替えてみた。SONYのCDウォークマンのACアダプタが4.5Vだったのでそれを借用した。
U2ゲインを128倍にして1mVの信号を入力してもFFT波形におかしなピークは無くなった。しかし4.5Vは非安定化のため、50Hzと100Hzにハムノイズが乗っている。
Win7_システム歪_最高感度
歪測定の結果も改善された。まだ段付きは多少残っているが、4.5V安定化でさらに改善できると思う。
Win7_歪50Ω_1周波数

16Ω負荷で400Hz,1kHz,10kHzの3周波数で測ってみた結果がこれ。測定速度が速くなったので、気軽に実験ができるようになった。
Win7_歪16Ω_3周波数
10kHzで歪率が悪化しているが、おそらくこれがこのヘッドホンアンプ(オペアンプ一発)の実力だ。使っているNJM4556Aのカタログ上では、オープンループゲインは10kHzでも充分ありNFB量も稼げるはずだがそれは負荷が軽いとき。負荷が重いと周波数特性も苦しくなる。
カタログ上の最大出力電流は73mA。16Ωで0.1Wのときの電流は79mAだから最大出力電力は出力電流の限界と一致する。

測定系の影響が出るとすればサンプリング周波数と周波数帯域の不足だ。96kHzでサンプリングしているとはいえ、10kHzの信号では1周期に9.6ポイントしか入らない。それが出力、入力を経ると歪の増加として認識されてしまう。周波数帯域が48kHzで切られているのでそれ以上の高調波は測定できず歪の減少として認識される。歪率計の入出力を直結して測ると10kHzのとき0.01%くらいだから、測定結果が0.1%ならまあ信用してもいいだろう。
ちなみに5kHzなら0.006%、15kHzで0.015%、20kHzで0.02%くらいだ。被測定アンプの歪率によって、どの周波数まで信用できるか判断しなくてはならない。
15kHzのときの時間波形を拡大したのがこれ。信号の実効値はきちんと取れているのがFFTの不思議なところ。
Win7_システム歪15kHz


USBサウンドデバイス(その2) [歪率計]

SB-HDをWindows7 Starterの入ったネットブック(Lenovo S10-3)につないでドライバをインストールした。インターネット経由で最新版が手に入るというのでダウンロードして更新したところ、グラフィックイコライザが追加された。
Win7_SBコンソールWin7_SBコンソールミキサー
WindowsXPとはコンソールの機能が違うようだ。サンプリングレートやビット数、入力モードはここでは選べないので、コントロールパネルのサウンドプロパティから操作する。
Win7_サウンド入力パネルWin7_ライン入力プロパティ

例によってコンソールの出力ボリュームを100%、LabVIEW側のソフトボリューム100で400Hzのサイン波を出力し、コンソールのライン入力ボリュームで調整すると・・・なんだこりゃ?!
Win7_SB歪(出力100_Vol100%)
時間波形のピークが潰れて盛大に高調波が出ている。
入力でクリップしているのかと思い、コンソールの出力ボリュームを絞っても1kHz以下の周波数に妙なノイズ(高調波成分以外のピークもある)が乗っている。ということは出力ボリューム以前に波形がクリップしているのか?
Win7_SB歪(出力100_Vol67%)

あれこれ組み合わせを変えてやってみたところ、ソフトボリュームを99にすると静かになることがわかった。
Win7_SB歪(出力99_Vol67%)
これならノイズフロアは-130dB近く、歪率0.0029%の優秀なデバイスだと言える。低い周波数領域のノイズが少し上がるが、それでもカタログスペックのS/N比-114dBは本当だ。21kHz付近にあるピークの原因は不明だが、-120dBなら問題はないし、WidnowsXPで出ていたプチプチノイズもほとんどない。

それにしても、Direct Soundで1.00のピークを送り込むと歪むということは、ドライバ内の演算か、D/Aコンバータの調整がうまくいっていない可能性がある。音楽を楽しむなら振幅100%のデータを送り込まないことだ。

自動歪率計で使用するソフトボリュームは99までに制限することにしよう。それでコンソールの出力ボリュームを100%にすると、実際の信号レベルは2.16VrmsでWindowsXPのときよりだいぶ大きい。うーむ、出力アンプのゲインは変わらないだろうから、XPのときはD/Aコンバータの性能を使い切っていなかったのだろうか? ちなみに入力感度はXPのときと同じだった。ソフトボリュームの値と出力レベルの変化は以下のとおりで、リニアリティはSE-200PCIより良い。
SB音量-減衰率

信号調節ボックスのほうも、SB-HDに合わせて調整しなおす。アッテネータを1/1にし、ソフトボリュームが99のときにテスト信号出力が1Vrmsになるよう、半固定抵抗を調整する。シールドボックスを外さなくてもいいよう、シャーシに小さい穴を開けてドライバを差し込めるようにしたが、VRのつまみを手探りするのが難しい。
トリマー用穴

入力側は、SB-HDのライン入力感度が1Vrmsより低いので、ゲイン1のときに1Vrms入れてもフルスケールまで振れない。そこで被測定アンプからの信号が1Vrmsのとき、取り込んだ時間波形の振幅が650mVrmsになるよう半固定抵抗を調整した。初期設定ファイルにこの値を書き込んでおき、ソフトウェアはそれを読み込んで実際の入力レベルに換算するように改良する。ちなみに、ソフトボリュームと出力レベルの対応もファイルから読み込んで反映するようにしてある。


USBサウンドデバイス(その1) [歪率計]

ノートPCで使おうとしたら、マイク入力とヘッドホン出力しかないことに気がついた。ここはひとつUSB接続のサウンドデバイスを使ってみることにしよう。外付けなのでPC内部のノイズに影響されなくてS/Nが良いということだが、さて・・・

サウンド出力(再生)とライン入力(録音)が同時にできなくてはならないのと、できれば96kHz,24ビット以上で動いてほしい。オンキョーのUSBサウンドデバイスはUSB1.1で、サポート情報を検索すると同時入出力の場合に制限がありそうだ。USB2.0を条件にするとクリエイティブのUSB Sound Blaster Digital Music Premium HD(長いので以下SB-HD)が見つかったので買ってみた。Amazonで税込み6,794円だった。
USB SB-HD

まずはデスクトップPC(WindowsXP SP3)につないでみる。付属のドライバソフトを入れると専用のオーディオコンソールが使えるようになった。ここでサンプリングレートとビット数、ミキサー設定などができる。SB-HDは同じ入力端子をマイク、フォノ、ラインレベルに切り替えられ、フォノにするとRIAAイコライザが有効になり、MMカートリッジを直接つないでアナログレコードをデジタル録音できるようだ。96kHz,24ビット、ライン入力を選んで実験する。
SBコンソールパフォーマンス(WinXP)SBコンソールミキサー(WinXP)

入出力を直結して測ったのがこれで、出力ボリュームを最大にして、入力ボリュームでレベルを調節してある。SE-200PCIより成績が良い。さすが外付けといったところだ。
SB歪(出力100%)

試しに入力ボリュームを100%にして出力ボリュームを絞ったのがこれ。
SB歪(入力100%)
こちらのほうが若干だが歪が少ない。普通は出力最大で入力ボリュームを絞ったほうが成績がいいはずなのだが・・・?。おそらく最大出力時に信号自体が歪むか、入力のヘッドアンプがボリュームより前にあって、大入力で歪が増えるかのどちらかだろう。ちなみに、出力ボリューム最大時の出力レベルは1.55Vrms。入力ボリューム最大時に1.06Vrmsくらいでフルスケールになる。他のサウンドカードより入力感度が低めだ。

しかし問題が生じた。FFT波形がときどき大きく乱れる。音楽を再生してみるとプチッというノイズが出る。こいつがいわゆるUSBサウンドのプチプチノイズか?!
歪率がいきなり1%を超えたらFFTを停止するようプログラムに細工をしてノイズの瞬間を捉えた。
SBプチプチノイズ波形
挟まっている波形は元の波形データの切れ端っぽい。ノイズの前後で元の波形の位相はずれていないので、一瞬どこかの(メモリにある)波形データで置き換わっているような感じだ。挟まる波形によってはいきなりレベルが変わるため「プチッ」というポップノイズとして聞こえる。

プチプチノイズの出る頻度はその時々によって違うが、場合によってはかなり盛大に出るときがあって、これでは音楽再生には使えないし、歪率測定時に出ると使い物にならない。Intel 945GチップセットやWidnowsXPとの相性かもしれないので、Windows7の入ったノートPCで試してみよう。


アプリケーションプログラムを組む [歪率計]

ソフトウェアを組んでみた。まだ細かい調整が済んでいないのでいろいろ問題があるが、とりあえず動いている。
下の4枚の画面は、昔組んだヘッドホンアンプ(オーディオテクニカ製AT-HA2の中身を改造したもの)を測定している最中だ。入力ボリュームは最大、ヘッドホンの代わりに50オームのダミー抵抗をつけて、出力電圧を変化させたときの歪率の変化をグラフに描いている。

信号出力タブ
PCサウンドから正弦波を出す。これは実験用プログラムとあまり変わっていない。
自動歪率計ソフト(信号出力タブ)

信号入力タブ
PCサウンドに測定信号を取り込んで、歪率解析を行う。
自動歪率計ソフト(信号入力タブ)
レンジ切り替え後のタイミングを取るため、単発入力でも録れるように改造した。ところが波形の最初に必ずゴミデータがつく。仕方なく数10ポイント多めに取り込んで切ることにした。その他、ときどき周波数帯域に段が付くことがある。48kHz以上で20dBくらいノイズレベルが下がるのだ。PCをリセットすると治るのが不思議。入出力のサンプリングレートの件といい、SE-200PCIはいろいろと不安定なようだ。

信号調節タブ
サーボとU2アンプのゲインを切り替えて、信号レベルを適切に調整する。
自動歪率計ソフト(信号調節タブ)
自動測定時以外はマニュアル操作もでき、アッテネータとU2アンプゲインをそれぞれ設定できる。その他オートモードでは希望の出力レベルと入力レベルに応じて、自動的にアッテネータとゲイン、サウンド出力のソフトウェアボリュームを調節してくれる。

自動測定タブ
各機能を連携させ、レベルを変えながら歪率を自動測定する画面。
自動歪率計ソフト(自動測定タブ)
ここでは50mV~5Vまでを3つのブロックに分けてレベルの間隔を変えてある。間隔は対数で自動生成している。周波数もいくつか切り替えられるので、400Hzと1kHzの2つを指定した。ブロック数と周波数はそれぞれ最大10個まで指定できる。

0.5V付近に妙な山があるが、これは毎回必ず出るので、おそらくレンジを切り替えたときに何か起こっているのだろう。その他レベルの自動調整がまだスマートにいかないので、アルゴリズムを再検討しなくてはいけない。ハードウェアのミスも直したい、まだしばらくは楽しめそうだ。

トータル58データの測定時間は5~6分くらい。データはファイルに書き込まれる。放っておけばいいので楽だが、サーボの音が盛大に鳴り響くので深夜は避けたほうがいいかも。ファイルの内容はこんな感じ。
歪率データファイルの内容

9月は締め月で忙しいというのに、なんでこんな手のかかることをやろうと思い立ったんだろう・・・


ケースに組み込み [歪率計]

部品を全部並べて入りそうなケース(タカチのUC26-7-20DD)を買ってきて組み込んだ。
組立てケース内部

  • 信号調節部のシールドボックスは底面にビスの頭が出ているので、ひっくり返してフタ用のネジ穴を使ってケースに留めた。
  • Arduinoはネジ穴の近くに部品やパターンがあって、M3の金属ビスで留めるのが難しい。仕方なくM2.6の皿ビスでPET板(ペットボトルと同じ材質のプラスチック版)に留め、それをケースに留めるという、まさかの2段重ね。
  • Arduinoへの配線はシールド(上に重ねるドータカード)用のユニバーサル基板が手に入らなかったので、スクエアピンを挿してケーブルを引き出し、バックパネルに付けた基板上で分配した(この時点では左側の1枚だけだったのだが・・・)。
  • サーボモータはL型のアルミ材を切り出して留めた。
  • オペアンプ用の電源はパネル付けの3端子コネクタ(たぶんサトーパーツ製)で接続。
  • サーボとリレー用の5V電源はEIJAの#2ジャックをバックパネルに付けた(この時点では1つだけだったのだが・・・)。
  • ArduinoのデジタルI/Oのうちデフォで5V出ているピンがいくつかあり、リレーがONになる。0Vのピンを優先し、ゲイン切り替えに9,10番、サーボは2,3,7番を使うことにした。

サーボの角度をテスト
サーボの角度はばらつきが大きい。スイッチの角度は30度刻みで0~150度、サーボは0~180度のうち15~165度を使うように試みた結果がこれ。
サーボ角度表
カップラの取り付け角度も加わるので絶対値にあまり意味はないが、相対的に見てもLabVIEWの角度指定だけでは実用にならない。仕方ないので、これを参照テーブルとしてプログラムに読み込んで使うことにする。

入出力を直結してテスト
歪率を測ると、0.17%になっている。
組立て歪率(GND共通)
スペクトルを見ると明らかにノイズフロアが上がっているのと、26kHzや44kHz付近にピークがある。USBケーブルを抜くと無くなるので、Arduinoのノイズが回り込んでいるのだろう。USBケーブルはそのままにゲイン切り替えへの配線を外すだけでも大人しくなるので、Arduino側と信号調節側のGNDを切り離せばいいのかもしれない。
フォトカプラを入れて絶縁し、ゲイン切り替え側には別に5V電源を用意することにした。これでバックパネルの小基板と電源ジャックが増えてしまったが、歪率は0.007%に戻った。
組立て歪率(GND絶縁)

その他のミステイク

  • ケースが小さすぎてフロントパネルが付けられず、シールドボックスのパネルがむき出しのまま。電源ケーブルを横から引き出し直したため前面にバカ穴が開いたまま。ラベルシールでも貼って隠そう。
  • ボックスを裏返しに付けた後で、レベル校正用の半固定抵抗が回せないことに気が付いた。さらにジョンソン端子の上下が逆になった(ステレオ装置の慣例として左=白=上、右=赤=下なのだ)。一回り大きなケースに替えてフロントパネルをデザインしよう。
  • 電源が3台必要ってのは大げさ。アナログ電源の容量に余裕を持たせてリレーを12V仕様に変更すれば1つ減らせる。

まあ、性能には関係ないので後回しにして、先に自動測定プログラムを作ることにする。


RCサーボのテスト [歪率計]

ロータリースイッチのつまみをPCから制御して回すためにRCサーボを使う。ロボットブームのお陰かラジコン用の小型サーボが安価で手に入る。

制御用マイコンボードにはArduino UNOを使い、3台のRCサーボのほか、デジタル出力でU2アンプのゲインを切り替える。
PCから角度を制御したいので、USBでつないだまま端末として動作するよう、スケッチ(内蔵プログラム)を作成しなければならない。
LabVIEWにはArduino用のツールキットが無料で用意されていて、付属のスケッチをIDE(Arduinoの開発環境)に読み込んでアップロードすると、ArduinoがまるでUSB接続のI/Oデバイスのように動作する。各種センサ/サムスティック/アナログ波形入力、RCサーボ/ステッピングモータ制御、7セグ/BlinkM/LCDディスプレイ駆動、PWM/トーン出力、I2C/SPI通信などのライブラリが付属しているので、安価なDAQデバイスとして利用できる。ただしあくまでもPCの手足として使うためのツールで、組み込みプロラムをLabVIEWで作ることはできない。

とりあえず手持ちのRCサーボをつないでテストしてみた。
Arduinoでサーボのテスト

LabVIEWのライブラリではデジタルピン番号と、角度もしくはパルス幅を指定する。指定したピン番号順に逐次パルスを出していくようだ。
サーボパルス0-90-180度
上の図は、角度を指定するライブラリを使って(上から)0度、90度、180度にしたときの波形。パルス幅は約0.54ms、1.48ms、2.00ms。周期は20ms(50Hz)、ピン間ディレイは10us。実際のサーボの回転角度はほぼ合っているようだ。
ピン番号はどれでも指定できるので、一度に12台のサーボを動かすことができるが、全部のパルス幅の合計が20msを超えると全体の周期が長くなる。

今回は、秋月電子でGWSのMICRO/2BBMG/JRを買ってみた。一個1080円。小型で、速度よりトルク重視のタイプ。ロータリースイッチくらいなら直接回せる。
つまみを回すアダプタを作った。少し遊びがあるが、それくらいのほうが軸ずれや角度ずれを逃がしてくれていいかもしれない。
つまみ操作用カップラ

あとは適当なケースに組み付けて、回転角度の調整をしよう。


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。