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

18

Я пробовал гуглить и википедировать это, но я не получил никаких ответов, кроме «это потому, что частота входного сигнала находится между двумя корзинами».

Я понимаю, что это причина, но я не могу понять, почему утечка распространяется на несколько соседних бункеров, а не только на один соседний бункер.

Чтобы проиллюстрировать, о чем я говорю, вот некоторые смоделированные данные (код в конце поста): Freq_10

Выше приведен спектр БПФ (построенный в логарифмическом масштабе) синусоидальной волны с частотой 10. Частота дискретизации равна единице, а число выборок равно 100. График сдвинут по БПФ. Там явно только пик в бункере 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и т. Д.

Kitchi
источник
Любой сигнал, который не вписывается точно в длину окна FFT, вызывает разрыв при его наложении. Разрывы, такие как импульсы или ступенчатые функции, содержат некоторые из всех частот.
эндолит

Ответы:

12

БПФ имеет конечную длину и, таким образом, представляет собой прямоугольное окно по умолчанию в потоке данных. Окно во временной области приводит к свертке в частотной области с преобразованием окна. Обратите внимание, что преобразование прямоугольного окна является функцией Sinc (sin (x) / x), которая имеет бесконечную ширину. Это не просто 2 контейнера по ширине. Таким образом, пульсации функции Синка будут проявляться как «утечка» вдали от любого спектрального пика, который не является идеально периодическим по длине БПФ.

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

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

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

hotpaw2
источник
1
Обратите внимание, что так называемая спектральная «утечка» не проявляется в БПФ точно бин-центрированных периодических входов, потому что функция Sinc точно равна нулю (между сменами знаков) на всех других центральных частотах бина (полностью ортогональных этим ядрам фильтра и Базисные векторы БПФ).
hotpaw2
Я надеюсь, что вы не возражаете против редактирования. Не стесняйтесь бросать это, если вам не нравится это.
Джим Клэй,
@Jim Clay: Спасибо за добавленный график. Я не мог понять, как отправить один из моего iPhone.
hotpaw2
1
Спасибо Спасибо спасибо. Спасибо, что НЕ объясняете утечку, говоря: «БПФ предполагает, что его входная последовательность является периодической». Это глупое понятие «предполагаемой периодичности», к сожалению, слишком часто повторяется в литературе DSP. [-Rick-]
Иногда предположение о входной периодичности полезно, например, при выполнении синхронной выборки вращения вала по длине кадра БПФ (или при создании синтетических примеров в классе). Но в случае аудио (и т. Д.) Секционирование и формирование оконных фреймов данных, не связанных с какой-либо длиной периодичности, является более распространенным, что делает предположение, как правило, ложным для работы в этих областях.
hotpaw2
0

hotpaw2ответ хороший, но я бы хотел немного уточнить user5133комментарий:

Спасибо, что НЕ объясняете утечку, говоря: «БПФ предполагает, что его входная последовательность является периодической». Это глупое понятие «предполагаемой периодичности», к сожалению, слишком часто повторяется в литературе DSP

и в то же время ответить на вопрос тоже. Обратите внимание, что я являюсь экспертом в этой области - не стесняйтесь комментировать, исправлять или подтверждать.

Дискретное преобразование Фурье (DTFT) определяется над (а не только !) КакZ{1,2,,N}

Икс(ω)знак равноΣNзнак равно-Икс[N]е-яωN,

На практике измеренные сигналы являются конечными ; Обозначим длину по . Конечный сигнал может быть расширен периодичностью над . Дискретное преобразование Фурье (ДПФ) определяется что соответствует дискретным частотам DTFT, кроме случаев, когда в не в . Другими словами, это соответствует DTFT для где - прямоугольная функция, равная 1, когдаNNZ

ИксК знак равноЗащита ΣNзнак равно0N-1ИксNе-2πяКN/N,КZ
Икс(2πК/N)N{1,2,...,N}Икс[N]вес[N]весN{1,...,N} и 0 везде

Но преобразование Фурье произведения - это свертка преобразований Фурье:

F{еграмм}знак равноF{е}*F{грамм}

так что ДПФ исходного сигнала является сверткой ДПФ его "периодизированной" версии с преобразованием Фурье прямоугольного окна ... которое является потому что (в непрерывной структуре и с центром в 0 до упростить ...):синк

-вес(е)е-JωTdTзнак равно-ττе-JωTdTзнак равно2τсинк(ωτ)

Свертка с создает наблюдаемые боковые лепестки (за исключением некоторых конкретных случаев).синк

anderstood
источник
Похоже, @ user5133 больше не торчит. но благодарность Рика неуместна: «Спасибо, что НЕ объясняете утечку, говоря:« БПФ предполагает, что его входная последовательность является периодической ». Это глупое понятие «предполагаемой периодичности», к сожалению, слишком часто повторяется в литературе DSP ». Он ошибается DFT, безусловно, периодически расширяет передаваемые ему данные конечной длины. ДПФ делает на себя данные , переданные ему в один период периодической последовательности.
Роберт Бристоу-Джонсон