Разрешение по частоте зависит от соотношения между длиной БПФ и частотой дискретизации входного сигнала.
Если мы соберем 8192 образца для БПФ, у нас будет:
8192 samples2=4096 FFT bins
Если наша частота дискретизации составляет 10 кГц, то теорема выборки Найквиста-Шеннона говорит, что наш сигнал может содержать частотный контент до 5 кГц. Тогда наше разрешение для частотного бина:
5 kHz4096 FFT bins≃1.22 Hzbin
Это может быть проще для концептуального объяснения, но упрощено: разрешение вашего бина просто , где - частота дискретизации входного сигнала, а N - количество точек FFT. используется (длина образца).fsampNfsamp
Из вышесказанного мы можем видеть, что для получения меньших бункеров FFT мы можем либо запустить более длинное FFT (то есть взять больше выборок с той же частотой перед запуском FFT), либо уменьшить нашу частоту дискретизации.
Поймать:
Всегда существует компромисс между временным разрешением и разрешением по частоте.
В приведенном выше примере нам нужно собрать 8192 сэмпла, прежде чем мы сможем запустить FFT, что при сэмплировании на частоте 10 кГц занимает 0,82 секунды.
Если бы мы попытались получить меньшие ячейки БПФ, запустив более длинное БПФ, потребовалось бы еще больше времени для сбора необходимых образцов.
Это может быть хорошо, это не может быть. Важным моментом является то, что при фиксированной частоте дискретизации увеличение разрешения по частоте уменьшает временное разрешение. Это значит, что чем точнее ваши измерения в частотной области, тем менее точными вы можете быть во временной области. Вы фактически теряете всю информацию о времени внутри длины БПФ.
В этом примере, если тональный сигнал 1999 Гц запускается и останавливается в первой половине образца БПФ 8192, а тональный сигнал 2002 Гц воспроизводится во второй половине окна, мы видим оба, но они, по-видимому, произошли в одно и то же время. время.
Вы также должны учитывать время обработки. БПФ с 8192 точками требует приличной вычислительной мощности. Способ уменьшить эту потребность - уменьшить частоту дискретизации, что является вторым способом увеличения разрешения по частоте.
В вашем примере, если вы снизите частоту дискретизации примерно до 4096 Гц, тогда вам потребуется только БПФ с 4096 точками для достижения интервалов 1 Гц * 4096 Гц, тогда вам потребуется только БПФ с 4096 точками для достижения интервалов 1 Гц и все еще можно разрешить 2 кГц сигнал. Это уменьшает размер ячейки БПФ, но также уменьшает полосу пропускания сигнала.
В конечном счете, с БПФ всегда будет компромисс между разрешением по частоте и разрешением по времени. Вы должны выполнить небольшой баланс, чтобы достичь всех целей.
Базовое разрешение FFT - это , где - частота дискретизации.fsN fs
Способность различать два очень близко расположенных сигнала сильно зависит от относительных амплитуд и используемой оконной функции.
Вы можете обнаружить, что игра с анализатором сигналов Baudline - это хороший способ развить некоторую интуицию в этом вопросе - и нет, запуск некоторых БПФ и построение одного спектра за раз в Matlab или Python / Numpy на самом деле не одно и то же.
РЕДАКТИРОВАТЬ: Существует также хитрость, чтобы заполнить ввод с нулями и принимая больший FFT Это не улучшит вашу способность различать, но может сделать спектр более читабельным. Это в основном трюк, похожий на сглаживание в векторной графике.
источник
Стоит отметить, что БПФ является альтернативой для вычисления количества отдельных пар сумм (k = 0..sample_length-1) Sample [k] * SineRefWave [j] [k] и Sample [j] * CosRefWave [j ] [k], для всех j до половины длины выборки. Если требуется считывание амплитуды на всех этих частотах, БПФ вычислит их все за время O (NlgN), тогда как для их вычисления по отдельности потребуется время O (N ^ 2). С другой стороны, если нужны только амплитудные показания на нескольких частотах, часто лучше просто вычислять их по отдельности, особенно если вы используете процессор или DSP, который может эффективно вычислять этот стиль суммы.
Стоит также отметить, что, хотя БПФ с окном выборки 20 мс не сможет различить один тон 1975 Гц или комбинацию частот (1975-N) Гц и (1975 + N) Гц для N <25, его можно использовать для измерения изолированных частот с более высокой точностью, чем окно выборки, если поблизости нет другого спектрального содержимого. Одиночная частота 1975 Гц будет одинаково возрастать в бинах 1950 Гц и 2000 Гц, как и комбинация тонов 1974 Гц и 1976 Гц. Однако изолированный тон 1974 Гц будет восприниматься сильнее в приемнике 1950 Гц, чем в приемнике 2000 Гц, а тон 1976 Гц будет восприниматься сильнее в приемнике 2000 Гц.
источник
Разрешение по частоте зависит не от длины БПФ, а от продолжительности общего времени выборки T, т.е. оно равно 1 / T, что также является самой низкой частотной составляющей, которую вы получили.
Обратите внимание, что заполнение нулями не увеличивает разрешение по частоте; ДПФ сигнала заполнения нулями является просто лучшим приближением ДПФ исходного сигнала.
источник
Если вам известен диапазон возможных входных частот, а диапазон узок, вы можете применить пониженную дискретизацию, чтобы уменьшить количество выборок и время для вычисления БПФ. С 256 выборками и частотой выборки 256 Гц вы получаете требуемое разрешение 1 Гц и полосу пропускания без псевдонимов 128 Гц.
источник
посмотри на эту картинку. ясно. связь между fs и fft разрешением
источник