タグ付けされた質問 「stft」

2
言葉で説明されている逆短時間フーリエ変換アルゴリズム
順方向および逆方向の短時間フーリエ変換(STFT)が離散時間領域信号に適用されたときに何が起こっているかを概念的に理解しようとしています。Allen and Rabiner(1977)による古典的な論文とWikipediaの記事(link)を見つけました。ここにも良い記事があると思います。 Gabor変換の計算に興味がありますが、これはGaussianウィンドウを使用したSTFTに他なりません。 これは私がフォワード STFT について理解していることです: サブシーケンスは、時間領域要素から構成される、信号から選択されます。 サブシーケンスは、時間領域におけるポイントごとの乗算を用いて窓関数が乗算されます。 乗算されたサブシーケンスは、FFTを使用して周波数領域に取り込まれます。 連続する重複するサブシーケンスを選択し、上記の手順を繰り返すことにより、m行n列のマトリックスを取得します。各列は、特定の時間に計算されたサブシーケンスです。これを使用してスペクトログラムを計算できます。 ただし、逆 STFTについては、重複する分析セクションの合計について説明しています。ここで実際に何が起こっているのかを視覚化することは非常に難しいと感じています。逆 STFT を計算できるようにするために何をする必要がありますか(上記のステップバイステップ順)? フォワードSTFT 私はフォワードSTFTのために何が起こっていると思うかを示す図面を作成しました。私が理解していないのは、各サブシーケンスをどのように組み立てて元のタイムシーケンスを取り戻すかということです。誰かがこの図面を修正するか、サブシーケンスがどのように追加されるかを示す方程式を与えることができますか? 逆変換 これが逆変換について私が理解していることです。連続する各ウィンドウは、IFFTを使用して時間領域に戻されます。次に、各ウィンドウがステップサイズ分シフトされ、前のシフトの結果に追加されます。次の図は、このプロセスを示しています。合計出力は時間領域信号です。 コード例 次のMatlabコードは、合成時間領域信号を生成し、STFTプロセスをテストして、数値丸め誤差内で逆変換が順変換の双対であることを示します。ウィンドウの中心を時間領域信号の最初と最後の要素に配置できるように、信号の開始と終了にはゼロが埋め込まれます。 Allen and Rabiner(1977)によると、周波数応答を変更するために周波数ドメインで乗算が発生する場合、分析ウィンドウの長さはポイント以上でなければなりませんはフィルター応答です。長さはゼロパディングによって拡張されます。テストコードは、逆変換が順変換の双対であることを示しています。循環畳み込みを防ぐために、長さを延長する必要があります。N 0N+ N0− 1N+N0−1N + N_0 - 1N0N0N_0 % The code computes the STFT (Gabor transform) with step size = 1 % This is most useful when …

3
STFTおよびDWT(ウェーブレット)
STFTは、いくつかの周波数領域の変更(例:ノイズ除去)を行うために、サウンドデータ(たとえば、.wavサウンドファイル)で正常に使用できます。(すなわち、10秒サンプリングレートで)、 、、STFTは近似的生成(:時間枠を、第2座標:周波数ビンを第1の座標)配列。この配列に対して変更を行うことができ、オーバーラップ加算(*)を使用して再構成を行うことができます。N=441000fs=44100windowsize=4096overlap=4430x4096 ウェーブレットで同様のことをどのように行うことができますか?(DWT)、つまりa x b、a時間フレームとb周波数ビンを備えた同様の形状の配列を取得し、この配列に何らかの変更を加え、最後に信号を復元しますか?どうやって ?overlay-addと同等のウェーブレットとは何ですか?ここに含まれるPython関数は何ですか(オーディオの変更の簡単な例は見つかりませんでしたpyWavelets...)? (*):使用できるSTFTフレームワークは次のとおりです。 signal = stft.Stft(x, 4096, 4) # x is the input modified_signal = np.zeros(signal.shape, dtype=np.complex) for i in xrange(signal.shape[0]): # Process each STFT frame modified_signal[i, :] = signal[i, :] * ..... # here do something in order to # modify the signal in frequency …
12 fft  wavelet  dft  python  stft 

4
ウィンドウサイズを大きくせずにFFTの周波数分解能を上げることはできますか?
マルチピッチ分析にSTFTを使用したいと思います。信号に存在する部分音を検出することはほんの始まりに過ぎないことを理解しています。まだ問題があります。 「CD」周波数でサンプリングされた信号があるとしましょう44100Hz。1024サンプルのウィンドウでは、周波数ビンの解像度がになり22500Hz/512=43Hzます。これが唯一のように見分けるの高いピアノのノートには十分です C5 = 523.251HzとC#5 = 554.365。 私1024は以前はかなり大きな窓だと思っていました。しかし、そうではないかもしれませんし、通常、パーシャルを検出するために大きなウィンドウが使用されますか? ウィンドウサイズを大きくする以外の方法で周波数分解能を上げると、時間分解能が悪くなりますか?私は2つの方法を考えました: 方法1: バンドパスフィルターを使用して、信号を周波数帯域に分割します(0-11.25Hzおよびなど11.25-22.5Hz)。 元の高周波数が低周波数になるように、より高い帯域をダウンサンプリングします(2番目の帯域でも同様です11.25-22.5Hz -> 0Hz-22.5Hz)-これが可能かどうかはわかりません。 結果のビンセットを調整されたラベルで連結します。 方法2: 制限を増やしながら一連のローパスフィルターを使用します。 増加する周波数範囲でFFTを実行します。 各周波数に対して、可能な限り最適な解像度(この周波数が含まれていた最初のFFTからのビン)を使用します。 これにより、低周波数の解像度が向上しますが、音が高いほど周波数の差が大きくなるため、これは問題ないと思います。 この問題についての発言に感謝します。 ここも読んでください: ウィンドウサイズ、サンプルレートはFFTピッチ推定にどのように影響しますか? ピークピッキングの結果を改善する方法について。使ってみようと思います。
12 filters  fft  pitch  stft 


2
リアルタイムの人間のピッチ検出
私は生のマイク入力を分析し、プレーヤーに彼の歌がどれだけ上手かを伝える歌のゲームを実装しようとしています。それはリアルタイムで行う必要があります。 私は同じ質問をする多くのスレッドに出くわしましたが、おそらくフィールドでの経験の不足と浅い数学の背景が原因で、私はまだそれで完全に終わっていません。DSPDimension Webサイトのピッチシフトの記事に基づくアルゴリズムを実装しました:http ://www.dspdimension.com/admin/pitch-shifting-using-the-ft/ 記事で説明しているように、真の周波数と振幅を抽出しますが、これで基本周波数を見つけることはできません。私は最大の大きさでビンを取得しようとしましたが、それはより高いピッチの信号に対して正しい結果を与えるだけであり、どのオーバーサンプリング係数を使用しても問題はありません。このアプローチは完全に間違っていますか、それとも私は正しい軌道に乗っていますが、何か不足していますか? 前もって感謝します、 編集:私はピッチクラスにのみ興味があることを言及するのを忘れていたので、ファンダメンタルズが欠けていても大丈夫ですが、サンプルには強い倍音があります。 EDIT2:みんなのおかげで、魅力的なアルゴリズムのバージョンが完成しました。低ピッチ推定の問題は、入力テストによるものでした。私が音符を歌ったとき、それは正しく一致しました。また、最高のピークだけでなく、すべての高調波を検討しています。

3
ガボールモーレットウェーブレット変換と定数Q変換の違いは何ですか?
一見、定数Qフーリエ変換と複素ガボールモーレットウェーブレット変換は同じように見えます。どちらも、定数Qフィルター、ウィンドウ処理された正弦波などに基づいた時間周波数表現です。しかし、私が見落としている違いはありますか? 音楽処理用の定数Q変換ツールボックスは次のように述べています。 CQTは、周波数ビンが幾何学的に間隔を置いて配置され、すべてのビンのQファクター(帯域幅に対する中心周波数の比率)が等しい時間周波数表現を指します。 時間スケール分析は言う: つまりを中心帯域通過フィルタの一連の信号を通過さと同じであるウェーブレットモレットを用いて信号のCWT計算、であるf=5/2πaf=5/2πaf = \frac{5/2\pi}{a}定数とQ5/2π5/2π5/2\pi。

3
クロマサブサンプリング:データレートを適切に計算する方法
たとえばY'UV画像でクロマサブサンプリングを利用するときにデータレートを計算する方法を理解するのに苦労しています。 以下の計算例があります。 画像解像度:352*288 周波数:25 fps 以下のために(:4:4 4)以下のように計算例を行きます: (352px * 288px) * 3 color channels * 25 fps * 8 bit = 60 825 600 bit/s ここまでは順調ですね。 しかし、今来る(4:2:0): (352px*288px) * 1.5 color channels * 25 * 8 = 30 412 800 bit/s さて、この例を例(4:1:1)に変換しようとすると、1.5カラーチャネルの比率がどのように計算されるかを正しく理解しているかどうかわかりません。 計算の最初の推測は(4:2:0)の場合でした: 2/4*3=1.5 color channels 同様に(4:1:1)の場合、カラーチャネルの比率を次のように計算します。 1/4*3=0.75 color channels …

1
MatlabのSTFT実装spectrogram()の最大周波数解像度は何ですか?
Matlabのspectrogram()関数は、信号のSTFTを計算します。それはそのNFFT引数を次のように説明します: S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)離散フーリエ変換の計算に使用される周波数点の数を指定します。NFFTが指定されていない場合、デフォルトNFFTが使用されます。 NFFT周波数分解能と計算数の間のトレードオフであるという点で私は正しいですか?私のオフライン作業では、サイクルを節約する必要はありません。NFFTたとえばスペクトル漏れ、または私が知っておくべきその他の問題によって課される、の最大制限はありますか、またはその引数をできるだけ高く設定できますか?

2
短時間フーリエ変換(STFT)の時間分解能
STFTの時点がどのように計算されるかを理解するのに苦労していますが、決定的な答えを見つけることができません。4Hzの定常信号があり、3秒のオーバーラップがある64秒のウィンドウを使用するとします。つまり、256ポイントのウィンドウと12ポイントのオーバーラップです。 で開始しtime=0、最初の64秒を取り、FFT /パワースペクトル密度などを実行するとします。次に、それがの値であると言えt=32ますか?次のウィンドウは、3秒のスライドがにローカライズされた後t=35ですか? もしそうなら、そして私が本当に始めたいと思ったt=0なら、私は事実上から始めてt=-32、最初の128ポイントをゼロで埋め、最初の128ポイントを信号から取得しt=0ます。
8 fft  stft 

3
STFTでの窓関数の選択はどの程度重要ですか?
時間-周波数分析を使用してもつれを解こうとしている周期的な信号の合計があります。ウィンドウの長さと形によって、結果が大きく異なるようです。自動化された、うまくいけば逐次アルゴリズムを開発して仕事をしたいので、これは問題です。
8 stft 

2
加速度計信号の信号処理技術?
加速度計の測定値を記録するいくつかのテストを実行しています。この信号に信号処理の要素を使用することを検討していますが、どこから始めればよいか、または私のアプローチはどうあるべきかわかりません。 私の最終的な目標は、加速度の測定値をリアルタイムで監視し、event発生時に通知を表示できるようにすることです。約15万のサンプル時間を見ることができるように、event発生します。 このデータをリアルタイムで監視している場合、このイベントに対応するためにどのような信号処理技術を実装できますか? 短時間フーリエ変換(STFT)はオプションでしょうか? 私はPythonでデータを監視していますが、それらにはまともなSTFT関数があります。 この関数の引数は次のとおりです。 scipy.signal.stft(x、fs = 1.0、window = 'hann'、nperseg = 256、noverlap = None、nfft = None、 detrend = False、return_onesided = True、boundary = 'zeros'、padded = True、axis = -1) この信号の処理に使用する最適なパラメーターを決定するにはどうすればよいですか? event(加速度の大きさだけを使用するのではなく)リアルタイムで発生するタイミングを特定するのに役立つと思われる他の方法はありますか? 編集1: 私のSTFTは上に追加されています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.