Чому виникає випромінювання спектра у FFT?


18

Я спробував гуглінг та вікіпедію, але відповіді не отримав, окрім "це тому, що частота вхідного сигналу сидить між двома бункерами".

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

Щоб проілюструвати те, про що я говорю, ось деякі імітовані дані (код в кінці публікації): Freq_10

Вище - спектр FFT (нанесений на логарифмічну шкалу) синусоїди частотою 10. Частота вибірки одна, а кількість зразків - 100. Графік зміщений FFT. У ящику 10 явно лише пік, а решта - в порядку числової помилки, або приблизно.

Freq_10_1

Це спектр частот на генерованій частоті 10,1. Зрозуміло, що "витік" в більше сміттєвих контейнерів, ніж просто безпосередньо сусідній контейнер.

freq_10_5

Це графік з частотою 10,5.

Запитання: Чому існує цей витік і чому він поширюється на всі інші бункери, а не на безпосередньо сусідній контейнер?


Код для всіх, хто зацікавлений (код Python)

import numpy as np
import matplotlib.pyplot as plt

xFreq = 10.5
xSize = 100.0
xPeriod = xSize/xFreq
x = np.linspace(1,xSize,xSize)

data = np.sin(2*np.pi*x/xPeriod)
fft = np.fft.fft(data)
fft = np.fft.fftshift(fft)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(abs(fft), "o")
ax.set_yscale('log')
plt.show()

Я змінив xFreqзначення з 10.0на 10.5тощо.


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

Відповіді:


12

FFT має обмежену довжину і, таким чином, являє собою прямокутне вікно за замовчуванням у потоці даних. Вікно у часовій області призводить до згортання частотної області з перетворенням вікна. Зауважимо, що перетворення прямокутного вікна - це функція Sinc (sin (x) / x), яка має нескінченну ширину. Це не просто 2 бункери в ширину. Таким чином, пульсації функції Sinc виявляться як "протікання" далеко не будь-якого спектрального піку, який не ідеально періодичний у довжину FFT.

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

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

Ще один спосіб поглянути на це - це те, що FFT - це лише фільтр-банк, де кожен піддон смуги фільтрів має безліч пульсацій, і, безумовно, не є нескінченним при ослабленні більш ніж 1 біт від центральної частоти. Деякі вікна (фон Ханн тощо), крім прямокутних, мають нижню смугу зупинки, що є однією з причин їх популярного використання.


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

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

@Jim Clay: Дякую за доданий графік. Я не міг зрозуміти, як подати його зі свого iPhone.
hotpaw2

1
Дякую, дякую, дякую. Дякуємо, що НЕ пояснили витоку, сказавши: "FFT передбачає, що послідовність його введення періодична". Таке дурне поняття "припущена періодичність", на жаль, занадто часто повторюється в літературі ДСП. [-Rick-]

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

0

hotpaw2Відповідь хороша, але я хотів би трохи детальніше user5133розглянути коментар:

Дякуємо, що НЕ пояснили витоку, сказавши: "FFT передбачає, що послідовність його введення періодична". Таке дурне поняття "припущена періодичність", на жаль, занадто часто повторюється в літературі ДСП

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

Z{1,2,,N}

Х(ω)=н=-х[н]е-iωн.

На практиці вимірювані сигнали є кінцевими ; Позначимо довжину по . Кінцевий сигнал можна продовжити на N -періодичність над ZNNZ

Хк =деф н=0N-1хне-2πiкн/N,кZ
що відповідає дискретним частотам Х(2πк/N)н{1,2,,N}х[н]ш[н]шн{1,,N}

Але перетворення Фур'є продукту - це згортання перетворень Фур'є:

Ж{fг}=Ж{f}Ж{г}

sinc

-ш(f)е-jωтгт=-ττе-jωтгт=2τsinc(ωτ)

sinc


схоже на @ user5133 більше не висить. але вдячність Ріка не відповідає: "Дякую, що НЕ пояснили витік, сказавши:" FFT передбачає, що послідовність його введення періодична ". Це дурне поняття "припущена періодичність", на жаль, занадто часто повторюється в літературі ДСП ". Він помиляється. DFT, безумовно, періодично розширює дані кінцевої довжини, передані їм. ДПФ робить на себе дані , передані йому в один період періодичної послідовності.
Роберт Брістоу-Джонсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.