1

FFT 信号の最大振幅を見つけるのに助けが必要です。

オーディオ ファイルに対して FFT を実行し、複素数の列を取得するとします。FFT 信号から最大振幅とそのインデックスを抽出するにはどうすればよいでしょうか?? 「max」構文を使用しようとしましたが、エラーが発生しました: ??? 添え字のインデックスは、実数の正の整数または論理値のいずれかでなければなりません。

助けていただければ幸いです..ありがとう

これは私が使用したコードです

[wave,fs]=wavread('c scale fast.wav'); % read file into memory */
%sound(wave,fs); % see what it sounds like */
t=0:1/fs:(length(wave)-1)/fs; % and get sampling frequency */


figure(90);
          subplot(2,1,1)
          %plot(t,wave)
          plot(t,abs(wave))
          title('Wave File')
          ylabel('Amplitude')
          xlabel('Length (in seconds)')


L = length(wave);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(wave,NFFT)/L;
f = fs/2*linspace(0,1,NFFT/2+1);


% Plot single-sided amplitude spectrum.
        subplot(2,1,2)
        plot(f,2*abs(Y(1:NFFT/2+1))) 
        title('Single-Sided Amplitude Spectrum of y(t)')
        xlabel('Frequency (Hz)')
        ylabel('|Y(f)|')

 A = max(Y)
4

1 に答える 1