Яке співвідношення між довжиною FFT та роздільною здатністю частоти?


67

Якщо я відібрав сигнал за допомогою належних методів вибірки (Nyquist, фільтрування тощо), як я відношу довжину мого FFT до отриманого дозволу частоти, який я можу отримати?

Як би я мав синусоїду 2 000 Гц і 1,999 Гц, як би я визначив довжину FFT, необхідну для точного визначення різниці між цими двома хвилями?

Відповіді:


81

Роздільна здатність частоти залежить від залежності між довжиною FFT і частотою дискретизації вхідного сигналу.

Якщо ми наберемо 8192 проби для FFT, тоді у нас буде:

8192 samples2=4096 FFT bins

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

5 kHz4096 FFT bins1.22 Hzbin

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

З вищевикладеного ми бачимо, що для отримання менших відвалів FFT ми можемо запустити довший FFT (тобто взяти більше зразків з тією ж швидкістю перед запуском FFT) або зменшити нашу частоту вибірки.

Улов:

Завжди існує компроміс між тимчасовою роздільною здатністю та частотною роздільною здатністю.

У наведеному вище прикладі нам потрібно зібрати 8192 зразки, перш ніж ми зможемо запустити FFT, що при вибірці на частоті 10 кГц займає 0,82 секунди.

Якби ми спробували отримати менші бункери FFT, запустивши довший FFT, для збору необхідних зразків знадобиться ще більше часу.

Це може бути нормально, а може і не бути. Важливим моментом є те, що при фіксованій частоті дискретизації збільшення роздільної частоти зменшує часову роздільну здатність. Це тим точніше ваше вимірювання в частотній області, тим менш точним ви можете бути у часовій області. Ви фактично втрачаєте інформацію про весь час у межах FFT.

У цьому прикладі, якщо тон 1999 Гц починається і припиняється в першій половині FFT зразка 8192, а тональність 2002 Гц грає у другій половині вікна, ми побачимо і те, і інше, але вони, мабуть, відбулися б однаково час.

Ви також повинні врахувати час обробки. FFT з 8192 балів вимагає деякої пристойної потужності обробки. Спосіб зменшення цієї потреби - зменшення частоти дискретизації, що є другим способом збільшення роздільної здатності частоти.

У вашому прикладі, якщо ви зменшите частоту дискретизації на щось на зразок 4096 Гц, тоді вам потрібно лише 4096 точок FFT, щоб досягти біт 1 Гц * 4096 Гц, тоді вам потрібно лише FFT 4096 балів, щоб досягти біт у 1 Гц і все одно можете вирішити Сигнал 2 кГц. Це зменшує розмір біт FFT, але також зменшує пропускну здатність сигналу.

Зрештою, із FFT завжди буде взаємодія між частотною роздільною здатністю та часовою роздільною здатністю. Ви повинні виконати трохи балансуючого акта, щоб досягти всіх цілей.


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

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

1
@kortuk, ім'я починається з "o". Я припускав, що у вас є, я просто ділився своїм поглядом, як для вас, якщо ви ще не знали, але більше для громади в цілому.
Кортук

1
Зверніть увагу, що вам не доведеться розраховувати FFT. Якщо ви хочете знати лише кілька бункерів, дешевше обчислити DFT лише цих бункерів, ніж запустити оптимізований FFT, який обчислює всі бункери одночасно, поділяючи багато операцій.
Кріс Страттон

Варто також зазначити, що аналогічна компромісна частотна / часова область застосовується до аналогових і IIR-фільтрів.
Caleb Reister

10

Основна роздільна здатність FFT - , де - частота вибірки. fsfsNfs

Здатність диференціювати два дуже розташовані між собою сигнали сильно залежить від відносних амплітуд та використовуваної віконної функції.

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

РЕДАКТУВАННЯ: Існує також хитрість, щоб замінити введення нулями та скористатися великим FFT. Це не покращить вашу здатність до диференціювання, але може зробити спектр більш читабельним. Це в основному трюк, схожий на антиалізинг у векторній графіці.


Я єдиний, хто не бачить, щоб латексний код відображався належним чином відформатованим?
stevenvh

@stevenvh Не працює і для мене.
тераса

Працює для мене. Латекс - лише 2 місця.
Кортук

2
Виправлено (вже на деякий час). Додаток NoScript Firefox заблокований mathjax.org.
stevenvh

3

Варто зазначити, що FFT є альтернативою обчисленню декількох окремих пар сум (k = 0..sample_length-1) зразка [k] * SineRefWave [j] [k] та Sample [j] * CosRefWave [j ] [k], для всіх j до половини довжини вибірки. Якщо потрібні зчитування амплітуди на всіх цих частотах, FFT обчислює їх усі за час O (NlgN), тоді як обчислення їх окремо потребуватиме часу O (N ^ 2). З іншого боку, якщо потрібно лише зчитування амплітуди на декількох частотах, часто буде краще просто обчислити їх окремо, особливо якщо використовується процесор або DSP, які можуть ефективно обчислити цей стиль суми.

Варто також зазначити, що, хоча FFT з, наприклад, вікном вибірки 20 мс, не зможе розрізнити один тон 1975 Гц або комбінацію частот (1975-Н) Гц і (1975 + N) Гц для N <25, його можна використовувати для вимірювання ізольованих частот з точністю, кращою, ніж вікно вибірки, якщо поблизу немає іншого спектрального вмісту. Самотня частота 1975 Гц збільшиться однаково в бункерах 1950 Гц і 2000 Гц, як і комбінація тонів 1974 Гц і 1976 Гц. Однак, ізольований тон 1974 Гц набирав би більш сильний розмір у бінці 1950 Гц, ніж у біні 2000 ГГц, а тон 1976 ГГц набирав би більш сильний характер у біні 2000 ГГц.


1

Роздільна здатність частоти залежить не від довжини FFT, а від тривалості загального часу вибірки T, тобто це 1 / T, що також є найнижчою частотною складовою, яку ви отримали.

Зауважте, нульове прокладка не збільшує роздільну здатність частоти; DFT сигналу нульового прокладки є лише кращим наближенням DTFT початкового сигналу.


0

Якщо ви знаєте діапазон можливих вхідних частот, а діапазон вузький, ви можете застосувати підкреслення, щоб зменшити кількість вибірок і час для обчислення FFT. Маючи 256 зразків і частоту вибірки 256 Гц, ви отримуєте потрібну роздільну здатність 1 Гц і пропускну здатність без псевдоніму 128 Гц.


-3

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

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


5
З цієї картини не зовсім зрозуміло, що відбувається. (Не допомагає малюнок не англійською мовою.) Що додає, що інші відповіді не згадали?
Грег д'Еон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.