Знаете ли Вы, что интерактивные скрипты Engee — это лучший инструмент для спектрального анализа сигналов различными методами?
Спектральный анализ, простыми словами, — это разложение сигнала на элементарные частотные компоненты и построение спектра сигнала, то есть зависимости амплитуды/мощности этих компонентов от частоты.
В новом расчетном проекте Сообщества описываются как основные задачи анализа, так и повсеместно применяемые методы оценки спектра сигнала. Отдельное внимание уделяется методам периодограммы, Уэлча и базового БПФ (про БПФ есть свой отдельный пост).
А в качестве тестового сигнала мы берём запись гитарной струны, и пытаемся методами цифровой обработки сигналов понять, что за ноту играл музыкант!
Для этого необходимо:
оценить спектр сигнала – для этого используются функции fft и fftshift библиотеки FFTW.jl, а также periodogram и welch_pgram из DSP.jl
отрисовать его на графике – стандартная функциональность Plots.jl
найти основную частоту, то есть первый «пик» на графике спектра – в этом нам помогает функция findpeaks1d
или же рассчитать среднее расстояние между «пиками» - тут мы обращаемся к библиотеке Statistics.jl
Затем можно обратиться к таблице частот музыкальных нот и сопоставить результаты. А для большей убедительности можно синтезировать цифровой фильтр функцией digitafilter, выделить первую гармонику и послушать результат обработки прямо в скрипте Engee в вашем браузере!