Почему БПФ «зеркальный»?

36

Если вы делаете FFT-график простого сигнала, например:

t = 0:0.01:1 ;
N = max(size(t));
x = 1 + sin( 2*pi*t ) ;
y = abs( fft( x ) ) ;
stem( N*t, y )

1 Гц синусоида + DC

1Гц

БПФ выше

быстрое преобразование Фурье

Я понимаю, что число в первом бине "сколько DC" есть в сигнале.

y(1)  %DC
  > 101.0000

Число во втором столбце должно быть «сколько 1 цикла за весь сигнал»:

y(2)  %1 cycle in the N samples
  > 50.6665

Но это не 101! Это около 50,5.

Есть еще одна запись в конце сигнала FFT, равная по величине:

y(101)
  > 50.2971

Итак, снова 50,5.

У меня вопрос, почему FFT зеркально отражается так? Почему это не просто 101 дюйм y(2)(что, конечно, означает, что все 101 бин вашего сигнала имеют синусоиду 1 Гц?)

Будет ли правильно сделать:

mid = round( N/2 ) ;

% Prepend y(1), then add y(2:middle) with the mirror FLIPPED vector
% from y(middle+1:end)
z = [ y(1), y( 2:mid ) + fliplr( y(mid+1:end) ) ];

stem( z )

Отразить и добавить вторую половину вектора БПФ

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

Теперь я подумал, что зеркальная часть с правой стороны добавлена ​​правильно, давая мне желаемое «все 101 бин FFT содержат синусоиду 1 Гц»

>> z(2)

ans =

  100.5943
bobobobo
источник
На аналогичный вопрос ответили здесь: dsp.stackexchange.com/questions/3466/…
pichenettes
Но это конкретно о симметрии (я полагаю, это называется герметической симметрией?) Сигнала.
Бобобобо
Для чисто реальных сигналов F (k) = con (F (Nk)), поэтому преобразование Фурье чистого реального сигнала симметрично.
WebMonster
Спросите себя: какой результат вы бы ожидали, если бы ваш сигнал был 1 + cos (2 * pi t) ... И 1 + i cos (2 * pi t) ... И 1 + i sin (2 * pi * t) ...
pichenettes
2
Поскольку преобразование Фурье разбивает сигнал на комплексные экспоненты, а синусоида является суммой 2 комплексных экспонент. dsp.stackexchange.com/a/449/29
эндолиты

Ответы:

39

Реальные сигналы «отражаются» в действительной и отрицательной половине преобразования Фурье из-за природы преобразования Фурье. Преобразование Фурье определяется следующим образом:

H(f)=h(t)ej2πftdt

По сути, он соотносит сигнал с группой сложных синусоид, каждая из которых имеет свою частоту. Так как же выглядят эти сложные синусоиды? На рисунке ниже показана одна сложная синусоида.

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

«Штопор» - это вращающаяся сложная синусоида во времени, а две следующие за ним синусоиды - это извлеченные действительные и мнимые компоненты сложной синусоиды. Проницательный читатель заметит, что действительные и мнимые компоненты одинаковы, только они не в фазе друг с другом на 90 градусов ( ). Поскольку они смещены по фазе на 90 градусов, они ортогональны и могут «поймать» любой компонент сигнала на этой частоте.π2

Соотношение между экспонентой и косинусом / синусом определяется по формуле Эйлера:

ejx=cos(x)+jsin(x)

Это позволяет нам изменить преобразование Фурье следующим образом:

H(f)=h(t)ej2πftdt=h(t)(cos(2πft)jsin(2πft))dt

На отрицательных частотах преобразование Фурье становится следующим:

H(f)=h(t)(cos(2π(f)t)jsin(2π(f)t))dt=h(t)(cos(2πft)+jsin(2πft))dt

Сравнение версии с отрицательной частотой с версией с положительной частотой показывает, что косинус одинаков, а синус инвертирован. Они все еще на 90 градусов не в фазе друг с другом, что позволяет им улавливать любой компонент сигнала на этой (отрицательной) частоте.

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

РЕДАКТИРОВАТЬ: В частности, отрицательная частотная корреляция является сопряжением положительной частотной корреляции (из-за инвертированного мнимого синусоидального компонента) для реальных сигналов. В математических терминах это, как указал Дилип, следующее:

H(f)=[H(f)]

Еще один способ думать об этом:

Воображаемые компоненты - это просто .. Мнимые! Они представляют собой инструмент, который позволяет использовать дополнительную плоскость для наблюдения за вещами и делает возможной большую часть цифровой (и аналоговой) обработки сигналов, если не намного проще, чем использование дифференциальных уравнений!

Но мы не можем нарушить логические законы природы, мы не можем сделать что-либо «реальное» с воображаемым содержанием и поэтому оно должно эффективно уничтожить себя, прежде чем вернуться к реальности. Как это выглядит в преобразовании Фурье сигнала, основанного на времени (комплексная частотная область)? Если мы добавим / суммируем положительные и отрицательные частотные составляющие сигнала, которые мнимые части отменяют, это то, что мы имеем в виду, говоря, что положительные и отрицательные элементы сопряжены друг с другом. Обратите внимание, что, когда берется FT для сигнала времени, существуют эти сопряженные сигналы, причем «реальная» часть каждого делится величиной, половина в положительной области, половина в отрицательной, поэтому в действительности добавление конъюгатов вместе удаляет мнимый контент и предоставляет только реальный контент.

5 я То есть мы не можем создать напряжение вольт. Очевидно, что мы можем использовать мнимые числа для представления реальных сигналов с двумя векторами, таких как электромагнитные волны с круговой поляризацией.5i

Джим Клэй
источник
Хороший ответ - хотя бы один небольшой задира, я не согласен с «Поскольку они одинаковы, все, с чем один соотносится, у другого тоже будет с той же величиной и фазовым сдвигом на 90 градусов». Я знаю, что вы пытаетесь сказать, однако (как вы знаете) синус коррелирует с синусом (оценка 1), но вообще не будет коррелировать с косинусом (оценка 0). Это один и тот же сигнал, но с разными фазами.
Спейси
Вы правы. Есть еще одна более серьезная проблема. Я исправлю это позже.
Джим Клей
Было бы неплохо, если бы вы могли отредактировать свой ответ, чтобы он больше отвечал на вопрос, касающийся ДПФ (хотя в названии указано БПФ), а не давал бы общую теорию преобразований Фурье.
Дилип Сарватэ
@DilipSarwate Моя цель состоит в том, чтобы помочь спрашивающему понять, и я думаю, что мой подход лучше для этого. Я проголосовал за ваш ответ, однако, за выполнение дискретной математики.
Джим Клэй
H(f)=[H(f)]|H(f)|=|H(f)|x(t)является реальным сигналом, и это «зеркальное отражение», о котором спрашивал ОП. Другими словами, я прошу вас отредактировать свой ответ, чтобы он был более отзывчивым к фактически заданному вопросу (как я просил в моем предыдущем комментарии).
Дилип Сарвейт
20

FFT (или быстрое преобразование Фурье) на самом деле алгоритм для вычисления дискретного преобразования Фурье или ДПФ. Типичная реализация достигает ускорения по сравнению с обычным вычислением ДПФ, используя тот факт, что , число точек данных, является составным целым числом, что здесь не так, поскольку является простым числом. (Хотя БПФ существуют для случая, когда - простое число, они используют другую формулировку, которая может или не может быть реализована в MATLAB). Действительно, многие люди сознательно выбирают в форме или чтобы ускорить вычисление DFT через FFT.N101NN2k4k

Обращаясь к вопросу о том, почему происходит зеркалирование, hotpaw2, по сути, изложил причину, поэтому следующее - это просто заполнение деталей. ДПФ последовательности из точек данных определяется как последовательность где где . Очевидно, что , в общем случае, является комплексной последовательностью, даже если является вещественной последовательностью. Но учтите, что когдаx=(x[0],x[1],x[2],,x[N1])NX=(X[0],X[1],X[2],,X[N1])

X[m]=n=0N1x[n](exp(j2πmN))n,m=0,1,,N1
j=1Xxx - вещественная последовательность, - действительное число. Кроме того, если - четное число, то, поскольку , у нас также есть - действительное число. Но, независимо от того, является ли нечетным или четным, DFT вещественной последовательности обладает свойством эрмитовой симметрии, которое вы упомянули в комментарии. Имеем для любого фиксированного ,X[0]=n=0N1x[n]Nexp(jπ)=1
X[N2]=n=0N1x[n](exp(j2πN/2N))n=n=0N1x[n](1)n
NXx m1mN1, Таким образом, для , . Как частный случай этого, обратите внимание, что если мы выберем когда четное, мы получим, что , подтверждая тем самым наше более ранний вывод, что
X[m]=n=0N1x[n](exp(j2πmN))nX[Nm]=n=0N1x[n](exp(j2πNmN))n=n=0N1x[n](exp(j2π+j2πmN))n=n=0N1x[n](exp(j2πmN))n=(X[m])
1mN1X[Nm]=(X[m])m=N/2NX[N/2]=(X[N/2])X[N/2]это реальное число. Обратите внимание, что эффект свойства эрмитовой симметрии заключается в том, что

в -го бен в ДПФ вещественной последовательности имеет ту же величину , что -го бункера.m(Nm)

Люди MATLABi должны будут перевести это, чтобы учесть тот факт, что массивы MATLAB пронумерованы от выше.1


Обращаясь к вашим фактическим данным, ваш является значением постоянного тока плюс чуть более одного периода синусоиды с частотой Гц. Действительно, вы получаете где . Таким образом, первая и последняя из выборки имеют одинаковое значение. Таким образом, вычисляемое вами ДПФ определяется как Несоответствие между и вызывает помехи в DFT: значения x11

x[n]=1+sin(2π(0.01n)), 0n100
x[0]=x[100]=1101
X[m]=n=0100(1+sin(2π(n100)))(exp(j2πm101))n
100101X[m]для отличны от нуля, хотя и малы. С другой стороны, предположим, что вы должны были отрегулировать массив в вашей программе MATLAB, чтобы иметь выборок, взятых при чтобы Тогда ДПФ будет вы увидите, что ваш DFT будет точно (или, по крайней мере, в пределах ошибки округления), и обратное DFT даст это для , 2m99t100t=0,0.01,0.02,,0.99
x[n]=1+sin(2π(0.01n)), 0n99.
X[m]=n=099(1+sin(2π(n100)))(exp(j2πm100))n,
X=(100,50j,0,0,,0,50j)0n99
x[n]=1100m=099X[m](exp(j2πn100))m=1100[10050jexp(j2πn100)1+50j(exp(j2πn100))99]=1+12j[exp(j2πn100)exp(j2πn100)]=1+sin(2π(0.01n))
это именно то, с чего вы начали.
Дилип Сарватэ
источник
Так можно ли из БПФ сказать, является ли сигнал периодическим или нет ?
displayname
@displayname Это отдельный вопрос, который должен быть задан сам по себе (и, возможно, уже задавался и отвечал).
Дилип Сарвейт,
Когда я осторожно извлекаю сопряженные симметричные ячейки [записывая в них 0 + 0i] и реконструирую сигнал временной области, используя ifft, величина восстановленного сигнала временной области уменьшилась вдвое. Это естественно или проблема с инструментами? Я позабочусь о нормализации выходного сигнала БПФ и его обратной после iFFT.
Радж
14

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

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

Если бы результат БПФ не был зеркально сопряженным, он представлял бы сигнал, который имел комплексные значения (ненулевые мнимые компоненты), а не что-то строго реальное.

hotpaw2
источник