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

高速フーリエ変換は、離散フーリエ変換(DFT)とその逆を計算する効率的なアルゴリズムです。

3
ウィンドウサイズ、サンプルレートはFFTピッチ推定にどのように影響しますか?
FFTから得られたパワースペクトルのピークの周波数を抽出するピッチ検出プログラムを作成しようとしています(fftpack)。クインの最初の推定量を使用してビン番号間を補間して、スペクトルからピーク周波数を抽出しています。このスキームは、特定の条件下でうまく機能するようです。たとえば、ウィンドウサイズが1024、サンプルレートが16000の長方形のウィンドウ関数を使用すると、私のアルゴリズムは純粋なA440トーンの周波数を正しく識別します440.06として、880.1の2番目の部分周波数。ただし、他の条件下では、結果が不正確になります。サンプルレート(例:8000)またはウィンドウサイズ(例:2048)を変更しても、最初の部分音は440として正しく識別されますが、2番目の部分音は約892のどこかにあります。このような非調和音の場合、問題はさらに悪化します。ギターまたはピアノによって生成されます。 私の一般的な質問は次のとおりです。サンプルレート、ウィンドウサイズ、およびウィンドウ関数は、FFTピークの周波数推定にどのように影響しますか?私の想定では、スペクトルの分解能を上げるだけでピーク周波数推定の精度が上がると思いましたが、これは明らかに私の経験ではありません(ゼロパディングも役に立たない)。また、スペクトル漏れはピーク位置を変更する必要がないため、ウィンドウ関数の選択はあまり効果がないと想定しています(ただし、今考えてみると、スペクトル漏れは、隣接するビンの大きさがピークは他のピークからの漏れによって人為的に増加します...)。 何かご意見は?
8 fft 

5
ハイダイナミックレンジ用の高速かつ正確な畳み込みアルゴリズム(FFTなど)
FFTベースのたたみ込みでは、1の根の周りのすべてを評価するため、浮動小数点の解像度が制限されているようです。 1014101410^{14}このPythonコードの-factorエラー: from scipy.signal import convolve, fftconvolve a = [1.0, 1E-15] b = [1.0, 1E-15] convolve(a, b) # [ 1.00000000e+00, 2.00000000e-15, 1.00000000e-30] fftconvolve(a, b) # [ 1.00000000e+00, 2.11022302e-15, 1.10223025e-16] この問題の影響を受けない高速畳み込みアルゴリズムはありますか? または、直接(2次時間)畳み込みが正確な解を得る唯一の方法ですか? (そのような小さい数が切り落とさないように十分重要であるかどうかは私のポイントの外です。)

4
FFTのサイドローブの直感
固定長の信号に対してFFTを実行するとサイドローブが発生する理由を理解する直感的な方法があるかどうか疑問に思っていましたか?
8 fft 

2
多次元信号の位相シフトと位相スペクトルの項
1D信号の位相について知っています。しかし、2D、3Dなどのより高い次元に行くと、コンセプトを把握するのが頭痛になります。 画像またはビデオ信号のような多次元(2D、3Dなど)信号の場合、位相シフトおよび位相スペクトルという用語は何を意味しますか? 位相項はどのように数学的に表されますか? 位相スペクトルをどのように分析しますか? 信号に関する位相スペクトルからどの情報を取得しますか? 誰かがプロットや図で説明できますか?

2
FFT周波数分解能
FFTの理解に問題があります。として計算されたスペクトルの周波数分解能は sampling ratenumber of FFT pointssampling ratenumber of FFT points\frac{\textrm{sampling rate}}{\textrm{number of FFT points}}または?sampling rate0.5 * number of FFT pointssampling rate0.5 * number of FFT points\frac{\textrm{sampling rate}}{\textrm{0.5 * number of FFT points}} これは、スペクトルが実数値の入力に対して対称であるためです。したがって、 Hzおよび = 1024であるとします。ここで、はFFTポイントの数です。さて、周波数分解能は Hzまたは Hzですか?fs=1000fs=1000f_s = 1000NNNNNN1000 Hz1024=0.97661000 Hz1024=0.9766\frac{1000 \textrm{ Hz}}{1024} = 0.97661000 Hz0.5∗1024=1.95311000 Hz0.5∗1024=1.9531\frac{1000 \textrm{ Hz}}{0.5 …

1
実際の信号にフーリエ変換が存在しない例は?
ここでこの質問に基づいて知りましたが、基本的に、フーリエ変換が存在しない場所に実際の信号が存在することはありますか?信号が有限エネルギーでない場合、そのフーリエ変換は存在しないので、そのような信号の実際の例(ある場合)は何でしょうか?

1
1 / nオクターブスムージング
FFTで取得した周波数応答を考慮して、1 / nオクターブ平滑化を適用します。どのフィルターを使用する必要がありますか?たぶん誰かが良い参考文献(この件に関する論文や本)を指摘するかもしれません。
8 fft  audio  smoothing 

3
FFTを使用するときに2の累乗を使用することはどのくらい重要ですか?
ここに問題があります。データの2D配列があります。最初の列は時間データを表し、2番目の列は時間データに基づく正弦波応答データを表します。私はfftを適用し、予想どおり特定のビンで私の周波数(最初に使用したもの)を取得し、そのビンから振幅と位相角を見つけます。今問題は同じ設定ですが、より多くのデータポイントを使用して、fftを再度適用し、ビン番号を変更します(これは正常であり、期待どおりの場所です)、振幅は同じですが位相角違います)最初にこれは正常ですか?第二に、私はどのようなアプローチを取るべきですか?ありがとうございました PS:どちらのセットアップ(上記)も2の累乗の長さのデータを提供しません。たとえば、最初のものは1620データポイントを提供し、2番目は1745データポイントを提供するため、両方から次の2の累乗を取る必要があります。はじめに?
8 fft  phase 

3
信号を共役対称にする方法は?
以下の簡単な周波数領域バンドパスフィルタリング操作を考えてみましょう。。。 NFFT = 128; x = randn(NFFT,1); H = zeros(NFFT,1); H(10:20) = 1; y = ifft(H.*fft(x), 'symmetric'); ifft演算に共役対称フラグを使用しているため、これにより実際の出力が得られます。 Hの共役対称バージョンを返す関数が必要なので、Matlabのifftの組み込みの対称オプションに依存する必要はありません。NFFTには任意の正の整数を指定できます。これはこのようなものと呼ぶことができます。。 H(10:20) = 1; H = MakeConjSym(H);

1
画像のノイズ除去でFFTを正しく適用する方法
画像からノイズを取り除くためのプログラム(Qtウィジェット/ c ++)を書いています。ノイズ除去方法として、非局所平均法を選択しました。この方法は、復元された画像の信じられないほどの品質を持っています(それがOpenCVで唯一のノイズ除去方法である理由です)が、計算コストが非常に高いため、この方法の多くの変更されたバリアントを作成しました(一部はマルチスレッド化、一部はアルゴリズム処理)。しかし、私はFFTを含む問題を抱えています 私はこの記事のすべての手順(1ページのみ、1430)を実行しましたが、FFTの部分を除いてすべてが完全に機能します。紙には2行しかありませんが、理解できません。 この問題は何ヶ月もの間私を悩ませてきました、どんな助けや洞察も大いに応用されます。 質問の短縮版:画像上の2つの配列の合計平方差(上に1つ、中央に1つ、値は色)をすばやく取得するにはどうすればよいですか?(O(n ^ 2)は莫大なコストであり、この種の演算はたくさんあります(上記の論文による)、これはO(n * log n)でFFTを介して行うことができます(この2つの配列が何らかの形で循環たたみ込みを形成していると言います) )

2
隠れマルコフモデルによるジェスチャー認識
現在、ジェスチャー認識システム(Androidアプリケーション用)に取り組んでいます。手の輪郭を抽出できる画像処理段階が完了したと思います(今のところ、背景の減算を避けるために手袋を着用しています)。 手の楕円/長方形、重心も手の「重要な」形状特徴として取得しています。 私の問題は、隠れマルコフモデルによる画像の分類の前の次の段階が何であるかを示す多くの文献がないことです。この「特徴抽出」の段階は非常にあいまいです。 現在、コンターの角度のリストを取得しています(これは、限られた数の角度を取得するために概算されています) 問題は、私が次に何をすべきかについて無知であることです。「HMMを使用した形状分類」として文献を検索しても、次に何をしたらよいかわかりません。 HMMのツールとして、JaHMMを使用する予定です。しかし、この分類段階への入力が何になるかわからないので、この段階ではツールを試す方法がわかりません! 高速フーリエ記述子、曲率記述子、Bスプラインなど、いくつかの文献で見つけた関数のリストに遭遇しました。しかし、私はこれらの関数を現在のデータ(つまり、角度のリスト、たとえば-63、154、3、23、54など)に適用する方法については無知です。 更新1: 情報をくれてありがとう。@ピーター・K ポーズについて:私は指で綴られたアメリカ手話の単語のセット、例えば「犬」->「d」「o」「g」(3つの状態); しかし、何をするか決めていない瞬間。 私は現在、以下のような、どのような種類の情報を抽出する必要があるかを確認するために、いくつかの論文を読んでいます。 手の重心 動きの角度 特定のポイントから手の輪郭の別のポイントまでの距離(など) 今、私がやりたいことを示しているように見える論文に遭遇しました、私にはわかりません: http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf 私は現在セクション5-ベクトル量子化を読んでいます(この用語を以前聞いたことはありますが、実際にそれが何であるかはわかりません。図5では、複雑なアルゴリズムがあるようです。正しく理解すれば、達成した値のセットを変換します。手(前述)から1桁に変換します。これを観測シーケンスとして使用して、1つの特定の標識のHMMをトレーニングできます。私は正しい道を進んでいると思いますか?(私はAndroid、(NDK)で作業しています) 、JaHMMをHMMツールとして見つけ、OpenCVを画像処理に使用していることを発見しました。 @Peter K.回答ありがとうございます。データ生成については、個人データセットを作成した後、このペーパーの手順に従うことを計画していました(セクション4および5) http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02 -tanibata.pdf 更新2:ジェスチャーは{姿勢a、姿勢b、姿勢c}で構成されることを覚えておいてください 私は今、何らかの形の分類アルゴリズムを利用する必要があると考えています。つまり、現在、一連の特徴ベクトルがあります。 姿勢A:[周囲の楕円の角度、高さ:幅の比率] 0.802985 33.909615 0.722824 31.209663 0.734535 30.206722 0.68397 31.838253 0.713706 34.29641 0.688798 30.603661 0.721395 34.880161 姿勢B:[姿勢Aと同じ構造] 0.474164 16.077467 0.483104 14.526289 0.478904 14.800572 0.483134 14.523611 0.480608 …

5
FFT処理ゲイン
高速フーリエ変換を介してノイズの多い信号を時間領域から周波数領域に変換する場合、FFTの「処理ゲイン」があり、ビンの数が増えると増加します。つまり、ビンが多いほど、周波数ドメインのノイズフロアが低減されます。 1.実際、私はこの利益がどこから来ているのか、完全には理解していません。これは、より多くのビンを使用するために、より高いサンプリングレートで信号をサンプリングするだけでよいので、より高いFFT処理ゲインが得られることを意味しますか? 2.逆FFTについてはどうですか?「処理が失われました」ですか?周波数領域で開始すると、これは、私が持っている周波数サンプルが多いほど、時間領域信号に現れるノイズが多くなることを意味しますか?ただし、これは時間領域内挿の目的で(周波数領域データの)パディングを適用するときに信号の大きな歪みを引き起こすため、直感に反します。
8 fft 

1
スペクトル重心またはその他の手段による波形の着色
アップデート8 サービスにトラックをアップロードする必要があり、RekordBox 3の新しいリリースを見ることに不満があるオフラインのアプローチとより細かい解決策をもう一度検討することにしました:D まだ非常にアルファ状態にありますが、有望に聞こえます: ジョニック-グッドタイム 対数目盛もパレット調整もないことに注意してください。周波数からHSLへの生のマッピングのみです。 アイデア:波形レンダラーに、特定の位置の色を照会するカラープロバイダーが追加されました。上に表示されているものは、その位置の隣の1024サンプルのゼロ交差率を取得しています。 明らかに、堅牢なものになるまでにやるべきことがまだたくさんありますが、それは良い道のようです... RekordBox 3から: アップデート7 Update 3のように、私が採用する最後のフォーム (カラー間のスムーズな移行を実現するために少しPhotoshopされています) 結論は、私は数ヶ月前だったが、それが悪いと思ってその結果を考慮しなかったX) アップデート6 最近プロジェクトを発掘したので、ここで更新することを考えました:D 曲:シック-グッドタイムズ2001(ストーンブリッジクラブミックス) IMOの方がはるかに優れており、ビートは一定の色などを持ちますが、最適化されていません。 どうやって ? まだhttp://developer.echonest.com/docs/v4/_static/AnalyzeDocumentation.pdf(ページ6) 各セグメントについて: public static int GetSegmentColorFromTimbre(Segment[] segments, Segment segment) { var timbres = segment.Timbre; var avgLoudness = timbres[0]; var avgLoudnesses = segments.Select(s => s.Timbre[0]).ToArray(); double avgLoudnessNormalized = Normalize(avgLoudness, avgLoudnesses); …
8 fft  audio  color 

2
フィルタリング-周波数領域での乗算
単純なローパスフィルターを作成しようとしていますが、単純なバターワースフィルターの周波数応答を見て、驚くべき結果が得られました。 この他の投稿から以下の例の多くをコピーしました。スクリプトの下部にコードを追加して、入力と出力のスペクトルをフィルターの周波数応答と比較します。出力スペクトルがBB\mathbf B 入力スペクトルの積でなければなりません AA\mathbf A と周波数応答 HH\mathbf H: B=HAB=HA \mathbf B = \mathbf H \mathbf A ただし、下のプロットは、フィルターが実際に一部の低周波成分を増加させていることを示しています。赤い線が下の緑の上にある様子を確認してください 4 Hz4 Hz4\textrm{ Hz}。 これがなぜであるか誰でも説明できますか? import numpy as np from scipy.signal import butter, lfilter, freqz import matplotlib.pyplot as plt from scipy.fftpack import fft as fft def butter_lowpass(cutoff, fs, order=5): nyq = 0.5 …

1
GFTへのFFTの送信が計算上価値がある場合の良いヒューリスティックポイント?
これはかなり単純な質問ですが、GPUとCPUでFFTを計算するための良い経験則に関して、過去5年ほどの間に投稿されたものはあまりありません。GPUで計算されたFFTのオーバーヘッドのほとんどは、変換を計算するために、最初にデータをバッファーに書き込んでから、そのデータをCPUからGPUに送信する必要があることです。 これは当然、FPUのGPU計算は、GPUが実行する計算の数と比較してGPUへの書き込みの数が比較的少ない、より大きなFFT計算により適していることを意味します。しかし、問題は、FFTがCPUとGPUでどちらのパフォーマンスが優れているかを知ることになります。私が見つけた最高のものは「より大きなFFTを計算しているとき」という行ですが、特にGPUテクノロジーがここ数年で非常に急速に加速していることを考えると、実務家にとって特に意味のあるガイドラインになるのは少し相対論的です。 私は、GPUとCPUの変換を計算することがどの時点で効率的になるかについてのより具体的な見積もりを探しています(おそらくどこかにベンチマークがありますか?)。あなたが提供できるあらゆる助けを事前に感謝します。
7 fft 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.