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



64点FFTのライブラリを元に128点FFTライブラリに改造。

精度は相変わらず8ビットなので、バタフライ演算自体は
まったく変更無し。それ以外の部分で128点として機能
するように変更しただけなので、想像以上に簡単に済んだ
のが幸い。

コイツを呼び出すテストプログラムをサクッと作って、
シミュレータで色々波形を入れてみると、ちゃんと動く
ことが確認できた。シメシメ。

さて、動作速度なんだけど、1回のFFTで62000クロック弱。
16Mhzでは毎秒250回ちょっと出来る計算。これを
8チャンネル並行して動かすとすると毎秒30回程度か…。
それだけでも10m先で弦を弾いている感じになるんだよな…
もっと速く処理したいんだけど、FFTの点数を64とか32とか
少なくする敷かないんだよな。64点でギリギリできるか
どうか、32点では理論上1フレット1フレットを分離する
ことは不可能。

64点や32点で無理やり周波数分解能を細かくするためには、
ADCのサンプリング周波数を下げるっていう手もあるんだけど、
それじゃぁウクレレの音域をカバーできない…
周波数分解能とレスポンスはトレードオフなのだ。

最終的にはスペックと感覚がうまくバランスするところ
に落とし込めるかどうかだな。知恵の絞りどころって
やつだけど、オイラ毛が三本足りないからな。

裏技としては、逆転の発想ってことで「必要とする
周波数分解能の数値自体を高くしちゃう」こと。
具体的にはウクレレの弦の振動を1オクターブとか高く
しちゃう。そうすれば単純に周波数分解能に求められる
スペックが半分(周波数は2倍)でよいはず。

それなら128点FFTでも128点分サンプリングするのに
必要な時間は半分で済む…。問題は弾き心地とかが
全然変わっちゃう…。うーん。

弦の振動はそのままに、ADCで取り込む際の周波数だけ
2倍にするって言う案も一応考えては見たものの、
機械精度的にちょっと厳しいかな…。細かい音まで
拾えなさそう…。

悩ましいねぇ…。まぁ、色々試しながら落としどころ
を探ろう。


http://mainichi.jp/select/jiken/news/20110326k0000e040035000c.html?inb=yt
福島第一原発の件、トラブルは峠を越えたとか言われて
いるんだけど、眉唾だな。毎日綱渡りで現場で命を張って
がんばっている技術者の人達の心労は想像も付かない
レベルだろうと思う。

なんとか悪化させず踏みとどまって、無事に収束させて
くれることを毎日祈るばかり。こっち方面の親類は農業で
出荷できず本当に大変な状態。農家の人達の心労も大変な
もんだろうと…。


http://www.iza.ne.jp/news/newsarticle/event/disaster/498595/
一方、再三の報道にもかかわらず、必要以上に警戒
しすぎて水を買い占めたり食べ物買い占めたりガソリン
買い占めたりしている輩は…基本的なメディアリテラシー
が欠けているように見えちゃう。
   「解らないことだから、恐ろしいんです!」
だって。じゃぁ解るようになればいいジャン。自ら
パニックを助長してどうするのよ?お勉強よ、お勉強。
何事も。

この記事にあるように、長期的に摂取する場合に支障が
あるってレベルが数値化されているだけで、短期間に
摂取しても問題ないよ。
それでもイヤな人は、今後二度と旅客機乗ったりラドン
温泉入ったり、病気や怪我してもレントゲン撮ったり
しないでよ。水や牛乳、野菜以上に被爆するんだから。

もしくは、飛行機の搭乗口やラドン温泉の入り口にも
被爆量を書いておくとか…


http://headlines.yahoo.co.jp/hl?a=20110326-00000830-yom-bus_all
住金の製鉄所の火力発電を再稼動して東電に電力を売って
くれるとのこと。
まずはこういうのはありがたいな、と思いつつ、長期的
根本的な対策にはならないんだよな。
CO2排出の話もあり、エネルギー資源に乏しい日本という
こともあり…


で、ふと思い出した。地熱発電。日本では発電量に占める
量は極めて少ないって聞いてたんだけど、発電効率が悪いの?
って思って調べてみた。

http://map.yahoo.co.jp/pl?type=scroll&lat=33.10610221627475&lon=131.18640980154495&z=16&mode=map&pointer=on&datum=wgs&fa=ks&home=on&hlat=33.189120135024&hlon=131.21816715628&layout=&ei=utf-8&p=

以前九州に旅行に行って、クルマであちこちドライブ
&温泉ってめぐってたときに、由布院から阿蘇山に向かう
ルートでこの八丁原地熱発電所に立ち寄ったんだけど、
そういえば想像よりコンパクトな施設だったなぁ…と。

当時、地熱発電って発電力があまり得られない割りに、
大規模の発電をするにはコストがかかりすぎるから
なのかな?って思っていたんだけど、どうやらそれは
間違えだったみたい。
改めて1基あたりの発電力を調べてみると…
http://www.lohasclub.org/1000/1300/1306.html

八丁原には2基の地熱発電機が稼動してて、それぞれ
55メガワットずつ、2基合計で110メガワットも
あるわけだ!へぇ。たった2基で!
しかも1基あたりの発電量は原発と大差無いジャン。

ってことで、個人的には「今こそ地熱発電推進の声を
あげる時なんじゃね?」って短絡的に思っちゃうわけ
なんだけど、当然課題は色々あるらしい。得てして
地熱が得られるところといえば温泉とかある地域な
わけで…

・国定公園など観光地内にデカい発電所作ると景観を損ねる
・周辺の温泉施設への影響が懸念される(温度や湯量、泉質など)
・火山などの災害時に稼動に影響出ないか
などなど。あとコストもか?

で、その辺はアイルランドに学べば良いんじゃない?と。
数十億年の惑星造成活動が地震の元凶なら、地熱発電は
惑星造成活動からの恵みととらえて。

今回に懲りて原発より地熱発電を!という声が高まる
だろうから、それを味方に推進していけるんじゃないかな。

なにより、イザ故障や機能不全に陥ったとしても、原発
と違って冷やす必要も無いし、危険なものが漏れ出す
恐れも無いでしょう。
なにより化石化燃料もウランも輸入する必要が無い。
建設コスト・ランタイムコストだけ。

日本ならではの知恵を絞って、なんとか地熱発電の推進
がなされるといいんだけどな。


一方。
http://headlines.yahoo.co.jp/hl?a=20110326-00000106-yom-bus_all
電気料金の見直しとの話。どうなのよ、これ。
まずは東電の経営陣にちゃんと責任を負ってもらうのが
先じゃね?

http://headlines.yahoo.co.jp/hl?a=20110326-00000070-mai-soci
先日、地震の一報を見て早速この地域の過去の巨大地震を
調べてみたら、wikipediaにも「貞観地震」のことが
載ってた。オイラが貞観地震について知ったのはこれが
きっかけだったけど、歴史上周期的に起こっているこの
規模の地震はこれまでに東電に警告されてきたとのこと。
それを黙殺したということだから、明らかな人災。
想定外じゃなくて想定内じゃん。

電気料金の話は、その責任問題の後の話じゃないの?
って思うんだけど。


まぁ、直近ではそれほど打てる手はないんだろうけど、
中長期的には地熱発電に向けて推進していくといいなぁ。
そのためにコストがかかるって言うことなら、それを
電気料金に上乗せすれば良いんじゃないの?

消費者としては、電気料金が安いからといって安易に
原子力を選び続けるのか、少し高くなっても地熱発電を
選ぶのか選択を迫られることになるんだろうな。
そういう選択肢を突きつけられれば答えは自ずと決まって
くる気がする…。

なにしろ、大事故がひとたび発生してしまえば、電気料金
なんて気にしてられないレベルの「コスト」を払わされる
羽目になるんだから。




コメント ( 0 )




色々考えた結果、64点FFTアセンブラライブラリの中身が
生々しく頭に残っているうちに、こいつを元に128点FFT
を作っておくことに。

2000sps程度では64点FFTでも64サンプル分取り込むのに
結構な時間が要るからそもそも点数を多くしたくない
ところなんだけど、もし周波数分解能が64点で足りな
かったらすぐに128点FFTに変更できるようにと。
まぁ、64点FFTをゼロから作った時よりは労力的に
楽だし、作っておけば何かのときに役に立つよ、きっと。


まずは例によって表計算ソフトで128点FFTを組んでみる。
もちろん64点の焼き直し。
サクッと行くと思ったらちょっぴり躓く。ごくわずか
計算が変。どこだどこだ?と眺めるにしても、結構な
セル数なのでデバッグが大変。慎重に計算式を眺めて
いって、なんとか間違えを発見。コピペした一部の内容
が悪さしてたみたい。

とりあえず表計算ソフト上で自動計算とグラフの自動
表示が出来るようになったので、ライブラリソースを
128点化してみる。

定数テーブルは99basic用のスクリプトを残してあった
のでサクッと128点用に直して済ます。

あとはライブラリ本体のロジック内容。こっちが
ちゃんと動けばちょっと広がるな。




コメント ( 0 )