[英]Maximum amplitude of FFT data
I need help in finding the maximum amplitude of an FFT signal. 我需要帮助找到FFT信号的最大幅度。
Say I perform FFT on an audio file and get a column of complex numbers, how can i extract the maximum amplitude and its index from the FFT signal?? 假设我对音频文件执行FFT并获得一列复数,如何从FFT信号中提取最大幅度及其索引? I tried using the "max" syntax but i get an error: ???
我尝试使用“最大”语法,但出现错误: Subscript indices must either be real positive integers or logicals.
下标索引必须是实数正整数或逻辑值。
Would appreciate some help.. Thanx 希望能有所帮助。.Thanx
This is the code I've used 这是我使用的代码
[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)
The fft returns a complex number. fft返回一个复数。 You should use the absolute Value to find the maximum:
您应该使用绝对值来找到最大值:
[maxY,indexOfMaxY] = max(abs(Y));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.