- 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
- 610 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:29:26 ]
- >>607
アマゾンのカスタマーレビューは参考にならないかな。 ttp://www.amazon.co.jp/gp/product/4501532106 >>607の「使える」の定義が分からないので的外れだったらごめん。
- 611 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:43:33 ]
- 本が「使える」かどうかなんて、オカズになるかどうかに決まっているじゃないか。
- 612 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:46:53 ]
- 山羊かよ!
- 613 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:46:54 ]
- >>610
Amazon.comの原著のレビューはもっと熱いぜ www.amazon.com/review/product/0262680823?showViewpoints=1
- 614 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 13:56:04 ]
- >>611
ゴメン、君がその〜、童貞? だとは思わなかったから……
- 615 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:35:58 ]
- waveInGetPositionを使って録音中の場所を知り(場所がa[p]だったとする)、
a[p-1024]〜a[p-1]までのメモリを読んでみると、 どうもa[p-500]とか以降は、まだデータが書き込まれていないことが多い。 こういうものなの?
- 616 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:27:00 ]
- まさかとは思うが、short a[] なのに、p = mmt.u.cb とかってオチじゃねぇだろうな?
- 617 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 08:05:47 ]
- >>616
TIME_SAMPLESを指定しています。 まあ、waveInGetPositionで得た値から500を引いて使えばいいので、 困っているわけではないんだけど、何かすっきりしなくて。
- 618 名前:デフォルトの名無しさん [2008/05/30(金) 16:52:58 ]
- 学校の授業で、dsPICをつかってイコライザを作ろうと思っているのですが。。。
CDなどから音声信号をとってきて、高速A/D変換してデジタルフィルタにかけ出力という 流れ(まだ構想段階なので)でいこうと思うのですが、具体的にこれからどのように実現していけば いいでしょうか。
- 619 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 20:58:59 ]
- 学校の先生に聞いて来い
そのために授業料払ってんだろ
- 620 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:03:01 ]
- 実は先生の方だって可能性もあるぞ。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:16:20 ]
- 恐ろしい可能性だなオイw
質問のレベルの低さから学生だと信じたいけど。 教えてクン的な釣りの可能性も。>ttp://www.redout.net/data/osietekun.html
- 622 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:12:23 ]
- 正直 CDレベルの音質に対して dsPICってのはどうかな
16bitのDSPじゃ倍精度の演算に挑戦しないといけないぞ イコライザが高域だけにするか、 サンプリングを11Kとかに落とすんならなんとかなるか
- 623 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 10:55:48 ]
- >>618
プログラム板なのでソフトウェアに限定すると、 入力部とイコライザ部と出力部を実装するといいんじゃね
- 624 名前:デフォルトの名無しさん [2008/06/01(日) 22:30:36 ]
- 三角波や矩形波でAの音を鳴らす・・・くらいのプログラムから始めたい初心者なのですが、
まずは何から勉強したらいいのでしょうか? 言語はC、Javaあたりならなんでもいいです。。
- 625 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:41:28 ]
- 鳴らすてのがどのくらいのレベルでやりたいのかわからないけど
とりあえず任意の波形をWAVファイルを書き出せるようにやってみたら? WAV形式で作れるようになったら鳴らすのもAPIで出来る。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 05:58:34 ]
- >>624
言語に関しては熟知してるという前提で話するけど、 サイン波を画面に描画するのと同じ要領で音声出力に書き出すだけ。 書き出し方は環境に依存するけどWinでいいなら>>19辺りに解説がある。
- 627 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 10:11:22 ]
- >>624
ドレミの基礎。A4が440Hzとかそういうとこから。
- 628 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:04:47 ]
- 採譜の達人ってあるじゃん
あれってどういうアルゴリズムだとおもう?
- 629 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:54:29 ]
- 十数msec程度毎にFFTし各周波数を観察してノートオン/ノートオフを検索。
マッチングは単音ファイルの周波数の分布から。>倍音成分を多く含む音に対してsine.wavを割り当てると倍音も全部拾っている 12音階で近いノートに割り振るというアルゴリズムなので周波数の揺れる音色が取れない。>和音優先だから当然 みたいな感じじゃね?
- 630 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:44:10 ]
- >>628
どう見てもウェーブレット。単音をマザーウェーブレットにして変換するだけ。
- 631 名前:624 mailto:sage [2008/06/04(水) 00:33:42 ]
- おかげさまで出来ました。
ありがとうございます。
- 632 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:20:09 ]
- 先輩方にお聞きしたい。
次のプロジェクトでサウンドプログラムの担当をすることになりました。 (社内含めてサウンドプログラムを経験している方がいないけど) サウンドエンジン作れとのことですが、 経験則でいいのでどんなモノにしたらいいのか指針にしたいのでご意見下さい。 こんな出だしからして、音関係の知識はほぼありません。 「こういう勉強しろ」みたいなものやサイトがあればぜひ教えてください。 よろしくお願いします。
- 633 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:39:48 ]
- >632
お前の言ってる事は、 「今日からプログラマーになりました、何から勉強したらいいですか?」 っつーレベルだぞ。 何で使うシステムなのか、ハードのアクセラレーションはあるのか、 ドライバレベルなのかライブラリレベルなのか、何がしたくてどういった要求なのか。 全部スッポリ抜けてる。
- 634 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:03:14 ]
- というかどんなプロジェクトなんだか。
単純に考えてコンポーザとかゲームか。 なんだかんだ言ってサウンドはマイナーというか特殊扱いというかあまり扱わないよね。 WAVEの曲を背景にして効果音を鳴らすんなら音を足すだけでいい。 音階とかやるんなら周波数変えて合成とかする必要がある。 多分本当に初歩から勉強したいんだろうけど とりあえずリアルタイムな事は置いといてWAVEファイルの作り方とか 簡単な波形の音の作り方とかそれで「ドレミ」を鳴らしたり和音にしたりとかから入るといいかも。 そのあたりはググれば見つかるんじゃないの。 リアルタイムな鳴らし方はWindowsならAPIかDirectX関連で探して。 他は知らん。
- 635 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:11:07 ]
- 今色々教えても、それを>>632が取捨選択できるようには思いにくいなあ。
やみくもに実装だけ覚えても結局何も作れないと思うので、 >>632はまずは大まかにでもいいから仕様を決めた方がいいように思う。 (それがわからないとレスもし辛いような) 例えば単にベタのWAVファイルを鳴らすだけでいいのか、 ループも含めたBGMとして鳴らしたいとか、効果音も鳴らしたいとか。 プラットフォームは何で、それがどういう機能を持ってて、 それを補うために何を作って何を作らなくて良いのか、とか。 そうすれば何を覚えればよいのか自ずとわかるんではないだろうか。 偉そうでゴメン。
- 636 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:01:58 ]
- www.musicdsp.org/index.php
こういったたぐいの日本語サイトないかな?
- 637 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:47:17 ]
- ない
- 638 名前:632 mailto:sage [2008/06/07(土) 09:29:34 ]
- 633,634,635>>
本当にすいません、指摘のまんま基本的な情報が抜けてました。 プロジェクトはPS3のゲームです。 詳しい要望が出てきてないので、設計をどうしたらいいかと悩んでました。 自分ではBGM,SEを単に流す程度しか思いつかず、 ゲーム系でサウンドエンジン作った方がいれば、 どんな機能をいれたのか知りたかったわけです。 633>> ありがとうございます、おかげで少し落ち着きました。 初めての事でビビり過ぎてたと思います。言われて我に返りました。 634,635>> PS3で何が出来るのかを探してはいるのですが、 音楽知識が無いままドキュメントを読んでるので、 自分では理解が不十分な感じがするのです。 なので、デジタルサウンドの基礎から勉強しなければと思いました。
- 639 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:15:46 ]
- PS3のゲーム作れるとはすごいなぁ。
- 640 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:04 ]
- ゲーム機ならライブラリとサンプルがあるはずだから基礎研究ならその辺弄ってあそんでりゃおk
プロジェクト進行中ならチーフなり企画なりから何らかの仕様が降りてきてんじゃね?
- 641 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:54:02 ]
- 3Dとかのエフェクトエンジンなのか
MIDIデータとかの再生エンジンなのか ボイスとかのエンジンなのか それとも全部一式? 一人ではキツイだろな
- 642 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:16:31 ]
- バグゲーになりそうな悪寒。
- 643 名前:632 mailto:sage [2008/06/08(日) 02:36:15 ]
- 641>>
「MIDIも使いたいかも」みたいのは聞いた覚えがありますが、 上からの正式要件ではないので、一応対応するつもりです。 あとは5.1ch対応と3Dエフェクト(?どこぞの方向から音がする感じ)も…。 ちなみにボイスのエンジンとはどんなことするんでしょう。 なんかボイスの管理がどうとかリファレンスにあったけど、 音とは違うのだろうか。 バグゲーにはならないように頑張ります。 初めて一人で任された仕事なので、上でも一喝されてますしなんとかやってみる。 厳しいと感じたらまたアドバイスや気合もらいにきます。
- 644 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:49:05 ]
- ここは電話じゃないのか(´・ω・´)
- 645 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:49:54 ]
- ごばく
- 646 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:33:43 ]
- ttp://www.cri-mw.co.jp/products/product_index_j.htm
どうせライセンスを買う金が勿体無いから同等の技術を開発しろってところだろうな
- 647 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 20:52:32 ]
- ライセンス買っておけば不具合があっても相手持ちにできるのに…
自社で作ったら自分で責任取らないといけないよな
- 648 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:03:43 ]
- CRIのは高いだけで良かった記憶ねぇなぁ。
- 649 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 02:04:43 ]
- >632
PS3の仕様は知らんからなんとも言えんけど 効果音とボイスは違うんかいな。 いや、PS3だ。違うかもしれない。
- 650 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 10:07:57 ]
- ノベルゲーでも作るんだろ
ボイスはストリーム、効果音とBGMはオンメモリ・MIDIシーケンスで みたいな?
- 651 名前:デフォルトの名無しさん [2008/06/09(月) 23:58:40 ]
- 話ぶったぎってすいません、
デューティ比が50%である矩形波は普通の音に聞こえるのですが、 25%、12.5%になると雑音が混じったような音が出ます。(ビー、ガガガなど) これはサンプリングレートと音程の関係でこうなってしまうのでしょうか? また、なぜ50%の時はこういった雑音が入ってないように聞えるのでしょうか?
- 652 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:36:26 ]
- 50%の時が一番サイン波に形近いからなぁ。
逆に、12.5%のとかは、クリック音が並んでるような音に近い。
- 653 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:54:00 ]
- >>651
それぞれの周波数成分見れば一目瞭然
- 654 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:26:25 ]
- >>651
50%だけ普通ってのはわからんが、 サンプリングレートに対して、半端な周波数を鳴らしているんじゃないのかな。かつ波形処理が簡易的な出力。 そうすると、山や谷の部分の間隔が1サンプル多い部分とそうでない部分とが出てくる。 それを聞くと、周波数の違う音が混じって、汚く聞こえる。
- 655 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:02:16 ]
- ビーはともかく、ガガガは確実に元の周波数より長い周期でうなってるな。
だから、>>652-653の理由だけでは説明が付かない。
- 656 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 10:28:57 ]
- 波形うpしろ、解析してやっから
- 657 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:54:43 ]
- >>651
定サンプリングレートだと、サイン波より矩形波の方が難しい波形なんだよ。 普通に0,1で出せると思ってたら甘いよ。 過去ログを見てみるといいよ pc5.2ch.net/tech/kako/996/996171508.html
- 658 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:35:41 ]
- なるほどなぁ、矩形波生成した時点ですでにエイリアシングノイズがのってるのか。
- 659 名前:651 [2008/06/10(火) 21:02:12 ]
- 過去ログ読みました。勉強になります。
>>651については>>654さんのおっしゃるとおりだと思います。 現在は、 フェーズの増加 phase+=( freq*(PI*2/sampleRate) ); 値を返す val=(phase<PI/8)? 1.0:-1.0; こんな感じで補正が全くありません。 phaseにLPFをあてて倍音をカットすればいいのでしょうか? 無知ですいません。。
- 660 名前:632 mailto:sage [2008/06/11(水) 01:27:24 ]
- >>649
私も「ボイスって声?だよな…」と一瞬考えたのですが、 ドキュメントの文脈と合わないので質問してみたんです。 で、調べてみるとシンセサイザとかで言う「音色」のことのようでした。 ドキュメント自体にそのように明言されていないので自信ないですが、 きっと音楽系の仕事をしてる人にはありきたりな内容かも知れません。 そんな感じで資料読むにも、 電子方面の音楽知識や単語を勉強したいところです。 「ディジタル・サウンド処理入門」って本でも読んでみます。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 07:15:54 ]
- >>659
パルス=デルタ関数の帯域カットしたデータを 4〜32倍のオーバーサンプリングした結果をテーブルとしてもって おいて 8倍なら ( round(phase*8) mod 8) から 8個単位のこのテーブルを引き その結果を立ち上がり側なら積算、立下りながら減算する。 最初からデルタ関数ではなく、ステップにしたら良いと思うだろうけど 周波数が高くなってくると、デルタ関数同士がオーバーラップするようになるから デルタ関数を積分した方が良い。
- 662 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:38:33 ]
- >>659
僕は、画像で言うアンチエイリアスの様な方法をやりましたが(画像処理での方法は知らないが結果的にそうなった)、 普通に聞く分には全く問題ないものの、良〜く聞くと若干ノイズが聞こえる。 綺麗な矩形波は ttp://www.slack.net/~ant/bl-synth/ これを使ったエミュレーターの音は、全くノイズが聞こえないです。
- 663 名前:651 mailto:sage [2008/06/11(水) 23:01:14 ]
- なるほどです。
>>662の帯域制限は>>661と同じ事なんでしょうか。(難しい…) >>659のコードを、 phase+=freq; val=(phase<(sampleRate/8))? 1.0:-1.0; こんな感じで書き直したら、以前あったノイズはなくなりました。 (VirtualNES(NSF)で鳴らした音と比較してます) なんでノイズが消えたのか、よくわかってませんが・・・。 とりあえずこれで作成してみようと思います。 >>661>>662の方法はまだ理解できないのでこれから勉強します。 ありがとうございました。
- 664 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 08:20:38 ]
- > >>662の帯域制限は>>661と同じ事なんでしょうか。(難しい…)
方式が違う。 662 はサイン波合成で矩形波を作っている。 リアルタイム合成するにはサイン波を1,3,5,7の奇数倍周波数で位相を合わせて作れないといけない。
- 665 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:49:51 ]
- サウンドプログラミングを学ぶためにローパスフィルタを作ろうと考えました。
方法としては波形データ→FFT→特定の周波数以上のところを0に書き換え→逆FFT というのを考えたんですが、いざコーディングするとなると全く出来ないです。 wavデータを順番に配列に突っ込むというのは出来たんですが・・・ なにか参考になるサイトなどありますか?
- 666 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:05:18 ]
- >>665
Wikipedia。デジタル・フィルタの基礎から勉強したほうがいい。 そのあとで↓ www.musicdsp.org
- 667 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 18:19:07 ]
- >>666
英語はきついっすw
- 668 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 19:48:34 ]
- じゃぁ本買いな
- 669 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:33:30 ]
- 勉強する気もねぇ乞食かよ・・・
- 670 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 03:10:02 ]
- >>632
多分ゲームで必要になるのはストリームしながら再生、停止。 メモリに常駐している音(効果音、クリック音)の再生。 それらの音のボリュームの全体操作。 (画面が切り替わった時に前の効果音が残ったりしちゃうから。) サウンド用の領域が溢れた時に音を鳴らさない、その旨を伝える手段。 場合によってはストリーム音のクロスフェード (前の音を段々小さくして変わりに次の音を徐々に入れていく。) それはなくても徐々に音を消す処理は必須。(いきなり消すとノイズが入る。) この辺はハードが色々用意してくれてるだろうから、勢いでなんとかなる。 一番大変なのは、どの場面でも必要になるサウンド処理は、別スレッドで管理されることが多い。 サウンドはスレッドセーフで作らないと後で大変なことに。 後、BGMをストリームで流すとディスク上で常にシークが入る。 ロードを頻繁にするデータは、ディスクの外側よりBGMの隣にデータを配置した方が早くなる場合もある。 昔、隣の席でゲームのサウンドを開発している人を見た感想でした。
- 671 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:50:28 ]
- ,,,,,,,,,,_
,ィヾヾヾヾシiミ、 rミ゙`` ミミ、 {i ミミミl i゙i ,,,ノ 、,,-=、 ミミミ サウンドプログラム {_i=・}-{_=・`} ̄レゥ:} l ̄,,,,_,゙ ̄` :::ン フフン |/ _;__,、ヽ..::/l ヽ.~ニ~ ' .::::ノ/ }\_ _,,.-‐' `ー '"::/ / |  ̄`''ー-、 r‐''" ./ i\/ / | / ヽ / / | /;;;ヽ、 l ヽ / ノ /}
- 672 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:56:49 ]
- シミュ系のプログラムやってる人おる?
昔のビンテージエフェクターの回路図をソフトウェアでシミュとか
- 673 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:55:44 ]
- いけいけどんどんて
- 674 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:30:15 ]
- >>668
どんな本が良いですか? そもそも公式に書かれた記号の意味が分からない 俺のようなものでは読むだけ無駄ですか? orz
- 675 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:53:08 ]
- 勉強しろ
- 676 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:27:42 ]
- OHMの「マンガでわかるフーリエ解析」辺りから入ればいいんでねぇの?
- 677 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:41:08 ]
- 音声をFFTして周波数領域でなんか処理してるプログラムのソースないですか?参考にしたい
- 678 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:17:21 ]
- キーコンをFFTで周波数領域でやってる人がいたと思うけど
granul 分割統合法の方がシンプルで良好なようだよ。 ほかにはFFTはタップ数の多いFIRフィルタを計算するのに 計算量を減らすのに使われる。 周波数軸上で直接加工するのは難しいよ
- 679 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:51:17 ]
- 音声の実信号x[n]があります。
↓ 点数4096のFFTをかける ↓ 4096/2個のDFT値(実部と虚部) Xr[n] Xi[n]を得る。 ↓ パワースペクトル計算し xp[i] = Xr[i]*Xr[i] + Xi[i]*Xi[i] 対数とってdbに db[i]= 10*log[10] xp[i] という手順でスペクトル解析するプログラムを組みました。 入力として1khzのsin波を入力すると 1khz付近の値が一番大きく130[db]ぐらいになります。 これは正しい しかし、10khzでも値が50ぐらいあって、 他にあるスペアナのように綺麗にピークがでません。 原因とかわかりますか?困っています
- 680 名前:679 [2008/06/28(土) 14:37:47 ]
- あと窓関数としてハミング窓かけています
- 681 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 14:42:02 ]
- 80db差って10^8ってことだよねえ
- 682 名前:デフォルトの名無しさん [2008/06/28(土) 16:37:27 ]
- って事は別に普通だということですか?
フリーのスペアナだとそんなことはないんですが
- 683 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 18:19:11 ]
- 入力x[n]のパワーは?
窓関数外した時の結果は? S/Nの閾値は?
- 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 ]
- 元には戻さないんですが
いいのかな?って思うんです
|

|