Изучение спектральной плотности мощности

Мне жаль задавать основной вопрос. Я новичок в обработке сигналов и хочу узнать о разнице между PSD и FFT.

У меня есть звуковой сигнал. Который я конвертирую в PSD с помощью pwelch в Matlab. Но когда я строю этот сигнал, я хочу видеть частоту (Гц) на оси X и энергию (дБ) на оси Y.

Но это не так.

Может кто-нибудь объяснить мне отношения между PSD и FFT, а также, пожалуйста, дайте мне знать, как построить эти две вещи.

Спасибо

1 ответ

Проще говоря (для первого прохода), FFT - это алгоритм, который реализует дискретное преобразование Фурье (DFT). ДПФ берет N точек входного сигнала и выполняет преобразование Фурье. Спектр мощности сигнала получается после того, как вы построите квадрат величины БПФ на выходе.

Таким образом, DFT принимает N точек в качестве входных данных и выплевывает N точек в качестве выходных данных. Если вы рассматриваете сигнал как кадр из N выборок, DFT находит статистику, используя только один кадр (N точек).

Однако метод pwelch - это средняя статистика по нескольким кадрам. Сигнал может быть очень длинным сигналом длины (скажем, L), где его длина во много раз больше, чем N. Метод pwelch начинается с вычисления ДПФ первых N выборок, затем продвигается вперед, чтобы посмотреть на следующие N выборок и и так до тех пор, пока не будут рассмотрены все "кадры". Итак, у вас остались ДПФ каждого кадра с размером выборки N сигнала длиной N. Скажем, N равно 256 точкам, а L равно 44100 точкам.

Следовательно, pwelch берет L точек (L > N) и выплевывает N точек для каждого "кадра" длины N сигнала длины L.

Есть более подробная информация, касающаяся управления окнами и того, хотите ли вы, чтобы последовательные кадры имели некоторые выборки, которые перекрываются друг с другом, и так далее.

Я надеюсь, что это поможет в качестве первого объяснения.

Другие вопросы по тегам