0

オーディオ信号の FFT のピークの振幅と周波数を見つけようとしています。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))

    % index into froi to find the frequency of the peaks
    p_max;
    f_p_max = froi(loc);

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

    aboveMax = points > 0.4*p_max;
    if any(aboveMax)
        peak_points = [peak_points ; points(aboveMax) locatn(aboveMax)];
    end

正しい振幅を取得できますがlocatn(aboveMax)、周波数がわかりません.....周波数値を取得するにはどうすればよいですか? locatn(aboveMax)which isの代わりに次の行を試しましたfroi(locatn(aboveMax))が、エラーが発生しました

??? ==> horzcat の使用エラー

CAT 引数の次元が一貫していません。

4

1 に答える 1

0

これlocatnは、インデックスのベクトルであるため、それらを使用して周波数ベクトルにインデックスを付ける必要があるためです。たとえば、周波数froi(locatn)のベクトルfroiがピークの周波数を与える必要がある場合

于 2013-10-01T08:40:53.823 に答える