Matlab FFT数据的最大振幅

Matlab FFT数据的最大振幅,matlab,Matlab,我需要帮助找到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:(

我需要帮助找到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)

fft返回一个复数。应使用绝对值来查找最大值:

[maxY,indexOfMaxY] = max(abs(Y));

fft返回一个复数。应使用绝对值来查找最大值:

[maxY,indexOfMaxY] = max(abs(Y));

您收到的错误消息是什么?这是错误=“???下标索引必须是实正整数或逻辑数。”您能够绘制wav数据吗?是的,时域和频域绘制非常完美。我在写一个代码来寻找FFT图中的最大振幅时遇到了麻烦。但是,我的FFT不是整数,因此产生了错误……你得到了什么错误信息?这是错误=“???下标索引必须是实正整数或逻辑数。”你能绘制wav数据吗?是的,时域和频域图是完美的。我在写一个在FFT图中找到最大振幅的代码时遇到了麻烦。好吧,但是再一次,我的FFT不是整数,因此错误。。。。