Какова связь между длиной FFT и частотным разрешением?

Если я пробовал сигнал с использованием правильных методов выборки (Nyquist, filtering и т. д.), как я могу связать длину моего FFT с полученным разрешением частоты, которое я могу получить?

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

dsp
59 голосов | спросил Kellenjb 1 PMpFri, 01 Apr 2011 19:23:02 +040023Friday 2011, 19:23:02

6 ответов


73

Частотное разрешение зависит от соотношения между длиной FFT и частотой дискретизации входного сигнала.

Если мы собираем 8192 отсчетов для БПФ, тогда мы получим:

$$ \ frac {8192 \ \ text {samples}} {2} = 4096 \ \, \ text {FFT bins} $$

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

$$ \ frac {5 \ \ text {kHz}} {4096 \ \, \ text {FFT bins}} \ simeq \ frac {1.22 \ \ text {Hz}} {\ text {bin}} $$

Это может быть более простой способ объяснить это концептуально, но упрощенно: разрешение вашего бина - это просто \ $ \ frac {f_ {samp}} {N} \ $, где \ $ f_ {samp} \ $ - это частота дискретизации входного сигнала, а N - количество используемых точек БПФ (длина выборки).

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

Catch:

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

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

Если бы мы попытались получить меньшие бит FFT, выполнив более длительный FFT, потребуется еще больше времени, чтобы собрать нужные образцы.

Это может быть ОК, может и не быть. Важным моментом является то, что при фиксированной частоте дискретизации увеличение частотного разрешения уменьшает временное разрешение. То есть чем точнее ваши измерения в частотной области, тем менее точны вы можете быть во временной области. Вы фактически теряете всю информацию времени в пределах длины FFT.

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

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

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

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

ответил Mark 1 PMpFri, 01 Apr 2011 20:33:03 +040033Friday 2011, 20:33:03
10

Базовое разрешение FFT равно \ $ f_s \ over N \ $, где \ $ f_s \ $ - частота дискретизации.

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

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

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

ответил jpc 1 PMpFri, 01 Apr 2011 19:53:09 +040053Friday 2011, 19:53:09
3

Стоит отметить, что БПФ является альтернативой вычислению ряда отдельных пар сумм (k = 0..sample_length-1) Образца [k] * SineRefWave [j] [k] и Образца [j] * CosRefWave [j] [k], для всех j до половины длины выборки. Если нужны данные о амплитуде на всех этих частотах, БПФ будет вычислять их все в O (NlgN) времени, тогда как вычисление их по отдельности займет время O (N ^ 2). С другой стороны, если вам нужно только считывание амплитуды на нескольких частотах, часто бывает лучше просто их вычислить отдельно, особенно если вы используете процессор или DSP, которые могут эффективно вычислять этот стиль суммы.

Также стоит отметить, что в то время как БПФ, например, окно выборки 20 мс не сможет различать один тон в 1975 Гц или комбинацию частот (1975-N) Гц и (1975 + N) Гц для N 25, его можно использовать для измерения изолированных частот с точностью чем окно выборки, если поблизости нет другого спектрального содержимого. Одиночная частота в 1975 Гц будет одинаково восприниматься в отсеках 1950 Гц и 2000 Гц, равно как и комбинация тонов 1974 Гц и 1976 Гц. Однако изолированный тромбоцит с частотой 72 Гц будет сильнее расти в буфере 1950 МГц, чем в ядре 2000 Гц, а в такте с частотой 2000 Гц будет более сильным тоном 1976 Гц.

ответил supercat 10 Maypm11 2011, 20:11:35
1

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

Обратите внимание: нулевое заполнение не увеличивает частотную резольвенту; ДПФ сигнала нулевой набивки является просто лучшей аппроксимацией DTFT исходного сигнала.

ответил chaohuang 26 Jam1000000amSat, 26 Jan 2013 01:54:24 +040013 2013, 01:54:24
0

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

ответил Rainald62 15 FebruaryEurope/MoscowbMon, 15 Feb 2016 16:02:52 +0300000000pmMon, 15 Feb 2016 16:02:52 +030016 2016, 16:02:52
-3

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

 введите описание изображения здесь>> </a> </p></div>
										<div class=ответил hamid 9 12015vEurope/Moscow11bEurope/MoscowMon, 09 Nov 2015 16:10:13 +0300 2015, 16:10:13

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132