После вычисления преобразования Фурье сигнала я хотел бы восстановить основную частоту, а также гармоники записанного звука, чтобы определить его тембр.
Вот мой код:
[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
, является основной частотой, другие пики - это гармоники, которые появляются при k*Fo
k в {1 , ..., N}.
Мне нужен метод, который возвращает амплитуду основной частоты и ее частоту, а также все амплитуды и частоты других пиков.
Как можно Я нахожу пики в моем сигнале, а также их частоты и амплитуды?