「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



Chuckさんから色々情報頂いて、やっぱコンプレッサ
はハード側でやった方がいいのかな?と思って
改めて色々調べなおしたりしてみる。

何しろ、弦を弾いた直後(アタック)とその後の
余韻(サステイン)ではレベルが段違いなので、
広いダイナミックレンジをどれだけ拾えるかは
ADC後の演算処理だけでは限界があるわけで…

で、Chuckさんからはエンベロープを拾ってから
ゲインを動的に調整するっていう方向でのお勧め
なんだけど、ディスクリートだと大変そうだし、
専用ICは近所で気軽に手に入れるってことが難し
そうなので(NE570はDigi-Keyには在庫あるみたい)、
とりあえず外部回路でクリッピングするような
情報を物色。

http://mrotqch.web.fc2.com/stomp/dist2.html
こことか参考に、オペアンプのクリッピング回路
を多段階に出来ないか考えてみる。


Vfの異なるシリコンダイオードとLEDを念頭におき、
とりあえず3段階でゲインが変わる仕組みを妄想。

±0.7V、±1.5V付近でぞれぞれゲインが変化する
ような感じで。原理的にはこんなんで動くかなぁ?
結構な部品数だなぁ…

もしくは、こんな回路を妄想。

トランジスタのVbeが対数として現れるのを利用する
対数アンプの帰還部分を逆向きにも付けてみた。
コレクタ-エミッタ間はNP接続が逆向きで電流が
流れないはずなので、こうしたらプラス側はプラス側
のトランジスタだけが、マイナス側はマイナス側だけ
のトランジスタが働いて、うまいこと両側対数として
動かないかなぁ?と。どうだろう?(まるで未確認)


そういえば、この後のことも考えておかないとなぁ。
2現象対応のオシロがあると良いなぁと思っている
ところなんだけど、秋月で買っちゃうか、それとも
手っ取り早い方法を探すか…

http://www.cactussoft.co.jp/SarboScope.html
http://www.vector.co.jp/soft/win95/art/se376225.html
サウンドカードから音声信号を取り込んでオシロ
としてもFFTとしても使えそうなソフト。

それなりのサンプリングタイムに対応しているなら
このあたりを使って、弦を弾いてからの遅延などを
見比べてみたいところ。
サウンドカードだと、直流は見れないだろうけど、
今回は交流だけ見れれば良いからこれでも良いん
だよなぁ。

ただ、電圧のレンジって調整したり出来るのかな?
サウンドカードのゲインとかってどうなってるのか
よくわかってないや。




コメント ( 4 )




今日もまた、コンプレッサをどうにかしてソフト的
に実現できないかをもがき中。

とりあえず10ビットでADCした結果を8ビットに圧縮
掛けるんだけど、原点付近(0V付近)では入力と
出力は1:1に、原点から離れるにしたがって逓減して
行くっていうグラフをでっち上げたところまでいった
訳だけど、プラス側、マイナス側両方についてきれいな
数値になるようにテーブルを(表計算ソフト上で)
作ってみる。↓こんな。


原点付近は入力が1増加するごとに出力も1増加、
そこから徐々に増加の度合いが減っていく感じの
グラフ。(マイナス側はその反対)

10ビットでADC掛けてからこのフィルターを通すと、
原点から遠ざかるにつれて圧縮された出力が得られる
というわけ。
試しに普通に8ビットでADCしたsin波と10ビットで
ADC後に圧縮したグラフを重ねてみると↓こんな。


これは5Vppの波形を入力したイメージ。赤い線が
普通の8ビットADCを想定した波形(つまりsin波)。
青い線が圧縮掛けた場合の波形。

こんな風に原点付近ではゲインが大きく、離れるに
つれてゲインが下がっていくというのが見て取れて
まずまず。当然ちょっと太る方向に歪んでくるん
だけど、そこは想定内。

で、5Vppから減衰していくイメージもグラフに描かせて
みる。まずは1/4の電圧幅にしたら(1.25Vpp程度)↓


こんな感じ。だんだんと出力が大きく出る傾向が
グラフから見えてくる。シメシメ。

さらに1/16の電圧幅にしてみる(0.3125Vpp)。

出力が弱まりすぎて値がよく判らないのでレンジを
切り替えると…

こんな風にコンプレッションを掛けていない時と
比べて2倍以上の出力が読み出せるわけ。シメシメ。

さらに、1/128の電圧幅にしてみる(0.0390625Vpp)。

この電圧は8ビットADCだとsin波としてプラス・
マイナスが数字になって現れる最低限レベル。
それでもコンプレッション掛けてる方のグラフは
ちゃんとsin波と判る波形が得られてシメシメ。


さて、折角の表計算ソフトだし、以前表計算上で動く
128点FFTワークシートも作ってあることだし、FFTに
掛けてどんなんなるか見てみる。
(5Vpp入力を仮定して128点FFTでハミング窓使用)


パッと見、普通にsin波を入力したかの様にすら
見えちゃうくらい倍音成分が無いけれど、実際は
セルの中身を見ると極微量の倍音成分が残っている
のは判る。

まぁ、FFT掛けた後のプログラム処理で見るだけなので、
ピークが判ればそれで充分。sin波に比べ見た感じでも
判る程度に波形がゆがんでいるのに、むしろこんなに
倍音成分が小さかったことの方がびっくりかな。意外。

ちなみに、窓掛けたりFFT計算の結果レンジが狭く
なったりするので、FFT結果がノイズに埋もれない
独立した信号として確認できるのは、5Vから1/128倍
まで減衰するところまで。ダイナミックレンジと
しては42dbといったあたり。(オイラが表計算
ソフトで計算値を眺めてみた上での個人的判断)

欲を出せばもっと小さい信号まで拾えると良いん
だけど、まぁ、金かけず、手間もあまりかけず、
部品も使わない範囲ならとりあえずここまでかな。
その後のことは後で考えよう。

少なくとも8ビットでADCしてそのままFFT掛ける
よりはダイナミックレンジが4倍程度広がって
いる計算だから、悪いほうには転ばないだろう。


Kenkoのenergがフル充電できたので、とりあえず
試してみた。
例によっておいら謹製のポタ赤を使って、フル充電
状態からlow battery表示になるまでの時間を計測。
(同時に、LCD上の残電量表示も監視)

とりあえず2.5時間丁度で電池切れになった。
この間エネループで実験したときには3.5時間
だったことを考えると… なんか短いなぁ。

まだ電池の活性が上がってないのかな?初回
だからな。あと数回充放電したらもうちょっと
伸びるのかな?それとも数値に偽りありなのかな?
容量は100mA/hくらいの違いしかないはずなんだけどな。

もう1回くらい試してみたいところではあるけど、
まぁ、GX100を載せると考えれば出力電圧を絞って
消費電力を下げる手は有るだろうな。9Vから6V程度
まで下げれば消費電力は半分以下になるはず。

電池ばかりに手をとられてる場合じゃないのだ。
次はまた例によって方眼紙でモックを作るのだ。


このOUT RUN、すげぇな!
http://videotopics.yahoo.co.jp/videolist/official/others/paa02200281aeab6d0d708258680fe82f

http://oshiete.goo.ne.jp/qa/768664.html
フライホイールダイオードじゃなくて、フリーホイール
ダイオードが正しいのか…。フライバックダイオードは?



コメント ( 0 )