Получить основную частоту и гармонику звука - PullRequest
1 голос
/ 08 января 2020

После вычисления преобразования Фурье сигнала я хотел бы восстановить основную частоту, а также гармоники записанного звука, чтобы определить его тембр.

Вот мой код:

[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, является основной частотой, другие пики - это гармоники, которые появляются при k*Fo k в {1 , ..., N}.

Мне нужен метод, который возвращает амплитуду основной частоты и ее частоту, а также все амплитуды и частоты других пиков.

Как можно Я нахожу пики в моем сигнале, а также их частоты и амплитуды?

...