Вопрос по matlab – Как количество очков меняет БПФ в MATLAB

4

Принимаяfft(signal, nfft) сигнала, как NFFT изменить результат и почему? Могу ли я иметь фиксированное значение для NFFT, скажем,2^18или мне нужно идти2^nextpow2(2*length(signal)-1)?

Я вычисляю спектральную плотность мощности (PSD) двух сигналов, взяв БПФ автокорреляции, и я хочу сравнить результаты. Поскольку сигналы имеют разную длину, я волнуюсь, если я не исправлю nfft, сравнение будет очень трудным!

Ваш Ответ

2   ответа
3

основанные на FFTW) в настоящее время редко требуют дополнения временного ряда сигнала до длины, равной степени двойки. Однако почти все реализации будут предлагать лучшую, а иногда и гораздо лучшую производительность для FFT векторов данных со степенью длины 2. Для MATLAB, в частности, заполнение до степени 2 или длины со многими низкими простыми коэффициентами даст вам лучшую производительность (N = 1000 = 2 ^ 3 * 5 ^ 3 будет отличным, N = 997 будет ужасным выбором) ,

Заполнение нулями не увеличит разрешение по частоте в вашем PSD, однако оно уменьшит размер ячейки в частотной области. Таким образом, если вы добавите NZeros к сигнальному вектору длины N, FFT теперь выведет вектор длины (N + NZeros) / 2 + 1. Это означает, что каждый бин частот теперь будет иметь ширину:

Bin width (Hz) = F_s / ( N + NZeros )

Где F_s - частота выборки сигнала.

Если вы обнаружите, что вам нужно разделить или идентифицировать два близко расположенных космических пика в частотной области, вам нужно увеличить выборку.time, Вы быстро обнаружите, что заполнение нулями ничего не дает для этой цели - и интуитивно это то, что мы ожидали. Как мы можем ожидать больше информации в нашем спектре мощности без добавления дополнительной информации (более длинные временные ряды) в нашем входе?

Лучший,

Павел

3

некоторых случаях это может сделать обработку более эффективной).

Однако, чтобы сделать FFT из двух разных сигналов «соразмерными», вам действительно необходимо обнулить один или другой (или оба) сигналы одинаковой длины, прежде чем брать их FFT.

Однако я чувствую себя обязанным сказать: если вам нужно спросить об этом, то вы, вероятно, не находитесь в той точке кривой обучения DSP, где вы сможете сделать что-нибудь полезное с результатами. Вы должны получить приличную книгу по теории DSP, напримерэтот.

Похожие вопросы