簡単な回路(プログラム)でノイズっぽい信号を発生できるLFSR(Linear Feedback Shift Register)。どんな波が含まれるのか見てみた。
発生にはPICマイコンを使用。DACには簡易にR-2Rラダー抵抗を使う。たかだか4bitなので、5%カーボン抵抗で組む。240Ω、2.5VP-Pのライン出力を得た。
なお、GP3は入力専用なので、電源などにつないで電位を固定しておくべきだが、面倒なので開放のままにしている。今までにこれで問題が起こったことはない。
出力とするライン信号についても調べてみた。統一規格は無いようで、周りを見回しただけでも、出力インピーダンスは600Ω~10kΩとバラバラ。出力電圧も-7dBs表記がある一方で、300mVだったり2Vだったりもする。実測も含めて、おおむね、電圧は1V以下、出力インピーダンスはなるべく低め、入力インピーダンスは10kΩ~47kΩと高め、あたりが主流と見た。
この回路は、手持ちに溢れていた1kΩを使ってR-2RラダーDACを構成した。この状態では、5V500Ωになるが、さすがに出力電圧が高すぎたため、470Ωで半分に押さえ込んだ。
このライン出力は、ビデオデッキを介してPCのライン入力へつなぐ。デッキを介したのは、すでにPCのライン入力に接続されていたという単純な理由。
PC上では、WaveSpectra(efu氏)を使ってFFTをし、パワースペクトルを得る。音声帯域用のツールなので、PICで発生する信号は、1kHzあたりを目安にする。PICは内蔵クロックを使うため、±1%の誤差があり得る。
ハードウェアの動作確認を兼ねて、とりあえず既知の波形を見てみる。
サインに見えないサイン波は、1kHzにピークが見える。波形の荒れのせいか、高調波もたくさん出ている。オシロスコープで見ると、こんな尖った波ではなく、ちゃんと16階調の階段状になっている。
三角波はおおむね奇数次の高調波が出ている。高調波は、振幅の上下が対象の波では、奇数次のみ出るという。-40dB/dec(-12dB/oct)で減衰していく。聴感では、こちらのほうが耳触りが柔らかく、サイン波っぽい印象だった。
方形波(矩形波)も奇数次の高調波のみが出る。減衰はやや緩く、-20dB/dec(-6dB/oct)となる。
鋸波(鋸歯状波)は、上るタイプと下るタイプとで聞き分けはできなかった。上下非対称のため、偶数次の波も出て、整数倍の高調波が-20dB/decで減衰していく。順に聞いてくると、鋸波のときだけ和音のように聞こえた。
LFSRは7bit、6bit、4bitで試した。2kHzで駆動したので最高1kHzでビットが変化する。それぞれでのtapは、(7,6)、(6,5)、(4,3)とした。
1kHzを境に変化が見られる。
高い方では、奇数次に緩やかなピークが見られる(C点)。ピークの減衰量は-20dB/dec。方形波に似た特性。鋭いピークにならないのは、上下非対称な波形が含まれるためと思われる。
低い方では、満遍なく波長が含まれるように見えるが、よく見ると16Hzほどの繰り替えし(A点)になっている。7bit=127パターンなので、2k/127=15.7Hzが出ているのではないか、というアドバイスをもらった。実際、駆動周波数に比例し、またレジスタのビット数を変えても変化が見られたので、正しいらしい。
さらに、なだらかなピーク(B点)が重なっても見える。7bitLFSRでの間隔はおよそ140Hz。6bitLFSRでは約225Hz。4bitLFSRでは確認できない。駆動周波数には比例する。また、1kHz超の減衰域の山の中にも、同様の構造が見られる。これに関しての詳細は不明。
ノイズ源として見ると、駆動周波数の半分より低周波側で、均一に見える部分ができ、ビット数を増やすことで、繰り返しが見えなくなり、より緻密になる。また、波長の存在の有無の差(縦方向の厚み)が減るので、その点でもビット数は増やしたほうが良さそう。
ちなみにMSXで使われている音源チップ、PSGでは、ノイズ発生のために17bitのLFSR(tap=17,14)を使用している。駆動周波数はシステムクロックの半分のさらに1/16である112kHz。可聴域ではかなり均一なノイズが発生していそう。ただ、じっくり聞いていると繰り返しっぽい感じもあった気がする。
since 2007.8 by K-ichi
2 件のコメント:
メールアドレスが書かれているので、念のため削除しました。コメント内容は控えてあります。
コメントを投稿
.