サウンドプログラミン ..
75:デフォルトの名無しさん
07/08/16 13:25:50
>>73
Adaptive Filter のことかな。
入力によって、係数をどんどん更新していくようなタイプのフィルタ。
伝播路推定とか、音源推定に使えたりするんで、
それで、音源分離しようって話かも。
もちろん、入力信号の種類にまったく過程を置かない場合は
2マイクだと2信号までしか分離できないんだけど、
ある程度、信号が独立だとか、基底周波数が違うとかの条件があればいい線いくかも。
76:デフォルトの名無しさん
07/08/16 21:28:08
東京から大阪まで行きたいんだ
↓
新幹線使うといいよ
↓
電車ってのに乗るといいらしいよ
そんな流れ…?
77:デフォルトの名無しさん
07/08/17 14:01:38
目的地は大阪じゃなく月だな
78:デフォルトの名無しさん
07/08/17 14:12:55
まあ、今の所不可能という点じゃ火星に有人飛行くらいじゃないかな
79:デフォルトの名無しさん
07/08/17 16:57:03
遠いお星に行きたいよ
↓
ロケット使えば何とかなるかもよ、でも難しい
↓
ちょっとそこで目をつぶって拝んでろ
80:デフォルトの名無しさん
07/08/17 17:15:15
そして79は星になった
81:デフォルトの名無しさん
07/08/17 18:22:38
2信号ってのは、f1(t) と f2(t) の2信号が
L = L1 * f1(t) + L2 * f2(t)
R = R1 * f1(t) + R2 * f2(t) という関係になって L1..R2が定数(畳み込み)なら分離出来るか
というような問題 って事?
82:デフォルトの名無しさん
07/08/20 22:40:29
フーリエ変換ってものすごく簡単なことなんだろうけど、大學の教科書のわざわざアホみたいに難しい形に書いてる数式見たらやる気なくします(^^)
83:デフォルトの名無しさん
07/08/20 22:42:42
一応、理論自体はそれなりに難しいと思うがな。
84:デフォルトの名無しさん
07/08/20 22:43:38
理論をちゃんと理解できてる人の方が少ないと思う
85:デフォルトの名無しさん
07/08/21 00:22:06
あの難しい形の式も、数学の発展には大きく寄与してるのよ。
音響関係ではというか、工学系ではあんまり役に立たないけど、
理学系、特に数学科とかにいくとあれが必須。
86:デフォルトの名無しさん
07/08/21 00:56:53
直交変換(とその考え方)は工学系全般で役に立ちまくってるがな
87:デフォルトの名無しさん
07/08/21 04:18:24
>>86
ここの先生連中は正規直交基底については博士級の知識がある。
直交基底を用いた変換を理解しないで音プログラムは開発できないからな。
88:デフォルトの名無しさん
07/08/21 05:34:25
博士級(笑)
89:デフォルトの名無しさん
07/08/21 06:56:05
...を理解しないで音プログラムは開発できない?
どんだけ狭い意味での音プログラムなのさ
90:デフォルトの名無しさん
07/08/21 09:17:06
直交(笑)座標変換
91:デフォルトの名無しさん
07/08/21 09:35:10
>>82
ミクシンスキー の演算子法 なんて読んでないなら読むといいかも
92:デフォルトの名無しさん
07/08/21 10:05:26
直交基底の説明ってなんで揃いも揃ってあんなに日本語が不自由なんですか。
国語能力に優れている人間だけが数学に関する書物を書けるようにする法律を作るべきだと思います。
あと、数学に非直観的でわけわからん記号を導入した人間や、人間の名前を法則につけた人間も死刑。
そして、心理学や人間工学の見地から数学記号のデザインを一新するべきですね。
あんなアリの這ったようなギリシャ文字は人類の負の遺産ですよ。
93:デフォルトの名無しさん
07/08/21 10:35:55
必要は発明の母と申しますが
改善点を見つけられた貴方は幸せですね。
直交基底の判り易い日本語説明をすれば、きっと大ヒット間違い無しですよ
そして人間工学に基づいた数学記号のデザインを一新すればきっと神と崇められますよ。
これは発案者の貴方の権利であり義務ですから私たちは見てるだけしか出来ませんが
頑張って下さいね。
94:デフォルトの名無しさん
07/08/21 11:32:28
「オレが理解できないのはあんたの説明が悪いからだ!」と堂々と言うのは最近の風潮だねえ。
その図太さが羨ましくもある今日この頃…
日本語で書かれた理工学書の分け分からん度の高さには同意ですが、
己の意識改善も必要だと思いますよ。
金谷さんの本なんかは結構噛み砕いて書いてあるんで読んでみたらどう?
95:デフォルトの名無しさん
07/08/21 12:12:57
"最近の風潮"ではない。2chは当初からそういう風潮
96:デフォルトの名無しさん
07/08/21 12:20:04
内積・外積とか直交基底とか、ネーミングセンスゼロだな
大昔のオッサンが勝手に決めた不可解な和訳の用語をそのまま現代でも使っていいものか
異議を唱える者は居ないのか
97:デフォルトの名無しさん
07/08/21 12:40:51
>>96 そりゃ皆んなその言葉で考えたり仕事したりしてるからね。
新人は常に少数派だから、受け入れるのが普通。
圧力単位を急にパスカルに変えられても、水柱につい換算してしまうように、変更にはコストが伴うからね。
まあ、あなたが素晴らしい小学生でも高等概念が身に付くような総合入門書を作れば皆んな解決
98:デフォルトの名無しさん
07/08/21 12:57:43
素晴らしい小学生でも
99:デフォルトの名無しさん
07/08/21 13:16:39
クソネーミングをした大昔のオッサンは大罪人だな
後の人間のことを考えない自分勝手な考えでつけた名前のせいでみんなが迷惑している
100:デフォルトの名無しさん
07/08/21 13:30:35
あ、そのみんなってどこにいるの?
101:デフォルトの名無しさん
07/08/21 13:32:44
物理学において、最大の罪人は電流の向きを決めた香具師だと思うんだ。
もし逆にしておいてくれたら電子の流れと同じ向きになってどれだけ理解しやすかったことか。
102:デフォルトの名無しさん
07/08/21 13:55:49
それはそれで頭が固くならなくていいじゃない。
begin 〜 end を嫌う { 〜 } 派じゃあるまいし
103:デフォルトの名無しさん
07/08/21 14:07:08
if (...)
end
...;
begin
って書いてあったら嫌だけどなぁ。
104:デフォルトの名無しさん
07/08/21 14:49:08
ほほう
それはどういうコードかね
105:デフォルトの名無しさん
07/08/21 14:58:41
なんだこのスレ
106:デフォルトの名無しさん
07/08/21 15:31:06
摂氏は当初の様に0度を水の沸点とし、100度を水の凝固点にすべきだ!!!!11!!!!1!!
107:デフォルトの名無しさん
07/08/21 15:38:30
摂氏イラネ
1リットル=1キログラムとか、なんでもかんでも水中心て
108:デフォルトの名無しさん
07/08/21 15:47:55
博士級だかなんだか知らんが、数学や理論一辺倒の人ばっかりで
人の耳で聴く音を扱うソフトウェア書いてなさそう
109:デフォルトの名無しさん
07/08/21 15:53:37
理論のないサウンドプログラミングってどんなん?
アナログ回帰?
110:デフォルトの名無しさん
07/08/21 16:23:09
アナログフィルタも理論バリバリじゃん
111:デフォルトの名無しさん
07/08/21 17:35:36
フーリエってどの学年で習うんでしょう? 高校?大学?
高校で、統計と確率を勉強しなかったのが悔やまれる。
112:デフォルトの名無しさん
07/08/21 18:01:33
今勉強すれば悔やまなくてもよくなるよ
113:デフォルトの名無しさん
07/08/21 18:20:16
高2だけどフーリエ習ったよ
114:デフォルトの名無しさん
07/08/21 18:41:33
理論はもちろん必要だけど、
感覚的なものを扱うのに理論一辺倒じゃろくなもん作れんってことですよ
115:デフォルトの名無しさん
07/08/21 19:18:33
>>114
失礼を承知で申し上げますが、そのまま逆にも同じことが言えます。
感覚的なものだけで音のプログラミングができれば皆さん苦労しません。
スレの主旨もアルゴリズムに関わる議論なはずですよね?
不毛な煽り合いはエネルギーの無駄な気がします。
116:デフォルトの名無しさん
07/08/21 19:33:47
音吉陽一を思い出した
117:デフォルトの名無しさん
07/08/21 20:20:02
なんかずれてるけどまあいいや
118:デフォルトの名無しさん
07/08/21 21:04:52
え?あっ!
俺のカツラずれてるのなんで分かった!?
119:デフォルトの名無しさん
07/08/21 21:31:53
面白くないよ
120:デフォルトの名無しさん
07/08/21 21:38:54
115が不毛といったとこで確信したよ
121:デフォルトの名無しさん
07/08/21 21:43:49
何を?
122:デフォルトの名無しさん
07/08/21 21:52:57
だからズラだよもう
123:デフォルトの名無しさん
07/08/21 21:54:09
あ、なるほどね
124:デフォルトの名無しさん
07/08/23 00:22:33
>>113
今はフーリエって高校で習うのか.....
ということは、内積・外積・直交基底なんかも高校で習てるってことか
ひょっとしてZ変換やマキシマムエントロピーメソッド(MEM)も優秀な工業高校なら教えてるのかな?
なら、ゆとり世代って、超すごないな
125:デフォルトの名無しさん
07/08/23 16:03:42
SoundEngine FreeっていうFreeのWave編集ソフトにある
マスタリングプロセスCV制限ってどういった処理をしてるんでしょう ?
126:デフォルトの名無しさん
07/08/24 19:02:20
スレ違いじゃないか?
実際にどうゆう処理をしてるかは作者に聞かなきゃわからないだろうし。
127:デフォルトの名無しさん
07/08/24 19:07:32
どうでもいいけど、そのCV制限とやらのCVって何?
128:デフォルトの名無しさん
07/08/25 02:03:06
Constant Voltage(定流電圧)のことだろうなぁ
129:デフォルトの名無しさん
07/08/25 10:55:48
"定流電圧" に一致するページは見つかりませんでした。
130:デフォルトの名無しさん
07/08/25 11:11:36
定電圧
定電流
131:デフォルトの名無しさん
07/08/25 11:32:02
conは女性性器の俗称
132:デフォルトの名無しさん
07/08/31 19:36:44
FFTAnalyzerというwaveファイルのスペクトラムを表示してくれるソフトがあるんだけど↓
URLリンク(www2.tky.3web.ne.jp)
残念なのはシェアウェアという点なんだよね。フリーウェアで似たようなスペクトラムを
表示してくれるツールって無いだろうか?
133:デフォルトの名無しさん
07/08/31 21:19:49
ここはいつからツールのスレになったんだ?
134:デフォルトの名無しさん
07/08/31 21:23:00
Audacity
135:デフォルトの名無しさん
07/08/31 21:58:47
>>134
サンクス( ´∀`)
136:( ´∀`)
07/09/01 00:13:16
( ´∀`)ノ
16bitの音用濾波器の係数ってfloat,doubleのどちっがいいの?
みんなはどっちつかてるの?
137:デフォルトの名無しさん
07/09/01 01:29:57
doubleのどちっ
138:デフォルトの名無しさん
07/09/01 07:41:14
FIRでもIIRでもフィルタの係数なら単精度 で十分
IIRの場合は帰還用メモリは倍精度が欲しいのと
ただ、IIRの構成によっては (1-w) のようなのをそのまま持たせないなら wは単精度でも (1-w)は倍精度欲しい
でも wのまま掛け算させたらいいと思うけどな
139:デフォルトの名無しさん
07/09/03 18:08:49
MP3をWAVに変換するデコーダを作ってるのですが、
ID3タグの情報をWAVのチャンクに収めたいと思います。
ID3を入れるチャンク名などは仕様で決まってるのでしょうか?
140:デフォルトの名無しさん
07/09/03 18:44:01
ああ、ここは「音楽」ではなく、ただの「音」のプログラムをするスレでしたか。
スレ違いすみませんでした。
141:デフォルトの名無しさん
07/09/03 19:24:13
>>139-140
URLリンク(www.geocities.co.jp)
142:デフォルトの名無しさん
07/09/03 20:07:29
仮にミュージックプログラミングだとすると、純粋に音芸的な話になったり、
あるいは自動で曲をつくttあrい
143:デフォルトの名無しさん
07/09/03 20:42:44
いやDTM板を教えてやりなよ
144:( ´∀`)
07/09/03 21:02:59
( ´∀`)ノ
>>138 非常感謝
あいやー、おら、doubleでしてたよ
145:デフォルトの名無しさん
07/09/03 21:50:15
別に全部doubleでも全然問題ないよ
146:( ´∀`)
07/09/03 22:27:50
( ´∀`)ノ
>>145
floatに比べでぶでのろまにならないの?
147:デフォルトの名無しさん
07/09/03 22:40:33
実測すれば済む事。
些細な事だ。
148:デフォルトの名無しさん
07/09/03 23:38:01
むしろVCなんかだと
floatを勝手にDoubleに最適化しやがったりするしな
149:デフォルトの名無しさん
07/09/04 01:59:06
CPU的にdoubleの方が速けりゃその方がいいだろ
150:デフォルトの名無しさん
07/09/04 06:39:59
やってみればわかる事。 きっとメモリが少ない方が勝つよ
151:デフォルトの名無しさん
07/09/04 10:42:55
intel系CPUなら浮動小数点命令は確か80bitだし、
メモリへのアクセスもキャッシュ効くから、フィルタの係数程度なら目に見えての差は出ないと思われ。
152:デフォルトの名無しさん
07/09/04 12:45:17
だったらdoubleでいいや
実測しても全然かわらんかったというか
コンパイラがdoubleにしやがるし
153:デフォルトの名無しさん
07/09/04 15:42:41
処がだ、SSE命令における浮動小数点ニモニックは64/32ビットしかないんだな。
でもって、超越関数を使わない限り基本的にはFPUなんて要らないから最近のコンパイラは
80ビットニモニックは殆ど使わなくなっていたりするわけで。
勿論、ベクタ化を期待するようなパフォーマンスを目的とするなら、2並列より4並列の方がずっと
速いからfloatで済むならそれに越したことはないし。
# ということで、簡単なサンプルで速い遅いと言っても無駄。
154:デフォルトの名無しさん
07/09/04 16:16:38
いや、そう主張するならそれでもいいけど
精度はやっぱり下がるしさ
SSEの4並列を使うのは、コンパイラの最適化程度では期待できないでしょ
というわけで、自分でアセンブリ書かない人はdoubleでいいお
自分でアセンブリ書いて完璧にSSEで最適化できて精度いらん人はfloatでいいじゃん
155:デフォルトの名無しさん
07/09/04 16:35:36
>>154
iccでもgccでも最適化でベクタ化できるけど?
156:デフォルトの名無しさん
07/09/04 17:07:26
>>155
ちゃんとコード全体をうまく並び替えてコンパイラが4列使い切っているかってことだろ
で、結局、人間がちゃんと4列使い切るような書き方をしてやらんと効率悪いってことだろ
157:デフォルトの名無しさん
07/09/04 17:08:36
まあ、普通はdoubleで何も問題ない
floatでも特に問題はない
で、精度が高いのはdouble
158:デフォルトの名無しさん
07/09/04 17:08:44
>>154
基本的に精度が何ビット必要かという視点の方が大事だと思うよ
16bit入力のFIRフィルタなら doubleはあきらかに無駄でしょ
159:デフォルトの名無しさん
07/09/04 17:12:58
>>158
んなことねーよ
作業中の演算精度が高くて少なくとも時間以外の損は無い
160:デフォルトの名無しさん
07/09/04 17:14:44
まあ、0から255までの結果しかいらないやつで
わざわざintを使わず演算するやつもいないしな
161:デフォルトの名無しさん
07/09/04 17:15:24
結論
・それぞれ好きにやれ
162:デフォルトの名無しさん
07/09/04 17:54:50
>>159
メモリサイズも当然違ってくるだろ。
あと、パソコン以外の環境にも移動させ易いのは大きなメリットだよ
163:デフォルトの名無しさん
07/09/04 17:57:37
逆に言えば、PC環境では全く問題ないってことだろそれ
164:デフォルトの名無しさん
07/09/04 17:59:30
もう、>>161が結論でいいよもう
165:デフォルトの名無しさん
07/09/04 18:34:04
確かに
FADD命令 レイテンシ3、スループット1/サイクル
FMUL命令 レイテンシ5、スループット1/2サイクル1,2
FDIV命令 レイテンシ-単精度17サイクル、倍精度36サイクル、拡張精度56サイクル
割算以外では単精度にしても早くならないね。
166:デフォルトの名無しさん
07/09/05 08:01:46
>153
お前の使ってるコンパイラが世の全てだと思ってるなら大間違い。
>157,>161でFAだな。
167:デフォルトの名無しさん
07/09/05 08:32:08
>>165
今がそうだとしても、過去そうでなかったし、
将来 単精度ならレイテンシが短くなるかもしれないし、
使ってるコンパイラが将来SSE命令をサポートするかもしれない。
何でも倍精度は楽かもしれないが、不必要に使うのはどうかと思う。
IIRならともかく、16bit入力16bit出力のFIRで倍精度にするメリットはまったくないのだから
168:デフォルトの名無しさん
07/09/05 10:08:36
>>167
将来doubleならレイテンシが短くなるかもしれない可能性もあるし、
将来も入出力が整数型16bitであり続ける保証も無いんだが?
今現在だって入出力形式でfloatはありうる。
未来の仮定の話をしたいのか、現状の話をしたいのかターゲットくらい絞れ。
169:デフォルトの名無しさん
07/09/05 10:48:55
単精度だ倍精度だと騒げるのが羨ましいよ。ホント贅沢な悩みだと思うよ
MP3あたりだと16ビット、高級なもので24bit DSPの世界はまだそんなもの
170:デフォルトの名無しさん
07/09/05 11:05:00
FA
>>161
171:デフォルトの名無しさん
07/09/06 14:40:54
なんかよう分からんけど、これ関係してる?
URLリンク(www.pro.or.jp)
172:デフォルトの名無しさん
07/09/06 15:59:25
>>171
>ほとんどのCでは、float型よりdouble型で計算した方が数倍高速になります
といいながら 基準にしてるのは SPARCだけ
SPARCは倍精度どころか128bit幅の浮動小数点演算器を持っているわけで
それを基準にするというのもどうかと思うよ。
ゲーム機や組込用のCPUのコンパイラの殆どは当然のように単精度が早い。
173:デフォルトの名無しさん
07/09/06 19:56:17
>ゲーム機や組込用のCPUのコンパイラの殆どは当然のように単精度が早い。
そもそも浮動小数点演算装置がなかったり(全部ソフト)倍精度はソフトとかそんなのばっかりだからね
倍精度がハードウェア実装されている今時のCPUだとメモリアクセスが律速になることはあるかもしれないけど
double,floatどちらもそれほど速度に違いはでないよ。(int,double,floatの間を行ったり来たりするような型変換する方が単純な演算より遅いし)
結論としちゃ、自分が使いたいターゲットで使い易い型を使うってことでいいんじゃないの?
174:デフォルトの名無しさん
07/09/06 20:54:08
それでも IIRフィルタの遅延器は単精度では厳しいからなあ
計算方法を工夫すればある程度カバー出来るけど
175:( ´∀`)
07/09/06 21:05:28
( ´∀`)ノ
先生!
IIRフィルタの遅延器って、なんで高い精度必要なんですか?
精度低いとどうなるのですか?
176:デフォルトの名無しさん
07/09/06 21:08:27
無限インパルス応答だから
177:デフォルトの名無しさん
07/09/06 23:58:36
フィードバック=計算誤差が累積
でもま普通は(要求がシビアでなけりゃ)単精度でも十分じゃない?
178:デフォルトの名無しさん
07/09/07 00:09:54
なんでもいいよ
場合によっては固定小数点数でも可
179:デフォルトの名無しさん
07/09/07 07:26:55
>>175
たとえばf0の低い 1次のLPF
y := y*(1-r) +x*r; とやると、rが小さいので(1-r)の精度が悪くなる
y := y +(x-y)*r; とやればソレは解決する。
1次の場合は、yが単精度でも単に誤差が累積するだけだけど
2次になると、yが単精度だとf0が低かったりQが高いとノイズが出てくる。
それも ピーとかいう類のノイズ
180:デフォルトの名無しさん
07/09/07 16:35:54
>171
この人こんな記事書いてたのか、ターゲット絞れないバカの典型だな。
用途や環境にあわせられない奴は最適化語るなよ・・・
181:最早厭われてはいるが
07/09/07 22:19:07
>>180
あの本を書いた時点で既に、自称翁だ。バカだなんてとんでもない。年寄りは労われ。
182:デフォルトの名無しさん
07/09/08 03:05:32
多少配慮足らずでも、誰かの参考にはなる記事をネット上で公開してるんだし
それをバカの典型と言い切れるやつよりは敬われる権利あるよ。
183:デフォルトの名無しさん
07/09/08 06:29:03
90年台に「floatよりdoubleの方が速い」とか嘘かかれても、参考にならないと思いまーすw
ましてや「敬われる」とかありえませーんwww
184:デフォルトの名無しさん
07/09/08 06:41:17
floatよりdoubleの方が速いって言うのは、昔のプロセッサはfloatを内部で動的にdoubleに変換してたからだろ。
今はそういうのが無いからどう考えてもfloatの方が速いし、データが短い分キャッシュにも残りやすいから最適化も効き易い。
185:デフォルトの名無しさん
07/09/08 07:25:16
どうでもいい。結局処理系による。
つか180の食いつきかた見ry
186:デフォルトの名無しさん
07/09/08 07:33:02
うちのMacBook Pro (CoreDuo 2.0GHz) で試してみたけど、
floatよりdoubleのほうが速いぉ。
187:デフォルトの名無しさん
07/09/08 07:34:34
Mac(笑)
188:デフォルトの名無しさん
07/09/08 07:41:17
>>184
専用機はしらないけど、96年当時主流だったインテルもモトローラも内部80bitだよ。
内部で動的にdoubleに変換してる石って何?
189:デフォルトの名無しさん
07/09/08 07:42:30
>>179 2次でノイズが出るのは リミットサイクルって現象だろ?
なんかリミットサイクルの出ないフィルタとか論文があるけど、理解出来ないんだよな
190:デフォルトの名無しさん
07/09/08 08:09:02
>>188
内部80bitの場合も、floatよりdoubleの方がしばしば速い。
で、翁が想定しているのはSparcとx86だろ。
191:デフォルトの名無しさん
07/09/08 10:37:39
処理速度が問題になるほどのタップ数の多い FIRフィルタならキャッシュに収まるかどうかの方が
速度を決めてしまうと思うけどな 命令サイクルがギガに対してメモリは1桁下なんだから
192:( ´∀`)
07/09/08 13:21:01
( ´∀`)ノ
>>175-179 先生、有難うございました。
無限インパルス応答だからの回答に超感動しました。
精度が低いと、無限の過去の影響を細かく現代に反映できない。反映できないものは誤差として累積され、
現代を惑わす魍魎を生み出すことになる。怖いですね。
193:デフォルトの名無しさん
07/09/08 14:48:57
double が速いのはC言語の math.h が double に対してしか定義されていなかったり、
自動昇格が多数発生するためでしょ
x87 の FPU は内部で 80bit に昇格するのがデフォだけど、それにしたって内部精度は命令を
発行して設定できるわけで、慎重に書かれたソースなら当時から float の方が速かったよ
194:デフォルトの名無しさん
07/09/08 15:11:02
今ならc99のお蔭でhypotf()なんかが使えるからねぇ。
195:デフォルトの名無しさん
07/09/08 15:30:39
今がどうだとか昔はどうだとかこのCPUではとかいつまでやってんだ?馬鹿馬鹿しい
196:デフォルトの名無しさん
07/09/08 17:58:56
>>161
197:デフォルトの名無しさん
07/09/08 18:14:47
>>195 じゃネタだしてよ。 >>189の話を膨らませるとかさ
198:デフォルトの名無しさん
07/09/08 18:21:01
>>197
じゃあ>>189の話を膨らませろ馬鹿
199:デフォルトの名無しさん
07/09/08 20:23:28
ようし、じゃグーグルさん使ってふくらませるぞ。
リミットサイクル+フィルタ でポチっとな
URLリンク(www38.tok2.com)
> IIRなんかでフィルタ等の信号処理をすると384kFsだと係数 語調は32ビットでは
>低域でリミットサイクルによる発振現象の影響が出てきますので不足で48ビットもしくは64ビット必要になりますな。
なるほどな。
お!これだ
URLリンク(www.mk.ecei.tohoku.ac.jp)
>リミットサイクルのない 感度最小形ディジタルフィルタの合成
えと? 状態空間ディジタルフィルタ? って何? もいちどグーグルさんお願い。ポチっとな
カルマンフィルタ? いや応用カルマンフィルタ って本は持ってるんだが・・・・こりゃ退散だ
200:( ´∀`)
07/09/12 21:38:18
( ´∀`)ノ 、先生
WindowsメッセージMM_WIM_DATA(録音バッファの録音完了)を受けての処理手順について何ですけど
下記の1,2のどちらが正しいですか?
1.waveInUnprepareHeader,waveInPrepareHeaderを用いる
// 録音バッファの登録解除
waveInUnprepareHeader
録音データ、lpDataを処理する
// 録音バッファの再登録
waveInPrepareHeader
waveInAddBuffer
2.waveInUnprepareHeader,waveInPrepareHeaderを用いない
録音データ、lpDataを処理する
// 録音バッファの再登録
waveInAddBuffer
201:デフォルトの名無しさん
07/09/13 07:32:05
>>200 さあ? どっちが正しいかはしらないけど 2でやってて不具合にあたった事はないな
202:( ´∀`)
07/09/16 12:46:06
( ´∀`)ノ
>>201、先生、ども、ども、有難うございました。そっそうなんですか...
なんか、waveInもwaveOut処理同様に>>200の1.のようにするのが正しいのかなと思たですけど
203:デフォルトの名無しさん
07/09/16 13:16:46
URLリンク(up2.viploader.net)
204:デフォルトの名無しさん
07/09/16 13:42:54
>>203
毎年見れば無問題
205:デフォルトの名無しさん
07/09/16 13:50:12
それなんて3年峠?
206:デフォルトの名無しさん
07/09/16 14:35:02
どうして周波数が低いと大きな音を出すのに、高周波と比べて指数的に高いエネルギーが必要なの?
蝸牛が低音を捕らえようとするとどうしても指数的に音量が小さくなってしまうからなの?
だったら低音は凄く耳に悪いね。難聴の原因だ。
207:デフォルトの名無しさん
07/09/16 15:58:19
動かす媒質の量
208:デフォルトの名無しさん
07/09/16 16:34:37
同じエネルギーを出すのに低いほどストロークが必要という事じゃないて
同じエネルギーを与えても、小さく感じるという事ならその通り
URLリンク(www.yacmo.co.jp)
209:デフォルトの名無しさん
07/09/17 00:58:06
100人飛べる大縄跳びで二重飛びしようとするとものすごく大変なのと一緒・・・ではないな
210:デフォルトの名無しさん
07/09/17 01:52:12
>>207
マジレスありがとう。
1Hzで動く量と100Hzで動く量が違うのは当たり前ですね。
211:デフォルトの名無しさん
07/09/18 06:37:18
>206
真面目に低音は耳に悪いので注意。
スピーカー飛ばす原因も低音の出力が高すぎるってのが多いし。
212:デフォルトの名無しさん
07/09/18 07:12:34
スピーカーが飛ぶのは2つの現象
電力は 電流*電圧だけど、ボイスコイルは、コイルと名前が付くようにL成分を持ってるから
同じ電圧振幅でも電流は低周波程流れてしまう。 発熱は電流の2乗に比例するので、低音程 焼損し易い
また、コントロールして同じV*Aを与えたとしても、ボイスコイルには質量があるから
同じV*Aを与えても振幅は低周波程大きくなる。 結果、大振幅で可動域を外れ物理的に変形してしまう。
213:デフォルトの名無しさん
07/10/05 21:15:13
waveOutOpenの引数にコールバックを指定した場合、waveOutProcはスレッドセーフっぽくないんですが。
なんか現在のスレッドの処理に割り込んで呼び出されませんか?
WM_DONEで再びWaveOutWriteしようとするとかなりの割合でスタックが破壊されています。
214:デフォルトの名無しさん
07/10/06 10:20:53
手順が間違ってる
215:デフォルトの名無しさん
07/10/06 13:40:55
>>213
そういうもんだよ。
waveOutProcはスレッドセーフじゃないと、しっかり覚えておくといいんじゃない。
216:デフォルトの名無しさん
07/10/07 01:54:40
どこにもスレッドに関わることが書かれてなかったような気がするんですが、スレッドセーフではないんですね
サウンド関連の生APIはむずかしいです
217:デフォルトの名無しさん
07/10/07 05:24:12
でもそんなの関係ねぇ
218:デフォルトの名無しさん
07/10/07 14:00:21
>>216
サウンド関連の生APIはむずかしいです
じゃなく
APIでプログラム作るのはとてもむずかしいです
が正しい。
219:デフォルトの名無しさん
07/10/08 20:27:23
極めてどうでもいい揚げ足取りだな
220:デフォルトの名無しさん
07/10/08 22:02:30
>>212
ブラウン管モニタを壊すにはデバイスドライバレベルでの制御が必要だけど
ひょっとすると、スピーカーはユーザープログラムで壊せてしまう可能性がある?
超低周波を出すとか、DCオフセットをかけ続けるとか。
221:デフォルトの名無しさん
07/10/08 22:09:13
ドライバレベルで保護してないかな。してなきゃまずいね。
222:デフォルトの名無しさん
07/10/08 22:26:59
ユーザープログラムも何も
曲作ってるときうっかり変な音を鳴らしてスピーカ飛ばすって時々あるもんじゃないの?
223:デフォルトの名無しさん
07/10/08 22:51:08
ない
224:デフォルトの名無しさん
07/10/08 23:03:21
俺もそんなに詳しいわけじゃないが、もちっとだけアナログの勉強をしてもいいと思うんだ。
スピーカーが飛ぶのは>212にあるようにスピーカーが想定以上の入力を受けた時。
なので出力波形だけでなく、アンプのパワーやボリュームによる所が大きい。
225:デフォルトの名無しさん
07/10/08 23:16:44
>>220
直流を通すオーディオアンプなんてほとんど存在しないだろ。
アンプにデジタルで直結したとしても、
普通はスピーカ出力の直前にコンデンサが入ってたりしてHPF特性がかかるから、
スピーカに超低周波や直流がかかることはない。
226:デフォルトの名無しさん
07/10/08 23:22:58
ああ、でも、直流そのものは通さないとしても、
ステップ関数とかガンと入れられたら階段部分はスピーカ的に結構きついかもな。
227:デフォルトの名無しさん
07/10/09 20:02:28
ステップ関数は階段部分ではなく、その後のフラットな部分がキツイわけで
228:デフォルトの名無しさん
07/10/09 20:33:14
フラットな部分はHPFで除去されるんじゃね?
229:デフォルトの名無しさん
07/10/09 22:05:52
インパルス連続攻撃で敵を倒せないですか?
230:デフォルトの名無しさん
07/10/09 22:10:36
URLリンク(premiumtv.12gbfree.com)
231:デフォルトの名無しさん
07/10/09 22:11:43
URLリンク(proforceone.web.fc2.com) ⇒ Processed input data
Chick+Corea[777]
Herbie+Hancock[999]
URLリンク(proforceone.web.fc2.com) ⇒ Calculation processing
d=$.split("\n");for(j=0;d.length>j;j++){s=d[j].substring(0,l=d[j].indexOf("["));
s=encodeURIComponent(s).split("%2B").join("+");
n=d[j].substring(l+1,d[j].indexOf("]")).split(".");
n=eval(n[0].split(",").join(""));n=(n-n%20)/20+(n%20>0);br();
for(i=0;n>i;i++){write("http"+"://youtube.com/results?search_query=");
write(s+"&search_sort=video_date_uploaded&page="+(i+1));br();}}br();
232:デフォルトの名無しさん
07/10/09 22:12:53
>>227-228
カットオフ周波数10Hzの1次HPFの場合、
ステップ関数のフラット部分は時定数0.016秒であっという間に指数減衰するね
233:デフォルトの名無しさん
07/10/09 22:13:06
デジタルピークメーターテスト用 −12db標準音量サンプル
URLリンク(www.barks.jp)
URLリンク(www.barks.jp)
URLリンク(www.barks.jp)
フリーソフトの音量確認用 ステレオ・デジタル・メーターを使おう
赤い●をクリックする 次にスピーカーマークをクリックする
標準のは−12dbぐらいで、−6dbを超えない様に音量調節する。
URLリンク(www.forest.impress.co.jp)
234:デフォルトの名無しさん
07/10/09 23:52:44
ageんなカス
235:デフォルトの名無しさん
07/10/30 09:04:46
あのー、非常に初歩的なことなんですが、
このページでバッファは441000bytesといいつつ441000*2bytes
確保しているのはなぜなんでしょう?
URLリンク(homepage3.nifty.com)
ただのミスだと思い、ループのところを
for ( i = 0; i < BUFSIZE/2; i ++ ) {
t = ( total / (BUFSIZE/2) ) * i;
と変えてみると、出力周波数が880Hzになってしまいますし。
236:デフォルトの名無しさん
07/10/30 10:57:38
ただのミスだと思うよ。 でもあなたの修正が間違っている
237:デフォルトの名無しさん
07/10/30 11:29:54
>>235
量子化ビット数が16だから3528000[bits]なら441000[bytes]だけれど、こう計算した方がわかりやすい。
44100[Hz] * 5[sec] = 220500[samples]
だから、#define BUFSIZE 220500 とすればいい。
238:デフォルトの名無しさん
07/11/01 04:02:20
リアルタイムのスペアナ表示を作りたい。
FFTしてlog(re*re+im*im)的なことをして振幅を対数軸にするのはok。
問題は、周波数軸を対数にしたいのだが、どうするべき?
低い方は補完なので適当にごまかすとして、高い方は間引いてしまうと情報が失われるのが
いやなので避けたい。
好みとしては、ピンクノイズ(-3dB/oct)を入力したときに表示がフラットになりたい
のだが(きっと聴感に近いので)
絶対値の和? 平均?
239:デフォルトの名無しさん
07/11/01 04:42:24
普通、Octave band pass filter bank をかけるかな。
240:デフォルトの名無しさん
07/11/01 06:44:19
>238
ロスしないってんなら最大使うとか。
241:デフォルトの名無しさん
07/11/01 07:50:06
>>238
前半、俺は、
たとえば5点あったら、その最大と最小と5個平均の3つを求めて
最大から最小への薄い垂直線を引いておいて
その上から平均を結んた線を引いてる。
こうやるとホワイトノイズでフラットになる。
ピンクノイズでフラットにするのは気持ち悪いように思うけど、
実現したいなら-3dB/Octの補正をかければいいのでは?
242:デフォルトの名無しさん
07/11/01 09:49:01
>>238
用途によると思うよ。
ピーク検出したいなら、ピクセルに対応するバンド内で最大値かな。
逆に荒く(1/6octとか1/3とか)で全体的な特性を見たいなら、両対数にしてからバンド内で
平均とか。ただその場合、各バンド内でデータのある周波数点に偏りが出る(バンド内で高域に
集まる)んで、平均した場合は必ずしもバンド中央の周波数での値にならないことに注意。
>>241
Windows Media Playerのバー表示がそんな仕様じゃなかったけか
243:デフォルトの名無しさん
07/11/01 13:47:13
>Octave band pass filter bank
なるほど、FFT以外のやりかたもあるのね。検討してみます。
ピンクノイズは各オクターブ(とかの対数で等間隔の帯域)のエネルギーの密度が等しいと
何かで読んだので、正しく計算すれば自ずとフラットになるのではないかと思ったのです。
でもどう計算するとそうなるのかわからない。
logとる前の絶対値かその2乗を足すか平均するかしたあと√とる?
244:デフォルトの名無しさん
07/11/01 14:07:08
> ピンクノイズは各オクターブ(とかの対数で等間隔の帯域)のエネルギーの密度が等しいと
> 何かで読んだので、正しく計算すれば自ずとフラットになるのではないかと思ったのです。
その考えで問題ないと思います。
こっちで実験したところ、ホワイトノイズのFFT値を1/3octで絶対値合計→フラット
> logとる前の絶対値かその2乗を足すか平均するかしたあと√とる?
バンド毎に log(sum(sqrt(re*re+im*im))) で大丈夫なはず。
DCTなら log(sum(abs(re)))
245:デフォルトの名無しさん
07/11/01 21:02:04
>こっちで実験したところ、ホワイトノイズのFFT値を1/3octで絶対値合計→フラット
ピンクノイズの、だよね。
ありがとう〜
246:デフォルトの名無しさん
07/11/01 21:46:59
>>245
> ピンクノイズの、だよね。
いや、ホワイトノイズ
247:デフォルトの名無しさん
07/11/01 21:52:15
説明不足だったかも。すまん
フラットの意味によるんだけど、両対数軸上で直線って
意味なら>>245でホワイトでもピンクでもフラット。
直線かつ水平って意味なら>>245ではホワイトのみフラット。
248:デフォルトの名無しさん
07/11/01 23:22:35
直線かつ水平のつもりでした。>フラット
あいまいな言葉を使ってごめんね。
> 直線かつ水平って意味なら>>245ではホワイトのみフラット。
高域にいくにしたがって加算する数が増えるからホワイトノイズは右上がりに
なりませんか?
249:デフォルトの名無しさん
07/11/02 01:10:35
↑からさらに自分で考えてみた。
>>244 log(sum(sqrt(re*re+im*im)))
の方式で仮に1バンド=1octで出力することを考える。
1個上のバンドに行くに従って加算するデータ数が2倍になっていくわけだから、
結果は+6dB/octの右上がりになるはず。
問題は、ホワイトノイズを入れると+3dB/octの右上がりになってほしい。
sqrtとsumの順番を入れ替えると(sqrtを消して20→10でも等価)、
数が2倍になると3dB上がるので+3dB/octになる。
つまり、20*log10(sqrt(sum(re*re+im*im)))
最初に書いた、絶対値の2乗で足して平方根をとる、でいいみたい。
ピンクノイズの各バンドの平均値は1バンド上がると-3dBずつ下がっていくはず
つまり1/√2に減っていくはずで、これの2乗の次元(1/2ずつ減ってく)で
数が2倍になっていくものを合計していくと皆同じになるという理屈。
ちなみに、素直に(?)、ホワイトで水平、ピンクで右下がりにするには、
sumのところを平均にすればいいはず。
(1バンド上がるごとに2倍になる個数で割ったやつをsqrtするので、1バンド上がると
1/√2つまり-3dBさがっていく)
root mean squareってやつですね。
あ〜すっきりした。
250:デフォルトの名無しさん
07/11/02 02:46:03
>>249
> 1個上のバンドに行くに従って加算するデータ数が2倍になっていくわけだから、
> 結果は+6dB/octの右上がりになるはず。
データ数が増えてもデータ値は高域に従って指数的に減っていくので、
よほど高域強調されてない限り合計しても右上がりにはなりません。
251:デフォルトの名無しさん
07/11/02 09:22:34
>>249
> sqrtとsumの順番を入れ替えると
平方根の合計と合計の平方根は別のものなので入れ替えられません。
平方根の合計 sqrt(1)+sqrt(2) = 1 + 2 = 3
合計の平方根 sqrt(1 + 2) = sqrt(3) = 1.732...
素直に 20log10(sum(sqrt(re*re+im*im))) で各バンド計算して
+3dB/oct補正掛けた方が実装の見通しも良くなるような。
252:デフォルトの名無しさん
07/11/02 09:47:43
まちがえた、20log10(ave(sqrt(re*re+im*im)))です。
あとsqrt(re*re+im*im)の部分は複素数の絶対値計算なので、
RMS以前のデータ準備の段階。|z|^2=re*re+im*im
RMSやりたいなら、|z|=sqrt(re*re+im*im)の各値の二乗平均平方根、
つまりsqrt(ave(|z|^2)) = sqrt(ave(re*re+im*im))にしないと変なことになる。
253:デフォルトの名無しさん
07/11/02 21:32:20
> データ数が増えてもデータ値は高域に従って指数的に減っていくので、
> よほど高域強調されてない限り合計しても右上がりにはなりません。
なんか根本的な勘違い? >自分
ホワイトノイズはデータ値が(確率的には)全部等しいと思ってたのですが?
> 平方根の合計と合計の平方根は別のものなので入れ替えられません。
もちろんそうです。計算方法を変えるという意味です。
> あとsqrt(re*re+im*im)の部分は複素数の絶対値計算なので、
> RMS以前のデータ準備の段階。|z|^2=re*re+im*im
> RMSやりたいなら、|z|=sqrt(re*re+im*im)の各値の二乗平均平方根、
> つまりsqrt(ave(|z|^2)) = sqrt(ave(re*re+im*im))にしないと変なことになる。
>>249でRMSといってるのは、 20*log10(sqrt(sum(re*re+im*im))) のsumを平均に
変えたもののことで、あなたの式と同じです。
254:デフォルトの名無しさん
07/11/10 11:42:09
CD-TEXT の規格か仕様か、これを読み込むサンプルのあるサイトか分かりませんか。
ぐぐる用語でも分かると助かります。お願いします。
255:デフォルトの名無しさん
07/11/10 12:00:14
>>254
REDBOOK
256:254
07/11/10 22:29:04
>>255
有難うございます。お陰で参考になりそうなのを1つ見つけました。
英語版で 1996/12月ソニーが配布したものですが、データ構造についても
書いてあるようです。
余談ながら、ソニーは普及させたかったような雰囲気。
添付のソフト(3本)用に VB4 runtime routine が付いている。
257:すみません素人です
07/11/20 11:00:15
最近卒研でDSK使って音声処理する実験始めたんですけど、
高周波や低周波だけカットするLPFやHPFのプログラム(C言語)を組んだんですが、
逆に高周波とか低周波だけ増幅させるプログラムって書けるんでしょうか。
本やネットではちょっとわからなかったので、式とかサイトとか知ってる人がいたらどうかお願いします。
258:デフォルトの名無しさん
07/11/20 11:10:17
カットしたのを元のに足す引く
259:デフォルトの名無しさん
07/11/20 12:28:09
>>258さんの通り、
高周波だけをカットした結果を元の信号に(遅延・位相を合わせて)足せば低周波だけ増幅出来るわけだけど
どうして、普通はカットしか書かないのかというと、
ゲインが1を超えると、固定小数点演算だとオーバーフローするし
そもそも出力DACのレンジを越えてしまうと歪ませるしかなくなるからさ。
260:デフォルトの名無しさん
07/11/20 12:43:36
>>257
増幅したいところ以外をカットして全体のゲインを上げる
あとは双二次で検索
261:デフォルトの名無しさん
07/11/20 12:58:40
まあ、あと、増幅は、ノイズまで増幅しちゃうしね。
262:257
07/11/20 15:41:55
なるほど、カットするプログラムを応用するんですね!どうりでみつからないわけです…
それではオーバーフローやノイズの問題も考えつつ取り組んでみたいと思います。
皆さん、丁寧なご回答ありがとうございました。
263:デフォルトの名無しさん
07/11/20 21:37:12
カットして増幅とか、カットしたのをもとに足す引くとかでなくて、
ローシェルビング、ハイシェルビングフィルタでしょ。
双二次にはちがいないけど。
いわゆるトーンコントロールのロー・ハイで一般的なやつね。
ブーストするんだから、振幅に気をつけなきゃいけないのは当然
264:デフォルトの名無しさん
07/11/20 21:52:08
>>263
内部的には同じことじゃね?
265:デフォルトの名無しさん
07/11/21 04:06:49
>>264
まぁこのあたりは言い方の問題も結構あって、カットって言った場合に
シェルビングEQによるカットなのか、ハイパス・ローパスによるカットなのか、
ここまでのレスでもみんなバラバラの前提で喋ってたりするからねぇ。
カットして増幅しても、ただ増幅しても、相対的なゲインカーブが同じなら同じで良いと思う。
(アナログだとレベルによる非線形性がからむんで違うって話になるけど)
ハイパス・ローパスでカットして増幅する場合は、
例えばハイパスの場合カットオフ以上が-6dB/octとかの傾きで一様に減衰していく。
対してローシェルビングで持ち上げる(orハイシェルビングで落とす)方法だと、
ある時点で減衰/増幅が頭打ちになるって違いがある。
チラ裏失礼
266:デフォルトの名無しさん
07/11/21 06:39:16
>高周波とか低周波だけ増幅させる
カットした結果と元信号の足し引きみたいなのは、位相や遅延を考慮しないといけないから
普通わざわざやらないよね?
267:デフォルトの名無しさん
07/11/21 07:09:13
でも、数式を良く見ればf0が同じなら分母は固定で、分子だけが違う。
で、分子の変数は3つなので、
HPF/LPF/BPFの3つの組み合わせで何でも作れる事になる
ただ、ピーク位置が違うので多少f0は調整しなければいけない。
268:デフォルトの名無しさん
07/11/21 07:58:32
HPFとBPFはLPFの組み合わせで作れるんじゃね
269:デフォルトの名無しさん
07/11/21 08:14:14
実は2次の同じf0の HPF+LPF+BPF を加算すると理論的にはフラットになる
もっとも、計算精度が有限だからノイズは出るけどね。
だから1-HPF は LPFではなくて LPF+BPFになる。
その場合の特性は -6dB/Octではなくもっと悪い(1次の特性に近い)
270:デフォルトの名無しさん
07/11/21 08:30:47
それシェルビング1っ個やるのよりメリットあんの?
271:デフォルトの名無しさん
07/11/21 08:37:47
特性を可変したい場合は実際に分割するけど(可変出来るのは特性の上下だけでf0は無理だけど)
固定なら単にIIR計算としては1個でやるよ?
係数を足し算するだけだし
272:デフォルトの名無しさん
07/11/21 09:08:45
3つのフィルタの係数を
gH*HPF + gM*BPF + gL*LPF
として、gH,gM,gL を調整すれば、イコライザの特性が出せる
分母は共通だから分子の係数を加算すればいい。
左右を上下させる場合、
gMは gH,gLの加重平均 gM = √(gH*gL) 程度がイーカンジ
バンドを調整する場合、綺麗にポコンと上下させるにはQも調整しないと
上下非対称に
273:デフォルトの名無しさん
07/11/21 09:50:47
言葉で動作原理を述べるのは簡単だが、それをプログラムで作るのが分からない。
274:デフォルトの名無しさん
07/11/21 11:35:53
藻前ら、先人の知恵はちゃんと活用しようぜ。
Robert Bristow-Johnson氏のCookbookの式を使えば、2次IIRフィルタ1個だけで
ピークEQもシェルビングEQも実現できるぞ。
URLリンク(www.musicdsp.org)
275:デフォルトの名無しさん
07/11/21 11:47:05
やっぱり、HPF+BPF+LPFの合成だね。 BPFは加重平均だ。
公式を見るだけじゃなくて原理が判ると多少楽しいよね。
276:デフォルトの名無しさん
07/11/21 13:02:41
>やっぱり、HPF+BPF+LPFの合成だね。
どーしてそうなる?
HPF+BPF+LPFの合成だと4次以上にならないか?
277:デフォルトの名無しさん
07/11/21 14:20:52
>>274
それが263とかがいってる双二次フィルタですよ。
先人の知恵どころか、いま話に出てるEQなどでいちばん一般的な方法かな。
わざわざフィルタ合成みたいな概念でやるなんて聞いたことないなあ。
278:デフォルトの名無しさん
07/11/21 21:33:53
>>276
合成じゃなくてフィルタ出力の加算のことを言ってるんじゃない?
lpf(bpf(hpf(x))) じゃなくて lpf(x)+bpf(x)+hpf(x) (式は適当)
普通合成っていうと前者だから>>275はかなり紛らわしいけど。
279:デフォルトの名無しさん
07/11/24 01:28:36
根本的なことを聞きますが、LPFを作成する場合、
・FIRフィルタを用いる(入力信号に対し、フィルタ係数を畳み込み計算することで
低域通過させた出力信号を直接求める)
・FFTを利用する(入力を一旦FFTし、通過させる帯域のみを保持し、
他はゼロ埋めさせたスペクトラムを逆FFTすることで出力信号を得る)
この2通りのやり方は理想的には全く同じ挙動になるのですか?
今までFIRを使ったやり方が原理的に良く分からなかったので、FFTを使ったLPFを
作成していたのですが(周波数帯域の通過が直感的によく分かるので)、
最近勉強しなおしてFIRフィルタについて学んだところ、
時間領域において計算するだけでそのまま出力信号が得られるのが
非常に不思議に感じ、質問させていただきました。
280:デフォルトの名無しさん
07/11/24 01:33:20
FFTのことも良く分かってないんじゃないの
281:デフォルトの名無しさん
07/11/24 01:34:01
何度もすみません。追記です。
もしそうであれば、両者の特徴として
FIRの方が処理速度が速いが、後者の方が精度が高い(遷移周波数帯域幅が狭い)結果が得られる
という認識であってますか?
282:デフォルトの名無しさん
07/11/24 02:14:06
FIRフィルタをFFTで高速計算させる事が出来るけど
それをやってるなら、そういう事は書かない筈だけどな
FFTでフィルタを作った場合、バッチ処理でやるかブロックで処理する事になる。
ブロックで処理するとブロック同士がつながらない問題が出てくると思うのだが・・・・
283:デフォルトの名無しさん
07/11/24 02:56:12
>>282
ヒント: MDCT
284:デフォルトの名無しさん
07/11/24 03:18:06
>>279
時間領域における入力信号とFIR係数列の畳み込み演算は、
周波数領域におけるFFTされた入力信号とFFTされたFIR係数列の各項乗算に対応する。
つまり時間領域でのFIRフィルタ係数をFFTしたのが周波数領域でのフィルタ特性。
> FIRの方が処理速度が速いが、後者の方が精度が高い(遷移周波数帯域幅が狭い)結果が得られる
FIRはn^2 FFTはnlognなのでFFTの方が速い。
周波数領域での直接設計なら遷移周波数帯域幅も何もスパっと切れるけど、
実際にはあんまり急峻に切ると時間領域のFIR係数の収束が悪くなって(要するに
Sincに近づく)、逆に打ち切り誤差が出やすくなったりして、そう簡単にはいかない。
285:デフォルトの名無しさん
07/11/24 09:01:03
>>283 MP3でやってるように1/2 づつ窓関数をかけてズラシテフィルタをかけた後で合成すれば誤魔化せる
という事なんだけどうけど、やっぱり低い周波数にひずみが出るけどなあ
286:デフォルトの名無しさん
07/11/24 11:06:17
「ズラシテ」フィルタってなんだろと思ったのは漏れだけでいい。
287:デフォルトの名無しさん
07/11/24 20:44:38
>>285
ヒント: Time Domain Alias Cancellation (TDAC)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4982日前に更新/249 KB
担当:undef