获取音频的基本频率和谐波

时间:2020-01-08 14:09:05

标签: matlab fft audio-processing

在计算信号的傅立叶变换之后,我想恢复记录的声音的基频和谐波,以确定其音色。

这是我的代码:

[signal,fe] = audioread('Flute6.wav');
subplot(2,1,1);
plot(signal);

N = length(signal);
t=(0:N-1)/fe;
f = (0:N-1)/N *fe;
f(f>=fe/2)=f(f>=fe/2)-fe;
f=fftshift(f);
X = fft(signal)/N;
X=fftshift(X);
%*************************************************%
xlim([10000,11000])
title('tracer du signal de base en fonction du temps');  
subplot(2,1,2);
plot(f,abs(X));

xlim([-5000,5000]);
xlabel('frequence en hz');
ylabel('|signal(t)|');  
title('tracer de la transformée de fourier');

enter image description here

第一个高峰值Fo是基频,其他峰值是出现在{1,...,N}中k*Fo k处的谐波。

我想要一种能够返回基波的振幅及其频率以及其他峰的所有振幅和频率的方法。

如何找到信号中的峰值及其频率和幅度?

0 个答案:

没有答案
相关问题