Какова связь между длиной БПФ и разрешением по частоте?


67

Если я произвел выборку сигнала, используя надлежащие методы выборки (Найквист, фильтрация и т. Д.), Как мне соотнести длину моего БПФ с результирующим разрешением по частоте, которое я могу получить?

Например, если у меня синусоидальная волна 2000 Гц и 1999 Гц, как бы определить длину БПФ, необходимую для точного определения разницы между этими двумя волнами?

Ответы:


81

Разрешение по частоте зависит от соотношения между длиной БПФ и частотой дискретизации входного сигнала.

Если мы соберем 8192 образца для БПФ, у нас будет:

8192 samples2=4096 FFT bins

Если наша частота дискретизации составляет 10 кГц, то теорема выборки Найквиста-Шеннона говорит, что наш сигнал может содержать частотный контент до 5 кГц. Тогда наше разрешение для частотного бина:

5 kHz4096 FFT bins1.22 Hzbin

Это может быть проще для концептуального объяснения, но упрощено: разрешение вашего бина просто , где - частота дискретизации входного сигнала, а N - количество точек FFT. используется (длина образца).fsampNfsamp

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

Поймать:

Всегда существует компромисс между временным разрешением и разрешением по частоте.

В приведенном выше примере нам нужно собрать 8192 сэмпла, прежде чем мы сможем запустить FFT, что при сэмплировании на частоте 10 кГц занимает 0,82 секунды.

Если бы мы попытались получить меньшие ячейки БПФ, запустив более длинное БПФ, потребовалось бы еще больше времени для сбора необходимых образцов.

Это может быть хорошо, это не может быть. Важным моментом является то, что при фиксированной частоте дискретизации увеличение разрешения по частоте уменьшает временное разрешение. Это значит, что чем точнее ваши измерения в частотной области, тем менее точными вы можете быть во временной области. Вы фактически теряете всю информацию о времени внутри длины БПФ.

В этом примере, если тональный сигнал 1999 Гц запускается и останавливается в первой половине образца БПФ 8192, а тональный сигнал 2002 Гц воспроизводится во второй половине окна, мы видим оба, но они, по-видимому, произошли в одно и то же время. время.

Вы также должны учитывать время обработки. БПФ с 8192 точками требует приличной вычислительной мощности. Способ уменьшить эту потребность - уменьшить частоту дискретизации, что является вторым способом увеличения разрешения по частоте.

В вашем примере, если вы снизите частоту дискретизации примерно до 4096 Гц, тогда вам потребуется только БПФ с 4096 точками для достижения интервалов 1 Гц * 4096 Гц, тогда вам потребуется только БПФ с 4096 точками для достижения интервалов 1 Гц и все еще можно разрешить 2 кГц сигнал. Это уменьшает размер ячейки БПФ, но также уменьшает полосу пропускания сигнала.

В конечном счете, с БПФ всегда будет компромисс между разрешением по частоте и разрешением по времени. Вы должны выполнить небольшой баланс, чтобы достичь всех целей.


с тегами заголовков и некоторым форматированием этот пост может перейти от хорошего к большому. Вы затронули все, что я хотел отметить, и очень хорошо, но то, как форматируется пост, меньше людей будет читать, так как его длина непозволительна, если вы дадите заголовки с каждым разделом того, что вы обсуждаете, люди перейдут к сочной доле. это их устраивает, и ваше число +1 увеличится намного. Не от меня, конечно, как вы уже заработали.
Кортук

@ kurtuk Я выкладываю это в спешке, я уберу форматирование, когда у меня будет свободное время (или не стесняйтесь редактировать это, если хотите).
Марк

1
@kortuk, имя начинается с «о». Я предположил, что у вас есть, я просто поделился своим мнением, как для вас, если вы еще не знали, но больше для сообщества в целом.
Кортук

1
Обратите внимание, что вам не нужно рассчитывать БПФ. Если вы хотите знать только несколько лотков, дешевле рассчитать ДПФ только для этих лотков, чем запускать оптимизированное БПФ, которое рассчитывает все лотки одновременно, разделяя многие операции.
Крис Страттон

Стоит также отметить, что подобный компромисс между частотной и временной областями применим к аналоговым и БИХ-фильтрам.
Калеб Реистер

10

Базовое разрешение FFT - это , где - частота дискретизации.fsNfs

Способность различать два очень близко расположенных сигнала сильно зависит от относительных амплитуд и используемой оконной функции.

Вы можете обнаружить, что игра с анализатором сигналов Baudline - это хороший способ развить некоторую интуицию в этом вопросе - и нет, запуск некоторых БПФ и построение одного спектра за раз в Matlab или Python / Numpy на самом деле не одно и то же.

РЕДАКТИРОВАТЬ: Существует также хитрость, чтобы заполнить ввод с нулями и принимая больший FFT Это не улучшит вашу способность различать, но может сделать спектр более читабельным. Это в основном трюк, похожий на сглаживание в векторной графике.


Я единственный, кто не видит, что латексный код отображается правильно отформатированным?
Stevenvh

@stevenvh Не работает для меня тоже.
терраса

Работает для меня. Латекс всего 2 места.
Кортук

2
Исправлено (уже некоторое время). NoScript-надстройка Firefox заблокировала mathjax.org.
Стивенвх

3

Стоит отметить, что БПФ является альтернативой для вычисления количества отдельных пар сумм (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 Гц.


1

Разрешение по частоте зависит не от длины БПФ, а от продолжительности общего времени выборки T, т.е. оно равно 1 / T, что также является самой низкой частотной составляющей, которую вы получили.

Обратите внимание, что заполнение нулями не увеличивает разрешение по частоте; ДПФ сигнала заполнения нулями является просто лучшим приближением ДПФ исходного сигнала.


0

Если вам известен диапазон возможных входных частот, а диапазон узок, вы можете применить пониженную дискретизацию, чтобы уменьшить количество выборок и время для вычисления БПФ. С 256 выборками и частотой выборки 256 Гц вы получаете требуемое разрешение 1 Гц и полосу пропускания без псевдонимов 128 Гц.


-3

посмотри на эту картинку. ясно. связь между fs и fft разрешением

введите описание изображения здесь


5
Из этой картины не совсем понятно, что происходит. (Не помогает, что изображение не на английском языке.) Что это добавляет, что другие ответы не упоминали?
Грег д'Эн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.