2017-11-20 1 views
-1

グラフ/チャート(スペクトル位相関数の決定)でピークを検索するために、ハミングウィンドウでFFTを実装するのに助けが必要です。現時点では、チャート上のすべてのピークをマークする方法と、フォルダからすべてのファイルを1つのチャートにロードする方法も知っています。そして今、最も重要なことは、FFTハミングウィンドウでピークを見つけることです。今私にとって最も重要なことは、これを私のスクリプトに実装するか、またはこれを行う方法を教えてください。私がこれを理解すると、私はそれを修正して、私が望むピークを探すことができます。高速フーリエ変換とハミングウィンドウ

マイコード:あなたのための

folder = 'C:\Users\an\Desktop\Materialy\'; 

files = dir(fullfile(folder,'*.dat')); 
files_len = numel(files); 

if (files_len == 0) 
return; 
end 

figure(1); 

file = fullfile(folder,files(1).name); 
[lam,I] = read_spectrum(file); 
lam = lam * 1e-3; 
plot(lam,I); 

if (files_len > 1) 
hold on; 

for i = 2:files_len 
    file = fullfile(folder,files(i).name); 
    [lam,I] = read_spectrum(file); 
    lam = lam * 1e-3; 
    plot(lam,I); 
end 

hold off; 
end 

答えて

0

ステップ:

ハミング重みによって、あなたの配列サイズのため

乗算データをウィンドウのハミング重み計算

メイクFFT

で汎用言語そのような方法でHWを使う(Nは配列サイズ):?

Re[i] := Re[i] * (0.54-0.46*cos(2*Pi*i/N)); 

しかし、Matlabの中で、あなたがそうfunction

+0

準備を持っているようだ、それは私が欲しいのピークを検索しますです、あなたはそれがなどがどのように動作するか私にこのへのサンプルコードを表示することができますか? – Maciej

+0

ハミング重み付けもFFTもピークを検索しません。それらはデータを変換するための手段に過ぎません。あなたは実際の問題を定式化し、おそらく望ましい結果を表示するでしょう – MBo

+0

Okej、しかしあなたはグラフをフィルタリングするためにfftを使います。そして今のところ私の問題は、fftを自分のコードに組み込む方法です、あるいは私は間違っていると思いますし、うまくいかないのですか? – Maciej

関連する問題