0

データのセットに対してFFTを実行し、周波数と振幅の値があるとします。各FFTブロックで最大振幅を見つけたいです。最大振幅の 0.4 倍以上のポイントの周波数と振幅を見つけて、それらを配列に保存する必要があります..どうすればこれを行うことができますか?? 空の行列を取得し続けることで、次の方法を試しました....

% the code after FFT
peak_points = [];

    fmin = 60;
    fmax = 1000;
    region_of_interest = fmax>f & f>fmin;
    froi = f(region_of_interest);

    [p_max,loc] = max(seg_fft2(region_of_interest));

    p_max;
    fpeaks = froi(loc);

    [points, locatn] = findpeaks(seg_fft2(region_of_interest));

    if points > 0.4*p_max
        peak_points = [peak_points ; points locatn]
    end

私は配列が苦手です..だから、これを理解できないようです。これで誰かの助けをいただければ幸いです...よろしくお願いします...

4

1 に答える 1

1

対象の論理アレイまたは froi の領域で seg_ffr2 を実行するつもりですか?

または多分ポイントはベクトルであり、次のものが必要です:

aboveMax = points > 0.4*p_max;
if any(aboveMax)   
        peak_points = [peak_points ; points(aboveMax) locatn(aboveMax)]
end
于 2013-09-30T06:58:59.093 に答える