Изучение спектральной плотности мощности
Мне жаль задавать основной вопрос. Я новичок в обработке сигналов и хочу узнать о разнице между 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.
Есть более подробная информация, касающаяся управления окнами и того, хотите ли вы, чтобы последовательные кадры имели некоторые выборки, которые перекрываются друг с другом, и так далее.
Я надеюсь, что это поможет в качестве первого объяснения.