FFT neden “yansıtılıyor”?


36

Basit bir sinyalin FFT grafiğini yaparsanız, şöyle:

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

1Hz sinüzoid + DC

1Hz

Yukarıdaki FFT

fft

İlk kutudaki sayının, sinyalde "ne kadar DC" olduğunu anlıyorum.

y(1)  %DC
  > 101.0000

İkinci bölmedeki rakam "tüm sinyal boyunca ne kadar 1 döngü" olmalı:

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

Ama 101 değil! Yaklaşık 50,5.

Fft sinyalinin sonunda, büyük ölçüde eşit olan başka bir giriş var:

y(101)
  > 50.2971

Yine 50.5.

Sorum şu: FFT neden böyle yansıtılıyor? Neden sadece 101 inç değil y(2)(bu elbette ki sinyalinizin 101 kutularının hepsinde 1 Hz sinüzoid var?)

Bunu yapmak doğru olur mu:

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 )

FFT vektörünün ikinci yarısını çevirin ve ekleyin

görüntü tanımını buraya girin

Şimdi, sağ taraftaki aynalı parçanın doğru şekilde eklendiğini ve bana istenen "FFT’nin tüm 101 bidonunun 1Hz sinüzoid içerdiğini" düşündüm.

>> z(2)

ans =

  100.5943

Benzer bir soru burada da cevaplandı: dsp.stackexchange.com/questions/3466/…
pichenettes 28:12

Ancak bu özellikle sinyalin simetrisi ile ilgilidir (Sanırım Hermetian simetrisi olarak adlandırılıyor?).
bobobobo

Saf bir gerçek sinyaller için F (k) = konnaz (F (Nk)), bu nedenle gerçek bir gerçek sinyalin Fourier dönüşümünün simetrik olmasıdır.
WebMonster

Kendinize sorun: sinyaliniz 1 + cos (2 * pi t) olsaydı hangi sonucu beklerdiniz ... Ve 1 + i cos (2 * pi t) ... Ve 1 + i sin (2 * pi * t) ...
pichenettes

2
Çünkü bir Fourier dönüşümü bir sinyali karmaşık üssellere ayırır ve bir sinüs dalgası, 2 karmaşık üssellerin toplamıdır . dsp.stackexchange.com/a/449/29
Endolit

Yanıtlar:


39

Gerçek sinyaller, Fourier dönüşümünün doğası nedeniyle, Fourier dönüşümünün gerçek ve negatif yarısında "yansıtılır". Fourier dönüşümü şöyle tanımlanır:

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

Temel olarak, sinyali, her biri kendi frekansına sahip olan bir grup karmaşık sinüzoid ile ilişkilendirir. Peki bu karmaşık sinüzoidler neye benziyor? Aşağıdaki resimde bir karmaşık sinüzoit gösterilmektedir.

görüntü tanımını buraya girin görüntü tanımını buraya girin görüntü tanımını buraya girin

"Tirbuşon", zamanla dönen kompleks sinüzoit iken, onu takip eden iki sinüzoid, karmaşık sinüzoitin ekstrakte edilmiş gerçek ve hayali bileşenleridir. Akıllı okuyucu, gerçek ve hayali bileşenlerin aynı olduğunu, yalnızca birbirleriyle 90 derecelik faz dışı olduklarını not edecektir ( ). 90 derece faz dışı olduklarından ortogonaldirler ve bu frekanstaki sinyalin herhangi bir bileşenini "yakalayabilir".π2

Üstel ve kosinüs / sinüs arasındaki ilişki Euler formülüyle verilir.

ejx=cos(x)+jsin(x)

Bu, Fourier dönüşümünü aşağıdaki şekilde değiştirmemize izin verir -

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

Negatif frekanslarda Fourier dönüşümü şu şekilde olur -

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

Negatif frekans versiyonunun pozitif frekans versiyonuyla karşılaştırılması, sinüs ters çevrilirken kosinüsün aynı olduğunu gösterir. Yine de birbirleri ile 90 derecelik faz dışındalar, ancak bu (negatif) frekansta herhangi bir sinyal bileşenini yakalamalarına izin veriyorlar.

Hem pozitif hem de negatif frekanslı sinüzoitlerin faz dışında 90 derece olması ve aynı büyüklükte olması nedeniyle, her ikisi de gerçek sinyallere aynı şekilde yanıt verecektir. Veya daha doğrusu, cevaplarının büyüklüğü aynı olacaktır, ancak korelasyon aşaması farklı olacaktır.

EDIT: Spesifik olarak, negatif frekans korelasyonu, gerçek sinyaller için pozitif frekans korelasyonunun (ters hayali sinüs bileşeninden dolayı) eşleniğidir. Matematiksel olarak, bu, Dilip'in işaret ettiği gibi, aşağıdaki gibi-

H(f)=[H(f)]

Bunu düşünmenin başka bir yolu:

Hayali bileşenler sadece budur. Bunlar, fazladan bir düzlemin kullanılmasının bir şeyleri görmesini sağlayan ve diferansiyel denklemleri kullanmaktan daha kolay değilse dijital (ve analog) sinyal işlemeyi mümkün kılan bir araçtır!

Fakat doğanın mantık yasalarını ihlal edemeyiz, hayali içerikle ' ile 'gerçek' bir şey yapamayız ve bu nedenle gerçeğe dönmeden önce kendini etkin bir şekilde iptal etmelidir. Bu, zamana dayalı bir sinyalin Fourier Dönüşümünde (karmaşık frekans bölgesi) nasıl görünüyor? Hayali parçaların iptal ettiği sinyalin pozitif ve negatif frekans bileşenlerini ekler / toplarsak, pozitif ve negatif elemanların birbirine eşlendiğini söyleyerek demek istiyoruz. Bir FT bir zaman sinyalinden alındığında, bu eşlenik sinyallerin mevcut olduğuna dikkat edin, her birinin 'gerçek' kısmı, büyüklüğü paylaşan, pozitif alanın yarısında, negatifin yarısında, böylece eşleniklerin bir araya getirilmesi, hayali içeriği ve yalnızca gerçek içeriği sağlar.

Anlamı, volt olan bir voltaj . Açıkçası, dairesel polarize EM dalgaları gibi iki vektör değerli gerçek dünya sinyallerini temsil etmek için hayali sayıları kullanabiliriz.5i


İyi cevap - hafif bir tuzak olsa da, "Ben aynı oldukları için, biriyle bağıntılı olan herhangi bir şey olduğu için diğeri de aynı büyüklükte ve 90 derecelik bir faz kaymasıyla" olacaktır. Ne söylemeye çalıştığınızı biliyorum, ancak (bildiğiniz gibi), bir sinüs bir sinüsle (puan 1) ilişkilidir, ancak hiç bir şekilde bir kosinüs ile korelasyon göstermeyecektir (puan 0). Onlar aynı sinyaldir, ancak daha sonra farklı aşamalarla.
Spacey

Haklısın. Daha ciddi bir problem daha var. Sonra tamir ederim.
Jim Clay

Genel Fourier dönüşümleri teorisini vermek yerine, cevabınızı DFT'lerle ilgili (başlıkta FFT yazıyor olsa da) ile ilgili soruya daha iyi yanıt verecek şekilde düzenleyebilseniz iyi olurdu.
Dilip Sarwate

@DilipSarwate Amacım, sorgulayıcının anlamasına yardımcı olmak ve yaklaşımımın bunun için en iyisi olduğunu düşünüyorum. Kesikli matematik yaptığınız için cevabınızı yineledim.
Jim Clay

@JimClay Yaklaşımınız, dsp.SE'nin tüm okur kitlesi tarafından büyük beğeni topluyor ve umarım cevabınıza, okuyucunuz için şu anda bırakılanları da dahil ederek cevabınızı gerçekten harika bir cevap haline getirme zamanı bulacağınızı umuyorum : viz . denklemlerin , gerçek değerli bir sinyal olduğunda (ve dolayısıyla ) olduğunu ve OP'nin sorduğu “yansıtma” budur. Başka bir deyişle, cevabınızı gerçekten sorulan soruya daha duyarlı olması için düzenlemenizi rica ediyorum (önceki yorumumda talep ettiğim gibi). H(f)=[H(f)]|H(f)|=|H(f)|x(t)
Dilip Sarwate

20

FFT (veya Hızlı Fourier Dönüşümü) aslında bir olan algoritma hesaplanması için Ayrık Fourier Dönüşümü ya da DFT. Tipik uygulama , veri noktalarının sayısı , büyük olan bir sayı olduğu için burada bulunmayan bileşik bir tamsayı olduğu gerçeğinden yararlanılarak, DFT'nin geleneksel hesaplaması üzerinde hız kazanır . ( bir ana olduğunda FFT'ler mevcut olsa da, MATLAB'da uygulanabilecek veya uygulanmayacak farklı bir formülasyon kullanırlar). Gerçekten de, birçok kişi , DFT hesaplamasını FFT yoluyla hızlandırmak için veya biçiminde kasten seçer .N101NN2k4k

Yansıtmanın neden gerçekleştiği sorusuna dönersek, hotpaw2 esasen nedenini belirtti ve bu yüzden aşağıdakiler sadece ayrıntıların doldurulmasıyla ilgili. Bir sekansın DFT arasında veri noktaları bir sekans olarak tanımlanır burada burada . , genel olarak , , gerçek-değerli bir sekans olsa bile, karmaşık-değerli bir sekans olduğu açık olacaktır . Ama unutmayın ne zamanx=(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
XxxX[0]= N - 1 n = 0 x[n]j=1Xxx gerçek değerli bir dizilimdir, gerçek bir sayıdır. Dahası, eğer bir çift sayı ise, o zaman, , biz de gerçek bir sayıdır. Ancak, tek mi yoksa çift mi olduğuna bakılmaksızın, gerçek bir değere sahip dizisinin DFT , bir yorumda bahsettiğiniz Hermitian simetri özelliğine sahiptir. Herhangi bir sabit ,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, Böylece, , . Özel Bu durumda, not olarak biz seçerseniz ne zaman bile, biz o olsun , böylece bizim doğrulayan daha erken sonuç 1mN-1
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]gerçek bir sayıdır. Hermitiyen simetri özelliğinin bir etkisinin olduğuna dikkat edin.

gerçek değerli dizisinin kuru film kalınlığında inci bölmesi vardır , aynı büyüklük olarak inci kutusu.m(Nm)

MATLABi insanlarının, MATLAB dizilerinin yukarıya doğru numaralandırıldığını hesaba katmaları için tercüme etmesi gerekecektir .1


Gerçek verilerinize dönersek, değeriniz artı bir değer olan Hz'lik bir sinüzoit periyodundan biraz daha fazla bir DC değeridir . Aslında, elde ettiğiniz şey burada . Böylece, örneğin ilk ve sonuncusu aynı değere sahiptir. Böylece hesapladığınız DFT, ile arasındaki uyuşmazlık DFT’de karışıklığa neden olur: değerleri 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]için küçük de olsa, sıfırdan farklı olan. Öte yandan, MATLAB programınızdaki diziyi değerinde örnek alacak şekilde ayarlayacağınızı ve böylelikle Sonra DFT, Eğer DFT olacağı göreceksiniz tam olarak (ya da en azından içinde yuvarlama hatası) ve ters DFT bunun için verecektir , 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))
, tam olarak başladığınız şey.

Yani, bir sinyalin periyodik olup olmadığını FFT'den söylemek mümkün müdür ?
ekran adı

@displayname Bu, kendi başına sorulması gereken ayrı bir sorudur (ve belki de daha önce sorulmuş ve cevaplanmıştır).
Dilip Sarwate 20:16

Konjugat simetrik kutularını dikkatlice çıkardığımda [bunlara 0 + 0i yazarak] ve zaman alanı sinyalini ifft kullanarak yeniden yapılandırdığımda, yeniden yapılandırılmış zaman alanı sinyalinin büyüklüğü yarıya indi. Bu doğal mı yoksa takım sorunu mu? FFT çıkış normalizasyonuna ve iFFT'den sonra tersine bakarım.
Raj,

14

Bir FFT sonucunun yalnızca eşlenik simetrik olduğu gibi, yalnızca girdi verileri gerçekse yansıtıldığını unutmayın.

Kesin olarak gerçek girdi verileri için, FFT'deki iki eşlenik ayna görüntüsü, herhangi bir karmaşık sinüzoidin hayali parçalarını iptal eder ve bu nedenle, kesinlikle gerçek bir sinüzoide (küçük sayısal yuvarlama gürültüsü hariç) toplanır ve bu nedenle sizi kesin olarak temsil eder. Gerçek sinüs dalgaları.

FFT sonucu eşlenik olarak yansıtılmamışsa, kesinlikle gerçek bir değeri değil, karmaşık değerleri olan (sıfır olmayan hayali bileşenler) bir dalga biçimini temsil eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.