在计算信号的傅立叶变换之后,我想恢复记录的声音的基频和谐波,以确定其音色。
这是我的代码:
[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');
第一个高峰值Fo
是基频,其他峰值是出现在{1,...,N}中k*Fo
k处的谐波。
我想要一种能够返回基波的振幅及其频率以及其他峰的所有振幅和频率的方法。
如何找到信号中的峰值及其频率和幅度?