- 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
- 684 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 09:45:51 ]
- 音声の実信号ってのが16bitPCMなんじゃないの?
そうするとデジタル誤差が丁度それくらいだと思うよ
- 685 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 14:57:22 ]
- 実信号x[n]の代わりに、sin関数で生成した配列を入力に使って
理想状態のテストをやってみたら? その後、入力の位相をずらしてみたり、DCオフセットを追加してみたり、 16bitとか24bitに量子化するなど、各種の条件でテストしたら どの要素がどのように影響しているのかが見えてくると思う
- 686 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 19:51:24 ]
- >>683
窓関数いろいろ変えても良い結果はでないですね。 S/Nを区別する処理はしてません >>684 そういうもんですかね? >>685 例えば800Hzのsin波とかどうすればいいんでしょうか
- 687 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 14:56:28 ]
- >例えば800Hzのsin波とかどうすればいいんでしょうか
#include <math.h> #define PI 3.14159265 #define NN 4096 #define Fs 10000.0 /* Sampling freq. 10kHz */ #define Freq1 800.0 /* Signal freq. 800Hz */ int i; double x[NN]; for(i=0;i<NN;i++) x[i] = sin(i*2.0*PI*Freq1/Fs);
- 688 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 17:01:01 ]
- >>686
16bitで量子化してると 6*15=90dBしかS/Nはないよ。 サイン波をソフト上で16bitのデータを作って入れても-105dB程度下にノイズが出てくる
- 689 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 20:34:29 ]
- サウンドの基礎が解ってないようだし、初心者本なり教科書なり読んで勉強するべき。
- 690 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:59:11 ]
- sin関数で生成したのでテストしてみました。1000hzのsin波で、サンプリング周波数は10k
FFTは4096点で、窓関数はハミングです 値はパワースペクトルです。 988.769531 [Hz]: 60.407160 991.210938 [Hz]: 52.110974 993.652344 [Hz]: 0.011060 996.093750 [Hz]: 6921.740936 998.535156 [Hz]: 681334.211257 1000.976563 [Hz]: 946209.472048 1003.417969 [Hz]: 31271.077880 1005.859375 [Hz]: 19.035879 1008.300781 [Hz]: 43.300825 なかなかいい結果になりました。993hzで値が小さいのが気になりますが。 97.656250 [Hz]: 0.061772 100.097656 [Hz]: 0.061831 102.539063 [Hz]: 0.061892 >>688 このあたりがノイズってことですよね。対数とってdbにするとマイナスでてきちゃうし >>689 一応読んで勉強したつもりなんですが・・・ dbがマイナスとはどういうことでしょうか?音を吸収する?
- 691 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:04:31 ]
- >>689
分かってないのはサウンドの基礎だけではなかったようだ
- 692 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:17:42 ]
- 1、 ムダな精度で表示するな
2、 周波数も対数化する方法を考えろ
- 693 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 17:23:02 ]
- >>690
なんでスペアナ作りたいのかしらんけど、作っても君の知識レベルでは使いこなせないから意味無いよ?
- 694 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 17:29:48 ]
- 何を勉強したらいいですか
- 695 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 18:09:10 ]
- なんでdB(対数)表現を使うのか?>ja.wikipedia.org/wiki/%E3%83%87%E3%82%B7%E3%83%99%E3%83%AB
対数のマイナス値の意味も解ってないみたいだから、高校数学辺りの教科書で対数を勉強する。 その上で>>679で触れてる「他にあるスペアナ」のスケールの上限下限値とか確認すると見えてくるかも。
- 696 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:09:05 ]
- リア厨の予感がする
- 697 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:09:55 ]
- リア中でこれだったら逆にすげぇわ
- 698 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 21:21:35 ]
- 今日び本読めばたいていのことは書いてあるから
付け焼刃的な知識で実装は小学生でも出来る その本を本当に理解するのに必要な基礎知識が抜けているのは 真っ当な教育を(まだ)受けていないから
- 699 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 05:46:08 ]
- ゆとり世代の大学の宿題
- 700 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:10:09 ]
- 「何を勉強したらいいですか」の一文は最高にイカしてるなw
広がる話題でも無いし、後釣り宣言で収束キボンヌ
- 701 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 10:25:18 ]
- >>694
理系の大学1年生程度の数学。対数とフーリエ変換ぐらいは理解しとけ。
- 702 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 10:57:25 ]
- >>694さんが >>690 なら技術的というか工学的なセンスを磨く必要があると思うよ。
プラモでもいいし電子キットでもいいし、何でもいいからとにかく 実際に何か組み立てたり 雑学でいいから色んな本を読んで、 面白そうなものは作ってみる。 有効精度とか、この結果を出すのに何が一番効くかといったあたりからね
- 703 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 21:25:45 ]
- FFTの話からどんどん離れてきました
- 704 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 21:38:58 ]
- センターキャンセル処理で単純にL-Rするとオーバーフローする。
(L-R)/2ってしたらオーバーフローはしなくなりました。 でも気になる事があります。 元の数値が奇数だったら、切捨てされておかしなことになりませんか?
- 705 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 07:21:49 ]
- どうおかしくなると思うかを書いてみたら?
- 706 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 07:29:49 ]
- (L-R)/2が3の倍数になると頭がおかしくなる。
- 707 名前:デフォルトの名無しさん [2008/07/09(水) 10:08:35 ]
- 例えば波形の値が
300 303 だったら0.5倍すると150 151 となって二倍して元に戻そうとしても戻らなくなるので、データがちがくなってしまうのかなと
- 708 名前:デフォルトの名無しさん mailto:sega [2008/07/09(水) 10:31:19 ]
- 標本化定理が破られたと聞いて飛んできました!
今の時代、2倍以上の周波数でサンプリングしなくても デジタル処理を使うと元の信号を完全復元できるそうですが マジですか?
- 709 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 11:07:25 ]
- >>707
元に戻すような処理をするなら、2で割らず、余裕のあるところで計算しろ。 >>708 いましてるのは周波数じゃなくてビット数の話だろw
- 710 名前:デフォルトの名無しさん [2008/07/09(水) 11:46:59 ]
- 元には戻さないんですが
いいのかな?って思うんです
- 711 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:51:18 ]
- >>710
センターキャンセルで1bitの誤差が問題になる場面なんてあるの? なけりゃ気にするな。
- 712 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 18:23:44 ]
- 切り捨て(丸め)について、まじめに考えたいなら下記URLが参考になる
blackfin.s36.coreserver.jp/2191/misc/002_rounding.shtml
- 713 名前:デフォルトの名無しさん [2008/07/09(水) 18:59:29 ]
- まぁ2で割るんで十分でしょ
- 714 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:34:52 ]
- >>708
いやいや、完全復元じゃない。 自然界に存在する音って調波構造持ってることが多いから、 低周波から倍音の推測がある程度可能って話。 こういう話が出るたびに標本化定理が破られたとか騒ぐ馬鹿がいるけど、原理が違うから。 >>709 別件の質問じゃね?
- 715 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:37:20 ]
- >>707
(L-R)/2 だけだと当然、下位1ビットの復元無理。 その±1の差がどの程度問題になるかって話で言うと、まあ、用途しだい。 (L+R)/2 の情報もあるなら、円め方のルール決めとけば完全復元可能。
- 716 名前:デフォルトの名無しさん [2008/07/09(水) 23:30:17 ]
- (L+R)/2の情報持つぐらいなら、double型で(L-R)/2の情報を保持しといたほうがよくね?
- 717 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:37:58 ]
- >>716
L, R が32ビット整数ならね。
- 718 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 02:36:53 ]
- >>708 >>714
もしかして、アンダーサンプリングの話では?
- 719 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 07:04:42 ]
- >>716
もっと手っ取り早く、L/R/0.5*(L+R)の三つを保持しとけばよくね?
- 720 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 07:24:42 ]
- 保存が必要なのは L と Rだけだろ (L-R)/2 はその場で計算出来る
- 721 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 18:32:11 ]
- まぁ数だけじゃなく質もいいけどな
NT○研究所、ソ○ー アクセ○チュア まぁ君らニートには縁のない会社ばっかりだよ
- 722 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 18:39:51 ]
- 周波数から音名への割り当て方ってどうすればいいですか?
例えばサンプリング周波数44.1khzのデータをN=8192の高速フーリエ変換をすると、 周波数分解能は5.38[hz]。 A3=440[hz]と考える。 440[hz]付近はこんな感じになってる 403.747559 409.130859 414.51416 419.897461 425.280762 [Hz] 430.664063 [Hz] 436.047363 [Hz] 441.430664 [Hz] 446.813965 [Hz] 452.197266 [Hz] G#3=415[hz]で、どこまでをG#のパワーとしてみなして、どこからどこまでをAのパワーとしてみなしていいかわかりません。 単純に区間を2分割だとまずいですよね
- 723 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 19:16:42 ]
- またこの人か・・・
- 724 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 19:24:57 ]
- すいません。上のFFTのひとです
- 725 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 06:44:30 ]
- だから、まず、有効数字ってのを体に叩き込め!
半音の比は2^(1/12) = 1.059 だから、半音の真ん中の音は 2^(0.5/12) =1.029 の所だ 440*2^(-1/12) = 415Hz 440*2^(-0.5/12) = 427Hz ここが真中 なお、 A=440Hzに対して 430Hzは Aの音じゃない。 調子外れの音だ 処理の都合で A に入れるだけって事だろ?
- 726 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:11:53 ]
- ありがとうございます。
430Hzの音はAとしてみなし、Aのパワーとして加算すべきなのか、 ゴミとして捨てるべきなのかが分かりません。 430Hzの音が実際なっていなくても、FFTすると430Hzのところにパワーが出てきてしまいますよね?
- 727 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:27:57 ]
- >>726
好きにしろ。
- 728 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 11:57:50 ]
- >>726 手段は目的の為にあるんであって
手段の細かい事だけ聞かれても、他人には判断のしようがない
- 729 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 12:51:10 ]
- 厨房採譜ソフトでも作りたいんだろうよ
- 730 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:21:44 ]
- test
- 731 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 14:31:32 ]
- Windowsで、モールス信号を出すプログラムを作っています。
信号のオン/オフを、正弦波を生成して信号がないときには0で埋める方法で実装したのですが、 信号が切れるときにプツプツと酷いノイズが乗ってしまいました。 -- 10 9 7 0 0 0 0 0 0 -- 突然信号が0になってしまうのがノイズの原因と考え、信号が0に戻るまで待つことにしました。 -- 10 9 7 5 3 2 0 0 0 -- これでノイズはだいぶ軽減されたのですが、まだ残っています。 何かいい方法はないでしょうか。 あまり知識がないもので、何か参考になるサイトや書籍などを教えて頂けると嬉しいです。
- 732 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 14:32:40 ]
- >>731
エンベロープをつけろ。短い時間でフェードイン/アウトしろ。
- 733 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 14:33:44 ]
- >>731
ちょっとそれ聞かせてもらえる?
- 734 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 15:11:36 ]
- プチプチしたほうがモールスっぽいよ
- 735 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 20:39:15 ]
- >>731
自前でサイン波形出力してるなら0クロス地点(付近)でカットすりゃいいだけだと思うが、 そもそも、その「10」とかって値の単位はなんだ? モールス信号出力ライブラリみたいなのでもあんの?
- 736 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:18:14 ]
- 「信号が0に戻るまで待つ」=「0クロス地点(付近)でカット」ってことじゃないの?
- 737 名前:731 mailto:sage [2008/07/18(金) 23:42:24 ]
- >>732
エンベロープ調べてみます。アタック・ディケイをかけろということでしょうか。 短い時間なのでフェードを使うという発想はありませんでした。試してみます。 >>735 >>736の通りです。数字は単なる例示なのであまり深く突っ込まないでください。
- 738 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 06:47:15 ]
- 多分、フェードインやフェードアウトの処理は数ms〜数十ms程度の時間で良いはず。
アマチュア無線機で、この時間を調整してキークリックを低減するという改造記事を 見たことがあるし、セットモードで調整可能なメーカー製トランシーバーもある。
- 739 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 18:25:11 ]
- 時間分解能があまり重要じゃない解析において、
手法を短時間フーリエ変換からウェーブレットにする利点ってある?
- 740 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 23:52:06 ]
- ある
- 741 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 00:03:34 ]
- 具体的にどんなことですか?
- 742 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 00:36:27 ]
- >>741
テンプレートマッチングとかじゃね? 音声認識で使うみたいなの
- 743 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 00:41:43 ]
- FFTしたデータとのテンプレートマッチングでもいい気がするが
- 744 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 09:44:12 ]
- まあ、ウェーブレットも、マザーウェーブレットの種類次第では、
単なる窓掛け FFT でしかないし。
- 745 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:45:10 ]
- >>731
無音区間を0にするんじゃなくて、 そのまま保持してればいいんでは 10 9 7 7 7 7 7 7 7 って感じに。
- 746 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 10:49:26 ]
- …と書き込んでいいこと思いついた。
接線の傾きが大きいときにカットするからノイズになるというんだったら 0クロス地点じゃなくて、サインカーブのてっぺん つまり10、-10の時点で発振を止めて保持すればいいんじゃないかな。 10 9 7 5 3 2 0 -2 -3 -5 -7 -9 -10 -10 -10 -10 -10 -10 こういうことだ。
- 747 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 13:03:20 ]
- >>746
それ、オーディオ回路にダメージを与えかねないんじゃね? まんま直流電圧掛けることになるからコイル系の素子に過電流が流れそうだ。
- 748 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 13:47:38 ]
- >>744
そうかな?
- 749 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 18:50:24 ]
- >>748
コンセプト抜きにして、数式上はね。 ガボールウェーブレットとか、ガウス窓の FFT でしかない。
- 750 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:50:35 ]
- >>746
直流成分 通常はD/Aコンバータのハイパスで取り除かれるかれるとは思うけど、 この手のプログラミングではやっちゃわないように気をつけるべきところでっせ
- 751 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 04:09:42 ]
- >>749
窓掛けFFTは時間単位、ウェーブレットは波数単位とかではなかったっけ
- 752 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 12:59:42 ]
- C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/874 874 名前:デフォルトの名無しさん[sage] 投稿日:2008/07/22(火) 12:01:38 御婆ちゃんになるにつれて、声が甲高くなるゲームを作成してるのですが お勧めの関数はなんですか? 今自分ではiostreamとint(void)に目をつけています。 アドバイスよろしくお願いします
- 753 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 22:04:29 ]
- さすが天才は目の付け所が違うな…
それよりロリぃ声を再現する関数が欲しい
- 754 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 01:04:02 ]
- 年取るにつれてしわがれた声になるのは
喉にディストーションエフェクタをつけるようなもんだから ということは逆にディストーションをクリーンにするエフェクタがあれば って、うーん・・・
- 755 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 10:48:56 ]
- リアルタイムで波形を描画するプログラムを作ってますが、
MM_WOM_DONEが帰ってきたタイミングで波形を描画すると 音声再生が完了する前に波形を描ききってしまいます。 ネットの情報では音声再生が完了した場合にMM_WOM_DONEメッセージが返ると書かれていますが、 実際はMM_WOM_DONEメッセージが音声再生が完了したタイミングで返るのではなく、 デバイスに音声データを送信し終えた段階で返ってきているということなのでしょうか?
- 756 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 11:01:31 ]
- 大きいバッファ一つだとそういう感じになるね。
waveOutPrepareHeader で小さい領域を数個作って ソレを繰り返し使いまわすようにするといい
- 757 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:16:58 ]
- なるほど。ありがとうございました。
- 758 名前:デフォルトの名無しさん [2008/08/19(火) 05:57:23 ]
-
>>605 使えるよ。めちゃくちゃ情報量多いのでレファレンス本として使ってる。 エフェクタの実装でつまったときとかに眺めてる。 歴史を網羅してる本(ちょっと古い)なんだけど、 アナログにおける実装とかをデジタルに落とすときに参考になる。 まあバイブルなんで、もっといたほうがいいと思う。
- 759 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 22:33:25 ]
- >>605
原書の方が良いよ。
- 760 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 06:52:16 ]
- ウェーブデータから指定した周波数をカットする関数はありますか?
- 761 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 07:36:34 ]
- そりゃぁ、作ればあるだろうけど……
- 762 名前:デフォルトの名無しさん [2008/08/28(木) 01:40:14 ]
- >>760
FFTして所望の周波数部分削って逆FFTしろ
- 763 名前:デフォルトの名無しさん [2008/08/28(木) 01:42:45 ]
- ところでDirectAccessってその後どうなったのか
- 764 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 18:42:37 ]
- バンドパス処理する場合にはFFTして通過させる以外の周波数の振幅を0にしてIFFTするだけでいいの?
- 765 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:12:40 ]
- >>764
それでできるけど、FFT でやるとブロックノイズ対策が面倒よ。 普通に FIR とか IIR でバンドパスフィルタ作った方がいいと思う。
- 766 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:48:27 ]
- なぜブロックノイズが生じるのですか?
- 767 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:53:14 ]
- FFTは2^nサイズで処理するじゃない
- 768 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:56:14 ]
- データを全区間にわたってFFTするならブロックにならないけども。
データ長次第か。
- 769 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:35:27 ]
- 終端のところは、前部分とオーバーラップさせて2^nにしたらダメですか?
- 770 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:07:00 ]
- >>769
まあ、それがブロックノイズ対策。 FFT の変種で MDCT ってのがあって、 オーバーラップさせて周波数領域で処理するんならそれ使うのが楽かも。 とはいえ、やっぱり FIR とかを避ける理由がよくわからん。
- 771 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:35:21 ]
- わかりました。FIR使ってみます。
避けたのは勉強してないからです
- 772 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:40:15 ]
- FFTを使えばパワースペクトルが得られるってのは、スペアナの実装でよく知られているし、よく目にするからでは。
あとFIRはフィルタの設計法が分からんとか。 昔の俺がそうだったんだが。
- 773 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:51:53 ]
- >>772
まさにそうですwww FIRすればFFTいらないんですか?
- 774 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:53:19 ]
- winampのグライコってどんな仕組み?
- 775 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 00:06:57 ]
- 俺は逆にFFT使う方法がわからん。
FFTして、弄りたい周波数の実部と虚部に係数かけてもどしゃいいだけ?
- 776 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 00:54:32 ]
- >>770
MDCTはDCT-4だから、ライブラリ選ぶかもね まぁfftw使えば選べるけど >>771 >>773 位相を見ないのならDFT(いわゆる普通のFFT)よりDCTの方が良いよ (境界条件の関係)。 DCT前の窓処理がほぼ不要で、オーバーラップのみで結構まともに仕上がる。 FIRは時系列処理で、それと等価な処理が DFT(+オーバーラップ) でDFTの高速化アルゴリズムがFFT
- 777 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:55:05 ]
- こんなスレあったのか
知らなかった。。。
- 778 名前:デフォルトの名無しさん [2008/09/26(金) 04:42:11 ]
- ようこそ、ラッキー7。
ここはム板でももっともマニアックなスレです。
- 779 名前:デフォルトの名無しさん [2008/09/26(金) 05:04:35 ]
- 776が言っている境界条件の関係が非常によく分かるページ
ttp://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/advanced/dct/ 2次元DCTだが許せ。
- 780 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:25:21 ]
- 俺もそのうち二次元に行くから許してやるよ。
- 781 名前:デフォルトの名無しさん [2008/09/26(金) 15:30:40 ]
- 2次元のFFTとか感覚的によくわからないんだよな。
音をFFTすると時間分が圧縮できるのは分かるが、画像をFFTして圧縮できるのはなぜ? 誰か教えてくり。
- 782 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 16:05:28 ]
- だが断る
- 783 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 18:22:13 ]
- >>781
イメージ的にだけど、 2次元のDCT=ある方向に濃淡が変化するレート で、写真って一つの色に近い値に染まっている箇所がほとんど (急激な変化は物体との境界にある)だから、例えば64x64の画像に DCTをかますと、それは低周波数に集中する。 そこに音響で言えば周波数マスキングのような 心理的な情報を考慮させた量子化をすると、いい具合に低周波数 以外の部分が同じような値(0に近い値)になる。 同じような値が多いからエントロピーが少ない。だから、それに ハフマン符号なんかをかますとファイルが圧縮できる。 間違っていたら訂正お願いします。
- 784 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 19:45:56 ]
- 分かってるやつには分かるが分かってないやつには分からない
結局教科書読めって話になる
|

|