Finding max value and its index
7 次查看(过去 30 天)
显示 更早的评论
So, here is the problem.
I have a wav file (attached), one tuts piano sound, and I analyzed it. Using this.
[wave,fs] = audioread('file01.wav');
n=length(wave)-1;
figure
t=0:1/fs:n/fs;
subplot(3,1,1), plot(t,wave)
subplot(3,1,1), xlabel('Time (Second)')
subplot(3,1,1), ylabel('Amplitude')
f=0:fs/n:fs;
wavefft=abs(fft(wave));
subplot(3,1,2), plot(f,wavefft)
subplot(3,1,2), xlabel('Frekuency (Hz)')
subplot(3,1,2), ylabel('Magnitude')
[max_value, index] = max(wavefft(:));
subplot(3,1,3), plot(f,wavefft)
subplot(3,1,3), axis([0 index 0 max_value])
The output is like this.

When I search max value using
[max_value, index] = max(wavefft(:));
I got this. Surely the peak would be on the right side, right?

When I inspect it, the max_value is in index 1111 Hz.
But when I zoom in manually, it's on index 740 Hz.

Did I do something wrong?
1 个评论
Star Strider
2014-6-12
Seems you did everything correctly. The data in ‘subplot(3,1,3)’ is correct.
Explore the documentation on fft to understand why. (See the documentation on fftshift to understand the reason subplot(3,1,2) is misleading you.)
采纳的回答
Image Analyst
2014-6-12
Index 1111 is not at 1111 Hz necessarily. From the plot above, it looks like it's at about 750 Hz. But you msight want to use fftshift to shift the ends to the middle.
4 个评论
Image Analyst
2014-6-12
If you shift the spectrum to put the 0 frequency at the center, you need to subtract ~2.25 * 10^4 (actually x(floor(length(x)/2)) I believe) from your x axis so that 0 shows up at the middle, with the middle index of the array you're plotting.
更多回答(1 个)
Malcolm Hawksford
2017-12-19
Lets assume you have a stereo .wav file and simply want to find the peak amplitude and sample index (time domain) in each channel. Assume the file is called Cohen.wav then this works for me: [p q]=max(abs(audioread('Cohen.wav'))); p gives the peak values and q the corresponding indices.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Bartlett 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
