IFFTでの波形への変換

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tlnlniri

IFFTでの波形への変換

#1

投稿記事 by tlnlniri » 13年前

C言語についての質問ではなくてすみません。

ハニング窓→FFT→実部・虚部値の操作→IFFTをすると両端が0の波形になりません。
(ハニング窓→FFT→IFFTでは両端がちゃんと0になります)
これを解決する方法は無いのでしょうか?
両端に0を代入するということではありません。

http://www.cqpub.co.jp/hanbai/books/30/ ... 1_6syo.pdf
の最後の方を見ると波形が広がってると書かれているのですが...

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: IFFTでの波形への変換

#2

投稿記事 by h2so5 » 13年前

PDFに書かれているとおりに後半に0を挿入し、
IFFTの後に広がってしまった波形を圧縮して元の時間で両端が0になるようにすればいいのでは?

(あんまり意味ないですが)IFFTの後にさらに窓関数を通せば強制的に両端を0にできます。

tlnlniri

Re: IFFTでの波形への変換

#3

投稿記事 by tlnlniri » 13年前

h2so5さん返信ありがとうございます。

「後半に0を挿入し~」というのは
「[データ]0000」(合計4096サンプル)といった感じでいいのでしょうかね?

あと、IFFTの後にハニング窓をかけたら音が歪みましたのでだめです。

tlnlniri

Re: IFFTでの波形への変換

#4

投稿記事 by tlnlniri » 13年前

どのくらい波形が広がるのか推測することはできないでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: IFFTでの波形への変換

#5

投稿記事 by h2so5 » 13年前

専門ではないので詳しくは分かりませんが、普通に考えるとスペクトルの操作によって低周波成分の割合が増加すれば波形は広がるはずです。
逆に言うと高周波成分の操作では影響が少ないということです。

どれだけ0を挿入すればいいかは実際に試してみないと何とも言えないかと。

tlnlniri

Re: IFFTでの波形への変換

#6

投稿記事 by tlnlniri » 13年前

せっかくh2so5さんに考えてもらったのにすいません。
他の方法で解決できましたので書いておきます。

今まで、周波数領域で数値にかけるのを
| ̄|(理想フィルタみたいなの)
にしてました。(IFFTで両端が大きく0からずれる)

それを、
/\(ロールオフ的な)
にしたら両端が0に近い数値になり音にノイズが入らなくなりました。

今回解決に至るに下記のサイトがヒントになりました。
http://okwave.jp/qa/q6679995.html

閉鎖

“C言語何でも質問掲示板” へ戻る