- 1 名前:デフォルトの名無しさん [2007/07/25(水) 14:07:56 ]
- 音のプログラミング処理について語りましょう
各エフェクタの組み合わせとか、 プログラミング外の話題はDTM板の方がいいよ サウンドプログラミング3 pc11.2ch.net/test/read.cgi/tech/1145573675/ サウンドプログラミング2 pc8.2ch.net/test/read.cgi/tech/1091054082/ サウンドプログラミング pc5.2ch.net/tech/kako/996/996171508.html
- 263 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:37:12 ]
- カットして増幅とか、カットしたのをもとに足す引くとかでなくて、
ローシェルビング、ハイシェルビングフィルタでしょ。 双二次にはちがいないけど。 いわゆるトーンコントロールのロー・ハイで一般的なやつね。 ブーストするんだから、振幅に気をつけなきゃいけないのは当然
- 264 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:52:08 ]
- >>263
内部的には同じことじゃね?
- 265 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 04:06:49 ]
- >>264
まぁこのあたりは言い方の問題も結構あって、カットって言った場合に シェルビングEQによるカットなのか、ハイパス・ローパスによるカットなのか、 ここまでのレスでもみんなバラバラの前提で喋ってたりするからねぇ。 カットして増幅しても、ただ増幅しても、相対的なゲインカーブが同じなら同じで良いと思う。 (アナログだとレベルによる非線形性がからむんで違うって話になるけど) ハイパス・ローパスでカットして増幅する場合は、 例えばハイパスの場合カットオフ以上が-6dB/octとかの傾きで一様に減衰していく。 対してローシェルビングで持ち上げる(orハイシェルビングで落とす)方法だと、 ある時点で減衰/増幅が頭打ちになるって違いがある。 チラ裏失礼
- 266 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 06:39:16 ]
- >高周波とか低周波だけ増幅させる
カットした結果と元信号の足し引きみたいなのは、位相や遅延を考慮しないといけないから 普通わざわざやらないよね?
- 267 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 07:09:13 ]
- でも、数式を良く見ればf0が同じなら分母は固定で、分子だけが違う。
で、分子の変数は3つなので、 HPF/LPF/BPFの3つの組み合わせで何でも作れる事になる ただ、ピーク位置が違うので多少f0は調整しなければいけない。
- 268 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 07:58:32 ]
- HPFとBPFはLPFの組み合わせで作れるんじゃね
- 269 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:14:14 ]
- 実は2次の同じf0の HPF+LPF+BPF を加算すると理論的にはフラットになる
もっとも、計算精度が有限だからノイズは出るけどね。 だから1-HPF は LPFではなくて LPF+BPFになる。 その場合の特性は -6dB/Octではなくもっと悪い(1次の特性に近い)
- 270 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:30:47 ]
- それシェルビング1っ個やるのよりメリットあんの?
- 271 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:37:47 ]
- 特性を可変したい場合は実際に分割するけど(可変出来るのは特性の上下だけでf0は無理だけど)
固定なら単にIIR計算としては1個でやるよ? 係数を足し算するだけだし
- 272 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:08:45 ]
- 3つのフィルタの係数を
gH*HPF + gM*BPF + gL*LPF として、gH,gM,gL を調整すれば、イコライザの特性が出せる 分母は共通だから分子の係数を加算すればいい。 左右を上下させる場合、 gMは gH,gLの加重平均 gM = √(gH*gL) 程度がイーカンジ バンドを調整する場合、綺麗にポコンと上下させるにはQも調整しないと 上下非対称に
- 273 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:50:47 ]
- 言葉で動作原理を述べるのは簡単だが、それをプログラムで作るのが分からない。
- 274 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 11:35:53 ]
- 藻前ら、先人の知恵はちゃんと活用しようぜ。
Robert Bristow-Johnson氏のCookbookの式を使えば、2次IIRフィルタ1個だけで ピークEQもシェルビングEQも実現できるぞ。 ttp://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
- 275 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 11:47:05 ]
- やっぱり、HPF+BPF+LPFの合成だね。 BPFは加重平均だ。
公式を見るだけじゃなくて原理が判ると多少楽しいよね。
- 276 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 13:02:41 ]
- >やっぱり、HPF+BPF+LPFの合成だね。
どーしてそうなる? HPF+BPF+LPFの合成だと4次以上にならないか?
- 277 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 14:20:52 ]
- >>274
それが263とかがいってる双二次フィルタですよ。 先人の知恵どころか、いま話に出てるEQなどでいちばん一般的な方法かな。 わざわざフィルタ合成みたいな概念でやるなんて聞いたことないなあ。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 21:33:53 ]
- >>276
合成じゃなくてフィルタ出力の加算のことを言ってるんじゃない? lpf(bpf(hpf(x))) じゃなくて lpf(x)+bpf(x)+hpf(x) (式は適当) 普通合成っていうと前者だから>>275はかなり紛らわしいけど。
- 279 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:28:36 ]
- 根本的なことを聞きますが、LPFを作成する場合、
・FIRフィルタを用いる(入力信号に対し、フィルタ係数を畳み込み計算することで 低域通過させた出力信号を直接求める) ・FFTを利用する(入力を一旦FFTし、通過させる帯域のみを保持し、 他はゼロ埋めさせたスペクトラムを逆FFTすることで出力信号を得る) この2通りのやり方は理想的には全く同じ挙動になるのですか? 今までFIRを使ったやり方が原理的に良く分からなかったので、FFTを使ったLPFを 作成していたのですが(周波数帯域の通過が直感的によく分かるので)、 最近勉強しなおしてFIRフィルタについて学んだところ、 時間領域において計算するだけでそのまま出力信号が得られるのが 非常に不思議に感じ、質問させていただきました。
- 280 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:33:20 ]
- FFTのことも良く分かってないんじゃないの
- 281 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:34:01 ]
- 何度もすみません。追記です。
もしそうであれば、両者の特徴として FIRの方が処理速度が速いが、後者の方が精度が高い(遷移周波数帯域幅が狭い)結果が得られる という認識であってますか?
- 282 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:14:06 ]
- FIRフィルタをFFTで高速計算させる事が出来るけど
それをやってるなら、そういう事は書かない筈だけどな FFTでフィルタを作った場合、バッチ処理でやるかブロックで処理する事になる。 ブロックで処理するとブロック同士がつながらない問題が出てくると思うのだが・・・・
- 283 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:56:12 ]
- >>282
ヒント: MDCT
- 284 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 03:18:06 ]
- >>279
時間領域における入力信号とFIR係数列の畳み込み演算は、 周波数領域におけるFFTされた入力信号とFFTされたFIR係数列の各項乗算に対応する。 つまり時間領域でのFIRフィルタ係数をFFTしたのが周波数領域でのフィルタ特性。 > FIRの方が処理速度が速いが、後者の方が精度が高い(遷移周波数帯域幅が狭い)結果が得られる FIRはn^2 FFTはnlognなのでFFTの方が速い。 周波数領域での直接設計なら遷移周波数帯域幅も何もスパっと切れるけど、 実際にはあんまり急峻に切ると時間領域のFIR係数の収束が悪くなって(要するに Sincに近づく)、逆に打ち切り誤差が出やすくなったりして、そう簡単にはいかない。
- 285 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:01:03 ]
- >>283 MP3でやってるように1/2 づつ窓関数をかけてズラシテフィルタをかけた後で合成すれば誤魔化せる
という事なんだけどうけど、やっぱり低い周波数にひずみが出るけどなあ
- 286 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:06:17 ]
- 「ズラシテ」フィルタってなんだろと思ったのは漏れだけでいい。
- 287 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 20:44:38 ]
- >>285
ヒント: Time Domain Alias Cancellation (TDAC)
- 288 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 23:33:29 ]
- ズラシテフィルタ=comb filter
- 289 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:15:00 ]
- >>288
面白いがこの流れでそれはないww
- 290 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 10:38:11 ]
- こういう事だろ? たとえばFFTのサイズを4096としたら
1024毎に分けて、1ブロック毎に、 2ブロックを取ってくる。 それに窓関数をかけるけど、このときに (1-cos)/2 みたいな 1ブロック分ズレたものと加算するとフラットになるような窓関数を使う。 で、これにFFTをかけてフィルタをかけて、逆FFTして、1ブロック前の分と加算して出力してゆく。 問題は、フィルタをかけて戻した結果が、はじめと終わりがキチンと0になって戻ってればいいけど そうじゃないとこれがノイズになる。 だから再度窓関数をかけられるように 最初にかける 窓関数を √(1-cos)/2 つまり半角公式でsinになるわけだけど これを2度かけると確かに戻るけど、窓関数としての性能がだいぶ悪くなる
- 291 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 13:16:44 ]
- >>290
短時間FFTだね。2回掛ける方法の場合、有名どころがsin窓とかVorbis窓。 でも、FFTサイズ4096なのになんで1024ずらしで使ってるの? 2048ずらしで十分だと思うけど MDCTで使われるTDACは、処理ブロックを重ね合わせるまで同じだけど、最初の段階で、 重ね合わせた部分でプリエコー・ポストエコーが最終的に相殺されるように処理するのが違う。
- 292 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 13:21:33 ]
- あ、あと、窓関数の性能が悪いっていってるけど、
目的に合わせたトレードオフだから、一概に良い悪いは言えないと思われ 周波数分解能なら矩形窓最強ってことになる。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:51:35 ]
- 音響レンズのシミュレーションをしてみようと思うのですが
どこから手を付けていいのやらわかりません
- 294 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:56:29 ]
- いまの話では用途が解析じゃないから、矩形窓はありえないでしょうけど
- 295 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 01:23:37 ]
- 用途以前にまず何の性能か言わないと意味無い
- 296 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 19:59:27 ]
- AGC、オート・ゲイン・コントローラが必要で、Waves MaxxVolumeは高くて
買えないため自作(VSTでもオフラインでも)しようかと思うんですが、 原理としては固定ゲイン+超長アタック/リリース(10秒〜)の 先読みリミッタという理解で正しいでしょうか?
- 297 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 21:38:30 ]
- AGCってけっこう大雑把な呼び名で、
単にゲインアップ+リミッターだったり、RMSコンプ+リミッターだったり、 もっと別のアイデアが入っていたり、、、いろいろのような 思うように作ったらいいんでは。 ある程度まともなの作るなら先読み(リアルタイムなら出力の遅れだけど)は必要だろね。 ま、フリーのコンプやリミッターもいろいろあるけどねえ。
- 298 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:35:05 ]
- どこで質問すればいいか分からなかったので、ここで質問させてください。
フーリエ変換の本を読んで、自分もWAVEファイルを読み込んで試してみたいと思ったのですが、 肝心のプログラミングがさっぱり分かりません。 Turbo C++でやろうと思っているのですが、WAVEファイルの読み込み方も、読み込んだデータの処理の仕方も 実際にFFTを行う方法も全然分かりません。 C++自体の使い方は基本的な命令文は知っていますが、マルチメディア関連はやったことがないです。 実際のプログラミングの仕方や、参考になる本など教えていただけたら幸いです。
- 299 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 00:00:52 ]
- あきらめたら?
- 300 名前:298 mailto:sage [2007/11/27(火) 02:06:25 ]
- ありがとうございました。もうあきらめます。
- 301 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 03:05:16 ]
- waveの読み込みぐらいgoogleに聞いてみればいいのに
- 302 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 03:32:44 ]
- ttp://www13.plala.or.jp/kymats/study/multimedia.html
- 303 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 03:46:57 ]
- 釣りだろ? jk
- 304 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 06:14:46 ]
- >>297
TDの最後で、全体の音量をオートメーションで調整していくのが面倒、 というのがあって、楽したいなぁと思いまして。 とりあえず先読みリミッタ式で作ってみたところ、やはりレベルの急な変化にはついて いけないことが多いですね。かといってアタックを短くすると数秒のポンプになりますし。 大雑把に手動調整、細かいところは自動調整って形で運用してみます。 ありがとうございました。
- 305 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 09:15:55 ]
- もしかしてみなさんはFIRだのFFTだのと言った物は既成の物があってそれを利用しているのでしょうか?
- 306 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 10:03:54 ]
- >>305
定番もののソースはどこにでも転がってる。流用してるやつもいるだろうよ。
- 307 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:22:13 ]
- パソコンの場合、転がってるのを使ってもいいし、自作しても何倍も速度が違わない
DSPなんかの場合、メータが必死ならFFTのライブラリなんかも公開してくれる そうでないと当然、自分で作りこまないといけない。
- 308 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 13:08:48 ]
- 理系じゃない高校生ぐらいの数学知識でフーリエの冒険読んでみて5日くらいでFFT書けたよ。
多少あやふやなとこもあったけど。 ただしゲーム作れる程度のC言語の知識はあった。 実際にやってみて詰まったところ質問しないと意味ないよ。
- 309 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 14:34:09 ]
- 社会人になってだんだん時間なくなって、ライブラリ探すところから
始めるようになった。どうしても無かったり、仕様がゴミだったら自分で書くけどね。 目的が、使いたい機能を最小の手間で作る(で、使う)、になってるからなぁ。
- 310 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 15:41:45 ]
- >>308先生
そのFFTソースを開示してください ついでに chirp-Z transformも作ってください
- 311 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 21:32:36 ]
- 単にFFTを使いたいだけだったら(プログラム作成が目的でないのなら)
Scilab か GNU Octave を使ったら? FFT機能は標準装備だし、確かWAVファイルの読み書きも出来たはず。
- 312 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 00:00:55 ]
- まそれいっちゃうと他にも選択肢はたくさんあるけどな。
Mac OSなんかはSIMD使ってアクセラレートされたFFTライブラリが標準で提供されてたな。
- 313 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 03:37:54 ]
- FFT(笑)
- 314 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 04:39:36 ]
- 308じゃないが、だいぶ昔に書いたFFTのコードとサンプルアプリをようやっと発掘してきたが・・・そういう空気じゃないなw
- 315 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:09:13 ]
- FFTのライブラリって結構いっぱいあるけど
定番とかオススメってある?
- 316 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:19:50 ]
- 定番は自作。
オススメも自作。 FFTそのものは20行もあれば書ける。 ビット逆順とか入れても40行。 面倒だったり頭を悩ませるのはソコじゃない。
- 317 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 10:35:29 ]
- FFTで有名な場所
www.kurims.kyoto-u.ac.jp/~ooura/fftman/index.html Delphiなら pc.2ch.net/tech/kako/993/993457354.html ここの207以後。
- 318 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 11:58:53 ]
- 完全自作にこしたとはないけれど、
十分な完成度というか性能というか(速度面とか)出すとこまで含めると、 それなりに時間と労力いるよね? そこまでコミットできないし、結果が得られれば良いヘタレな俺は やっぱりライブラリ活用でし・・・ (でもそのためのライブラリ
- 319 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:14:43 ]
- コード見れば判るだろうけど、
FFTそのものの速度はチューニングしてもしなくても2倍も違わない。 というかチューニング出来る要素はそんなにない。 仮に2倍違ったとしても、パソコンの場合、それでどうしたのって程度の差でしかない。 リンク先のように最大の素数を求めてるとかならともかくさ
- 320 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 12:30:14 ]
- SIMD化するだけで数倍速くなるよ。
ただ、PC上での話なら5年前のCPUですら素のサンプルをそのまま使っても十分な性能出てたけどね。
- 321 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 17:26:14 ]
- Delphi使いがこのスレにたまにいるようだけど、Delphiでサウンドプログラミングなんて邪道だろ
- 322 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 20:53:08 ]
- ナンセンス
好きなの使えばいいじゃないの
- 323 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 00:00:45 ]
- FFTで何をするか、に興味がある
FFT実装には興味ないなぁ
- 324 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 01:52:15 ]
- Playerでグラフィックイコライザみたいな
棒グラフがぐにゃぐにゃ動く画面は リアルタイムにFFTしながら描画してるのでしょうか?
- 325 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 02:43:33 ]
- そうですけど
- 326 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 12:15:32 ]
- MP3の場合、FFTというかある程度の周波数情報は復調時に得られるのかも
あと、グライコそのものはFFTでやるより、バンドパスや同調(Q無限大の)フィルタでも負荷量は バンド数によっては小さい。
- 327 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 17:10:11 ]
- きっちりと理論の実装をするのが得意なやつもいれば、
理論はそこそこ、それらを利用したアプリケーションとか書くのが得意なやつもいるよな。 あんがい両方に長けてるやつって少なかったり
- 328 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:46:30 ]
- 糞文系が理系を支配する構図ってやつ
- 329 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:31:49 ]
- >>326
低域で精度を得ようとするとタップ数が増えるからFFTというかFIR系はつらいね… グライコならフィルタした音聴くわけじゃないし、パワーだけ得られればいいから 位相回りまくってもIIR系で急峻に落とす方が計算量としては少なそう >>327 正しい分業の姿ですな
- 330 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:39:10 ]
- >328
327は本来両方とも理系の担当分野だと思うけどな。 つか文系は基本的にある程度以上の国家資格持ってるのならともかく大半は高卒の方がマシな連中だからな。
- 331 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 02:58:11 ]
- 文理ではなく理学と工学の関係に近いかな
- 332 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 03:17:09 ]
- 学の無い人は壁を作りたがる
- 333 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 05:27:54 ]
- 理系は文系をカバー可能だが
文系で理系をカバーできないやつは使い物にならない しかしそういうのに限って 他人だまして金儲けるのだけはうまかったりする でスレ違いな訳だが
- 334 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 06:18:12 ]
- 理系でも文系でもいいけど
こんなところでストレスぶちまけないでよw
- 335 名前:デフォルトの名無しさん [2007/12/02(日) 15:29:45 ]
- 社会を支配しているのって文系の奴ら何だからね。
- 336 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:45:02 ]
- FFTSSってのがあるな
暫くこれ使わせてもらおう
- 337 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 05:59:45 ]
- 大浦氏のCのやつをラッパークラス書いてC++で使ってる
- 338 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 10:53:18 ]
- グライコならラジオの原理で言う、超再生方式が比較的効率がいいよ
表示だけなんだから処理時間が足りないなら間欠的にやればいいわけだし
- 339 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 12:54:29 ]
- IIRのバンドパスとかとはどうちがうの?
(グライコって、スペアナでしょ
- 340 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:14:43 ]
- ああ、スペアナだな。 みんながグライコって書いてたから勘違いしちゃった。
IIRでいえばバンドパスではなくて分子が1でQが無限大のLPF つまり、サイン波ジェネレータに使う構成があるでしょ? 分子が1だから掛け算の回数がそれだけ少なくなる。 バンド幅は検出時間で調整する。 つまり低周波程周期に比例して長くする。
- 341 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:18:05 ]
- ただ、間欠的にデータ取るから窓関数は必要。だからそれも足したらバンドパスと変わらないけど
間欠的にデータが取れるから処理時間が余った時だけとかの調整が可能なのが有利。 バンドパスでも間欠的にデータ取れるけど、その場合だって結局窓関数かけないといけないから。
- 342 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:19:10 ]
- バンドパス
窓とかかけないでも、低いほうの周波数帯だったら 1サンプル飛ばしでsr半分として、2サンプル飛ばしでsr1/3として、みたいなかんじで 計算すりゃよくない? あくまで精度は重要でなくて、少しでも軽く処理したいって前提だけど
- 343 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:40:20 ]
- あぁでもエイリアスひろっちゃうかな、、
- 344 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 09:04:42 ]
-
b0 + b1*z^-1 + b2*z^-2 ------------------------ a0 + a1*z^-1 + a2*z^-2 BPFの分母は b0=-b2,b1=0 か b0=-b1,b2=0(こっちは特性が悪いから普通は使わない) だから計算量が b0=1, b1=b2=0 に比べて極端に悪いとは思えない
- 345 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 02:20:33 ]
- マルチバンドコンプ用に帯域分割フィルタを作りたいんだけど、
線形位相・完全再構成な不等分割フィルタバンクの設計法を調べるので方向性合ってる?
- 346 名前:デフォルトの名無しさん [2007/12/09(日) 02:29:32 ]
- >> 279
>> 345 オープンソースのがすでにあるぞ。車輪の再発明はやめなはれ。 freeverb3.sf.net/ FIRのLPF/BPF/HPFとかも入ってるみたい。
- 347 名前:デフォルトの名無しさん mailto:age [2007/12/09(日) 02:39:55 ]
- JWAVEを聴きながらVeohを見てみた
youtubetv.atspace.com/?&VeohSpotlight!&JWAVE@VeohWideTV
- 348 名前:デフォルトの名無しさん [2007/12/09(日) 11:36:04 ]
- >>336
FFTSSはライセンスがGPLじゃないんだね。 上記の著作権情報をソース/バイナリどちらであっても 含めないといけないとあります。 ダウンロードに名前とemailと目的まで入力か...
- 349 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:41:18 ]
- >>346
ども。参考にするよ。FFTとかFIRの仕組み自体の実装には興味ないんだけど、 設計法は勉強したいと思ってて、そのあたりは結局のところ自分で作らないと 勉強にならないから自分でやるよ。 ちなみに、車輪の再発明って物事の実現効率しか見てなくて、 逆に学習とか、車輪の再発明そのものが必要になる場面もあったりする。 ツッコミいれるときはその意図に注意した方がいいかも。 (今回はそのあたりの前提を言ってなかったんですまんかった)
- 350 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:15:08 ]
- 学習目的のそれは、再「発明」とは違うんじゃないかな。
再開発とか再実装あたりが適切じゃないかと思う。 既存の発明の情報を得て、理解した上で実際にやってみるって作業でしょ。 再発明ってのは、まだどこにも存在してないと思い込んで、既存の発明を参考にせずに一から自分で作る話。 実装とか設計以前の着想とか発案から始めて、先人達がとっくに解決したような問題で延々悩むことになる。 まず調べろ、ってこと。
- 351 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:52:01 ]
- >>350
車輪の再発明、ってのは単に言い回しでそうなっているだけで、 最初から>>350の言う厳密な発明よりも広い、開発をも含む意味で使われてるよ。 ほぼ同じ文脈で使われるNot Invented Here症候群(自前開発以外を採用しない)の場合も、 厳密な発明って意味の他に開発の意味も含むし。 とりあえず、バタワースあたりの振幅特性だけもってくる直接設計法で 一番上のバンドで誤差吸収ってのを考えた。
- 352 名前:デフォルトの名無しさん [2007/12/09(日) 20:43:06 ]
- >> 345
CiNii - 線形位相完全再構成不等分割フィルタバンクの設計 CiNii - 線形位相完全再構成不等分割FIRフィルタバンクの設計 論文みたいだね。やくにはたちそう:)
- 353 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:09:36 ]
- >>352
ありがとー! 論文は読み慣れてる(分野違うけど工学系)んで問題ないです。 FIRの方をざっくり読んだけど、他の方法で漸近的に設計しておいて 最後の1or2バンドで補償してる感じかな……。
- 354 名前:デフォルトの名無しさん [2007/12/28(金) 04:01:10 ]
- >>293
音響レンズってなんだ??
- 355 名前:デフォルトの名無しさん [2007/12/28(金) 04:03:00 ]
- すまん自己解決
(問題-18) 音響レンズとは何か。 どんな機能を果たしているのか。 どんな材質で出来ているのか。どのような特性があるのか。 -------------------------------------------------------------------------------- (解答-18) 音響レンズとは探触子の圧電素子より前面に配置してある構造体で、音波を収束させる目的を持つ。 生体での音速に比べ遅い音速約1000m/secのシリコンで出来ている。 凸面形状をとることにより探触子から出た超音波を収束させることが出来る。 もし、音響レンズに生体より早い音速を持つ物質を使用した場合は 凹面形状をとらないと探触子から出た超音波を収束させることが出来ない。
- 356 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:51:20 ]
- DSPの経験が全くないのですが、2nd order Butterworth lowpass filterの、カットオフ周波数(1)での、ある周波数(2)の入力の位相の変化ってどうやったら求められますか?
ディレイのフィードバックで発振させて、フィルター入れたらピッチが変わって音痴になってしまいました。位相ズレ分のディレイを補正したいんです
- 357 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 07:24:01 ]
- 普通はZ変換にw*i を突っ込めば出ますが?
でもディレイ入れるだけでピッチが変わるって・・・・何かその前にお間違えでは?
- 358 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 12:35:24 ]
- サウンドプログラミングって面白いね!
- 359 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:29:29 ]
- PCM出力用のバッファからリアルタイムでスペクトルを取得する為に
自分でコーディングしたFFTに short(signed 2bytes) 要素数65536 を処理させたんですが、 頑張っても 0.22 秒ほど掛かってしまうようです。 車輪の再発明をするのもあれなので、「FFTをするなら普通はこれを使う」といった手段、 例えばもっと高速に動作する既成dllやライブラリなどは無いでしょうか?
- 360 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:50:34 ]
- 速度を求めるならfftw
俺は呼び出しの簡単さ優先なんで大浦氏のFFTライブラリ (それでも自分で書くよりも断然速い)
- 361 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:08:34 ]
- fftwなら、MKLにも同梱されているしちょっとした修正でCUFFTにも移植可能だし、
使っている人が多いと言うのも魅力だね。後は、2の冪に縛られずに済むのも手抜きにはいい。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 07:21:11 ]
- >>359
整数ではなく浮動小数点でデータを与えた方が変換時間が短いと思う もっと少ないサイズでやるなら固定小数点も考えられるけど、2^16個では固定小数点では無理 あと、そもそも1秒分以上のサンプリングデータを0.22秒で処理出来ているのだから十分高速だと思うよ。 スペクトル表示が目的なら 4096か8192点で十分でしょ。
- 363 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 07:22:50 ]
- >>359 SINのテーブルや、ビット反転アドレスなんかのテーブルは事前に作ってるんだよね?
これを毎回作ったり、sinを毎回計算させてたら遅いよ
|

|