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



引き続きFFTをアセンブラフルスクラッチの作戦を継続。

二分法による平方根の開平は目処が立ったので、
次は一つの肝:バタフライ演算1個分の計算処理。

ザックリとi/f仕様をあぶりだしつつ、使用リソース
の試算をしてみたら、マクロ化して全処理をメモリ展開
してしまうとすごい量食いそうなので、ここは大人しく
サブルーチン化しておいた方が安全っぽい。

マクロの方が何かと都合が良いんだけど、仕方ないので
サブルーチン化する方向に。


とりあえず負数の扱いとか一切無視して思いつくまま
コードを書いてみると、1回のサブルーチンコールから
リターンまで30~40クロックといったところ。実際は
この後桁数とか精度とか桁あふれとか色々考えながら
調整しないといけないので、40~50クロック程度と考えて
おけばいいかな。

64点FFTだと、6段階の2点DFTに分けて処理することに
なるので、計算では6段×32回×50クロックとすると
1回のFFTがおよそ9600クロックかな。
これにビットリバーサル処理や平方根算出の処理が
追加されると、10000クロック少々といったところ。

単独で使えば毎秒1600回(@16Mhz)といった感じ。
今回のウケシンセとしては、8パートに分けてFFTを
掛ける予定なので、FFTだけに費やせば毎秒200回
程度の頻度で全パート分のFFT計算が出来るはず。よし。

残りのアプリ要件のロジックしだいだけど、FFTよりは
軽い処理になるだろうから、ADC終了からMIDIデータ出力
まで最短では1/200秒程度の遅れにしかならないはず
なんだけど、MIDIの遅延問題はこれだけじゃないから
厄介。遅延というと…

(1)弦をはじいてからADCするまでの遅延時間
(2)ADCしてからFFT掛けるまでの遅延時間
(3)FFT掛けてからMIDIデータ出力までの遅延時間
(4)MIDI音源が信号を受けてから発音するまでの遅延時間
(5)発音してからADSR制御の振幅が最大になるまでの時間

単純にこれらが直列で積みあがったのが遅延時間に
なると思うんだけど、厄介なのは(2)と(5)。
がんばってナントカできるっていうものじゃない部分。

特に(2)は悩ましかったところ。FFTの処理自体をどれだけ
高速化しても、仮に64点FFTなら64個のデータがそろって
からようやく各周波数ごとのエネルギーが安定して出力される
わけで、1サンプル辺りの時間(サンプル周波数の逆数)×点数
の時間が必ず必要になってしまうということ。
プロセッサの処理速度や計算ロジックとは無関係に、
「一定量のサンプリングデータを取り込む時間が必要」
なわけ。

まぁ、実際は半分くらいのデータがサンプリングできた
時点である程度の情報は取り出せているんだけど、
それをどう踏まえてどう料理するか…。

http://ja.wikipedia.org/wiki/%E3%82%AE%E3%82%BF%E3%83%BC%E3%82%B7%E3%83%B3%E3%82%BB%E3%82%B5%E3%82%A4%E3%82%B6%E3%83%BC
FVCを使っているギターシンセでもその辺の問題は多かれ
少なかれあるみたい。まぁ、やるだけやってみよう。



さて、バタフライ演算がおよそ目処付いたところで、
次はバタフライ演算に与えるデータのことを考える。
まずは回転因子(twiddle factor)。こいつはさすがに
sin、cosを馬鹿正直に計算するわけに行かないので、
あらかじめ定数テーブル化。

この手の定数テーブルはPC上でサクッと作るのが
簡単なので、久々に99basicを使ってみることに。
(久しくスクリプト系言語から離れているので、
 perlとかrubyとか候補に挙がらないのが悲しいところ)

BASIC自体は子供のころから染み付いているので、
さすがに殆どhelp見ずにすらすら手が動くんだけど、
いざ実行してみたらおかしな結果に。出力された
ファイルをテキストエディタで開いてみると奇奇怪怪
な文字列に…   うーーーん。

しばらく悩んで思い当たったのは、改行コードの
強制出力処理のところ。

BASICだから、ファイル相手だろうと画面相手だろうと、
print文で出力パラメタ無しにすれば改行してくれる
だろうと思ったらおお間違え。
確かに99basicでも画面出力はそれで改行できるっぽい
んだけど、ファイル相手にパラメタ無しで出力すると
その直前に出力していたものを再出力するみたい。
(例えば、 「print #1」だけみたいな)

仕様?バグ?とりあえず、
       print #1,""
って感じで長さゼロの文字列を吐いておけば改行される
みたい。判るまでにえらい時間かかった…


とりあえず、回転因子の定数テーブルは一通り出来たので、
残るはメインディッシュのFFT計算ロジックのところと
ビットリバーサル処理だけだな。



ちょっと前に入手したままになってたデフレの正体
ようやく読み始める。

まだ読み始めて1/4も進んでないんだけど、これまでに会計、
ミクロ経済、マクロ経済…と通り一辺倒のお勉強をした
だけではよく判らなかったもう少し巨視的な、かつ
データに即した視点が得られたのはなかなか。

少し楽観的な印象がないでもないんだけど、オイラが以前
からおぼろげに思っていたような、生産者人口の減少
(言い換えれば消費人口の減少)っていう視点が出てきて、
なんとなく腑に落ちる部分があっていい感じ。
まぁ、本は「答え」じゃなく「視点」を提供してくれれば
いいのだ。模範解答を求めているわけじゃないのだ。

それにしても、目下半分は興味、半分は狐につままれた
ような感覚。

これを読み終わったら次は超マクロ展望 世界経済の真実
だな。


それにしても、お金持ち高齢者から現役世代への資産
移動を本気でやりたいなら、ある意味簡単なんじゃ
ないかなぁ?
生前贈与の税率を大幅に下げて、一方で遺産相続税を
大幅に上げちゃえばいいんじゃない?時限立法とかで。

と以前考えてみて、そういえばマクロ経済では貯蓄の
総額(国全体での預貯金?)と企業の設備・在庫投資は
一致するという話があったんじゃないかな?
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B9
↑ここか?
そうすると、貯蓄が消費に回った途端に投資にお金が
回らなくなるっていう話になるような…まずくない?

とか、悶々としながら本を読むのが何だかんだ言って
好きです。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




今日は気温急上昇。ヤマトナデシコ七変化…じゃなくて
渚のはいから人魚じゃなくて、木枯らしに抱かれて
じゃなくて、春風の誘惑。

早速気象庁の発表を確かめてみる。

気象庁の発表によると、土曜日が危ないそうです。
いえ、ハートのエースが出てこないそうです。いえ、
微笑が返されたそうです。いえ、悪魔がやさしいそうです。
いえ、その気にさせないそうです。いえ、男の子が年下
だそいうです。
(注:土曜日は危なくありません。念のため)


アルファロメオの純正マフラーっぽい。
http://headlines.yahoo.co.jp/hl?a=20110225-00000050-rps-bus_all.view-000
これをみて真っ先に思い出したのはゼロヨンチャンプ
主人公の家に友達が、ピンポーンってたずねてきて、
いいものと称して「手編みのマフラー」とか「アルミホイル」
とか「イカアシ」とか色々役に立たないもの持ってきて
くれるってやつ。


例の秋葉原マップ。その翌年の街の様子を記したらしい
マップを発見。↓このページの下のほう。
http://nhh.mo-blog.jp/ttt/2007/09/post_6a5d.html
工学社I/Oの懐かしいイラスト入り。

ヤマギワテクニカの2Fだったかなぁ?PCがいっぱい
おいてあって弄れたの。ヤマギワの1FにもPC-8001とか
おいてあった記憶があるんだけど…
だめだ…。だんだん記憶が薄れていく…。
今だとミスドがある辺りに、当時平屋建てのヤマギワのお店
があった気がするんだけどな…そこでミサイルインベーダー
を買ってもらった記憶が。

それにしてもこの間のベーマガ付録地図。よく見直して
みると、奇怪なものが。


この100%オリーブ油製石鹸を作っていそうなおフランス
チックなスポットは一体ナニ?記憶にございません。

それと、国際ラジオの当時の写真も載ってた。

そうそう。こんなだったな。かすかな記憶をたどると、
コーン紙がすっかり破れて骨組みと磁石だけになった
スピーカーとか店頭に山積みされてて、
     「これ、誰が何の為に買ってくの?」
と思ったような記憶が…ちがったかな?
いずれにしても今とはまったく違う様相。
最近では、ここの赤い看板の店にケンコーのエネルグ
が店頭に並んでたな。どうなんだろう?エネルグ…

ちなみに、オイラが一番最初に電子工作キットを買った
のはここ↓

東京科学無線電機。以降しょっちゅうお世話になりました。
うーん。原点。




コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




アセンブラでFFTを振るスクラッチの妄想を現実化
するための一歩。まずは簡単なところってことで
8ビット幅の平方根(16ビットデータから8ビット幅の
平方根を求める)を計算するマクロを組んでみる。

まずは以前作ったexcelシートをそのままアセンブリ言語
に落としていってみる。

とりあえずそれっぽく計算結果が得られたんだけど、
微妙に変なところとかあって、あれこれ微調整を
してみる…。まぁ、120クロック程度で計算できるように
出来たのでヨシヨシ。だいぶご都合主義の怪しいロジック
なんだけど、まぁ正確な数値が出てるみたいだからいいや。


それにしても、excelシートに作りこんだロジックで
不等号を結構いい加減に考えてたことに気づいた。
イコールが含まれるのか含まれないのかの点。

それと、二分法を愚直にロジックに落とすと
0の平方根って普通には出来ない(1以上とそれ以下で
分けて考えないとだめ)なんだけど、正の整数って
限定すれば、初期値の与え方次第で0もそのまま
計算できちゃうっぽいな。

一方、計算途中に使用するレジスタ類が8ビットだから、
どうしても65025(=0xff×0xff)以上の平方根は
うまく計算できないっぽい。ここは定数を見て
特殊ロジック対応にした方が速いな。

アセンブラにしても高級言語にしても、数学の計算式
どおりに行かないのがコンピュータの計算処理。
誤差とか閾値とか常に考えないと駄目なのよね。
あまり得意ではない分野。


まあ、そういうわけで平方根ができたので、次は
FFT本体部分の計算だな。これもマクロ化して
おきたい。




コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




http://autos.yahoo.co.jp/news/detail/newmodel/149044/
現代版のストラトスはこんななのかぁ。

走行シーンも。
http://www.youtube.com/watch?v=xfB1rkFx7qw

かつての、サーキットの狼で夢中になったストラトス
とはずいぶんと違うなぁ。そもそもエンジンがでかすぎ
だなぁ。
そういえば、この間4号をうろうろしていたときに
http://www.ookami-museum.com/car/car010/car010.html
こんな赤のストラトス見かけたな。いや、ストラトス様
をお見かけしたな。いい音かましてた。
新しいからいいってわけじゃぁなさそうだな。


一方、現代によみがえった2000GT。
http://response.jp/article/2011/01/15/150444.html

もちろんオリジナルとは中身が違うけど、これはこれで
惹かれるものがあるな。現代の技術と品質で固めた
2000GTと考えれば、安心して遊べるかも。
値段がネックだな…。

トヨタのFT86。現代版デザインだけじゃなくて、
中身はレガシィ+ボクサーエンジンで外見が2000GT
っていうのを作ってくれたら、超ヒットすると思う
んだけどな。あのパッケージに入るかどうかは
わかんないけど…。


http://headlines.yahoo.co.jp/hl?a=20110222-00000558-reu-int
日本や欧米ではゴルバチョフ人気は健在。おいらも
ゴルピーは好きなのだ。

ロシアで不人気なのは歴史のいたずらっていうか、
「強いソ連」自体が幻だったと考えれば単なる逆恨み
だったんじゃないの?って気がする。
ロシアはまた昔の強かった帝国主義ロシアに戻り
たいってことなんだろうな。今の権力者たちの顔ぶれ
がそれを物語っている気がする。

ゴルピーの時代に北方領土問題が片付いていたら、
日本とロシアの関係ももう少し変わっていたかも
しれない。歴史にたらればは無いけれど。


チュニジアでの抗議行動から始まった民主化の波も、
今のロシアや中国にはまだ受け止める体制にはなってない
だろうしな。上り調子にある経済に大きな不満はきっと
ないだろうし。


それより、
http://headlines.yahoo.co.jp/hl?a=20110223-00000030-maip-soci
ニュージーランドの地震、心配だな。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




ちょっとずつ手を動かしてみる。


arduinoで動かせる赤道儀ドライバ(kenko用)。箱に
穴を空けてはめ込んでみる。うん。いい。

下手に急ぐと「パキッ」とか割れて涙がでちゃう。
だって、男の子だもん。

じっくり、じっくり進めていこう。


いしかわきょーすけさんの日記からsimさん経由でアキバラボ
の記事へ。

http://akiba.kakaku.com/pc/1102/22/194500.php

店内の写真を眺めながら、いいなぁ。便利そうだなぁ…。
と思って1枚1枚眺めていくと、なんと本棚に大量の初ラ!!!
渋い、渋すぎる…

しかも背表紙が分厚いってことはきっと84年まで(?)の
オールドタイプ。ビビビッと電気が走って、ダンボール箱
からサルベージ。


この号に載ってたZ80自作ボードの記事「SR-05」を
大きくなったらいつか作ってやるんだ!と幼心に誓った
のを思い出した。小さかったオイラ、ごめん。
まだ出来てないよ。


こんな風に回路図もエッチング用のパターンも付いてて、
夢が広がったなぁ。

搭載するチップに8255は定番として、SRAMは6116!!!

2KBかぁ。AVRやPICとドッコイドッコイ。時代はようやく
SR-05に追いついた。あ、ROM付いてないんだったな…

さらに箱の中からサルベージされた子供の科学から
こんなページ。

オイラの頭の中。実は未だにここから全然進歩が無いんだけど、
それでもなんとなくナントカなっちゃうのは、この図の
正確さと的確さ…優秀さを物語っているんだろうな。

そしてオイラの聖書、ベーマガ創刊号あたり。

一気読みしたいけどまた今度。

この1月号の付録になってた秋葉原マップをつい眺める。


秋月ってそういえばこっちに有ったんだったっけ。
千石が移ったのはその後だったよな、確か。
ADOパーツショップがまだご健在。
国際ラジオにいたっては、もはや「赤い看板」と
「萌え萌えキュン」の拡声器で上書きされて記憶が
ぼやけてる…そしてコーヒーかどはドトールだ。
なにより、女の人の絵がメイド服着てない。
クルマにステッカー貼ってない。なんだか違う街みたい…。

そして聖地へ。

何もかもみな懐かしい…

極めつけはこれ。

だれがどう見ても宇宙忍者の”ヤツ”だ。


最近泣いてないなぁという御貴兄へぜひ。

うんうん。思う存分タイムスリップしたな。オイラ大満足。



コメント ( 5 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする



« 前ページ