Чому перетворення Фур'є одного циклу синусоїди не є єдиним штрихом?


12

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

Частота дискретизації мала ефект (10 кГц тут), проте кількість циклів:

Один цикл:

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

100 циклів:

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

100000 циклів:

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

Схоже, перетворення фур'є сходиться лише за нескінченну кількість циклів, чому це так? Чи не має часове вікно точно одного циклу приносити такі самі результати, як і N циклів?

Застосування: Це викликає цікавість, а також тому, що я хочу отримати, наскільки ступінчаста реакція системи першого порядку буде викликати резонанс механічної збірки. Тому мені потрібна точна трансформація Фур'є у відповідь ... Якій я більше не вірю. Що я міг би зробити для того, щоб підвищити точність на основі випадку "синусоїда"?

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

PS: Ці конкретні скріншоти засновані на коді тут .


6
На додаток до прийнятої відповіді, зауважте, що немає підстав вважати, що дискретна трансформація Фур'є (яку ви обчислюєте за допомогою DFT) буде імпульсом для вхідного сигналу, який є одним періодом синусоїди. Неперервне перетворення Фур'є синусоїди є імпульсом, так, але цей синусоїд триває нескінченно. Якщо ви обмежуєте сигнал у часі, це рівнозначно множенню на функцію прямокутного вікна. Результатом частотної області є згортання імпульсу та перетворення Фур'є вікна, що по суті є тим, що ви спостерігаєте.
Джейсон R

Дякуємо за зауваження. Тож як ви поясните, що якщо я зміню номер NFFT на довжину вектора, то результат - це одна смужка?
Містер Містер

1
Хороше питання. Це відбувається через властиве припущенню в DFT. Сигнал кінцевої довжини, поданий на вході DFT, передбачається періодично поширюватися в обох напрямках з нескінченною тривалістю. Отже, коли у вас є ціле число циклів всередині «діафрагми» DFT, ви закінчуєте перетворення синусоїди нескінченної тривалості: єдиний імпульс. Це відповідає випадку точно нульового спектрального витоку і рідко трапляється на практиці.
Джейсон R

Відповіді:


30

Це віконний артефакт.

Зв'язаний код висуває сигнал зразка 10000 з нулями, щоб довжина була потужністю два.

%% Author :- Embedded Laboratory

%%This Project shows how to apply FFT on a signal and its physical 
% significance.

fSampling = 10000;          %Sampling Frequency
tSampling = 1/fSampling;    %Sampling Time
L = 10000;                  %Length of Signal
t = (0:L-1)*tSampling;      %Time Vector
F = 100;                    %Frequency of Signal

%% Signal Without Noise
xsig = sin(2*pi*F*t);
...

%%Frequency Transform of above Signal
subplot(2,1,2)
NFFT = 2^nextpow2(L);
Xsig = fft(xsig,NFFT)/L;
...

Зауважте, що у наведеному вище коді FFT приймається з розміром FFT, NFFTякий на наступну потужність на 2 більше, ніж довжина сигналу (у цьому випадку 16,384.) З документації Mathworksfft() :

Y = fft(X,n)повертає n-точковий DFT. fft(X)еквівалентно тому, fft(X, n)де nрозмір Xу першому несингтонному вимірі. Якщо довжина Xменша n, Xзабито нульовими нулями до довжини n. Якщо довжина Xбільше n, послідовність Xобрізається. Коли Xє матриця, довжина стовпців регулюється таким же чином.

Це означає, що ви насправді не приймаєте FFT «чистої синусоїди» - ви приймаєте FFT синусоїди з плоским сигналом після неї.

Це еквівалентно прийняттю FFT синусоїди, помноженої на функцію квадратного вікна. Спектр FFT - це згортання частотного спектра синусоїди (імпульсна функція) з частотним спектром частоти хвилі (sinc (f).)

Якщо ви зміните L = 16,384так, щоб не було заниження сигналу, то спостерігатимете perfectFFT.

Подальші ключові слова пошуку: "Спектральний витік", "Функція вікна", "Вікно Хеммінга".


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


Це було прямо перед моїм обличчям весь цей час. Молодці, я просто змінив номер NFFT на довжину вектора і це зробив.
Mister Mystère

1
@ MisterMystère: Дивіться правки для посилання на відповідний матеріал, який я написав в університеті. Набагато більш ретельне пояснення, включаючи картинки.
Li-aung Yip

(Хоча я забув повторно набрати математичні формули - виправлено зараз.)
Li-aung Yip

Лише нагадування про те, що перевага для nextpow2 з використанням алгоритмів matlab FFT є мало переваги, що, на мою думку, є fftw (найшвидша трансформація фур'є на заході)
Скотт Сейдман,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.