0

フェーズボコーダーで数週間苦労してきました。最終的な目標は、信号のタイム ストレッチを達成することです。私は多くの進歩を遂げてきましたが、まだ解決すべき問題が 2 つあります。

問題 1 : 合成ウィンドウは必要ですか?
任意のホップ サイズ (たとえば、N/2、N = フレームあたりのサンプル) で、入力信号 (正弦波) からオーバーラップ フレームを取得します。フレームにハニング ウィンドウを適用し、結果を FFT にフィードします。時間ストレッチを実現するために、iFFT を実行し、分析中に使用したホップ サイズとは異なるホップ サイズを使用して、出力フレームをオーバーラップ加算します。
問題は、出力ホップ ファクター = 0.5 (ホップ サイズ = N/2) の場合、出力はスムーズですが、ホップ サイズが大きくなると「振動」が聞こえることです。この画像は、ホップ ファクター = 1 (オーバーラップ ゼロ) の 8 フレームの出力を示しています。音が振動している理由は明らかです。ホップ サイズが小さい場合、フレームはより多くオーバーラップし、サウンドはよりスムーズになります。フェーズボコーディングについてはたくさん読んだことがありますが、しかし、ホップサイズが大きい場合にスムーズな出力を取得する方法がわかりません。私は何が欠けていますか?

ここに画像の説明を入力

Issue2 : 位相補正。
現在、出力は位相補正で悪化していますが、それは別の投稿に譲ります.

お時間を割いていただきありがとうございます。

4

1 に答える 1

1

私はこれに関しては素人ですが、たとえば N/10 などの「ホップ サイズ」など、より大きなオーバーラップで開始した場合、より良い結果が得られませんか? そうすれば、実質的なオーバーラップを維持しながら、出力時にそれを調整する自由度が高まります。

また、時間をどれだけ拡大/圧縮しているかに応じて、ウィンドウの急峻さを調整すると費用がかかる場合があります。

于 2014-03-08T00:12:29.057 に答える