Frekans çözünürlüğü iyi ise neden sıfır dolumdan sonra DFT'de frekans kaçağı var?


12

Bu örneği ele alalım:

Fs=1000; 
Ns=500;
t=0:1/Fs:(Ns-1)*1/Fs;
f1=10;
f2=400;
x=5+5*sin(2*pi*f1*t)+2*sin(2*pi*f2*t);
X=fft(x);

Bu senaryoda, frekans çözünürlüğü 2'dir ve tüm frekans bileşenleri doğru şekilde yakalanır. Ancak, bunu yaparsam:

  X=fft(x,1000);

frekans çözünürlüğü 1'dir, ancak spektral bir sızıntı vardır. Benzer etki burada da görülüyor . Bana öyle geliyor ki, her iki pencerenin Fourier dönüşümleri (biri 500, diğeri 1000 uzunluğu) sinyalde gösterilen frekanslarda sıfır var, bu yüzden neden sızıntının olacağını anlamıyorum?


sıfır doldurma, görünen spektral sızıntıyı azaltmaz, ancak yalnızca spektral sızıntı darbelerini daha düzgün gösterir.
robert bristow-johnson

Yanıtlar:


18

Bu olgunun spektral sızıntı ile ilgisi yoktur. Ne gözlemlediğiniz sıfır dolgusunun etkisidir. Birkaç örnek N- verildiğinde, elde edilebilecek maksimum olası frekans çözünürlüğü Δf vardır:

Δf=fsN-

Sizin durumunuzda Δf tam olarak 2'Hz . Sinyalinizi sıfırlarsanız, alınacak ek bilgi yoktur - yalnızcafrekans aralığını azaltırsınız.

Yukarıdaki örnekte, artırabilir zaman N- için 1000 , bir frekans aralığı elde 1'Hz . Gözlemlenen tüm örnekler yalnızca pencere fonksiyonu tarafından yapılan bir enterpolasyondur (sbennc senin durumunda). Pencere spektrumunun yan loblarını gözlemlemeye başlayacaksınız. Sinyali örtülü olarak dikdörtgen bir pencere ile çarptığınızdan, bu, sinyalin spektrumunun (iki Dirac'ın + DC)sbennc fonksiyonuile evrilmesiyle sonuçlanacaktır.


Buna bakmanın bir başka yolu, DFT'nin temel olarak kaydırılmış sbennc işlevlerinden oluşan bir filtre bankası olduğunu hayal etmektir . Bunlar öyle bir şekilde hizalı, birinin zirvesi neredesbennc

resim açıklamasını buraya girin

Mavi filtreye karşılık gelen frekansın mevcut olduğunu düşünelim. Bu, karşılık gelen bir kutudaki genliği verecektir. Kalan tüm frekanslar mevcut değildir (turuncu ve sarı), böylece bu sbennc 's0sbennc


İşte N-=1000N-=10000

resim açıklamasını buraya girin

Ve yakınlaştırılmış bir kısım:

resim açıklamasını buraya girin

Dikkat edilmesi gerekenler:

  • N-=500

  • En altta da FFT gürültüsünü gözlemleyebiliriz.

  • İçin N-=10000 şeklisbennc


Ve tabii ki sonuçları yeniden üretmek için kod:

Fs=1000; 
Ns=500;
Ns2=1000;
Ns3=10000;
t=0:1/Fs:(Ns-1)*1/Fs;
f1=10;
f2=400;
x=5+5*sin(2*pi*f1*t)+2*sin(2*pi*f2*t);

X1 = abs(fft(x))/length(x);
X2 = abs(fft(x, Ns2))/Ns;
X3 = abs(fft(x, Ns3))/Ns;

F1 = 0:Fs/Ns:Fs-Fs/Ns;
F2 = 0:Fs/Ns2:Fs-Fs/Ns2;
F3 = 0:Fs/Ns3:Fs-Fs/Ns3;

plot(F1, 20*log10(X1))
hold on
plot(F2, 20*log10(X2))
plot(F3, 20*log10(X3))
xlim([0, Fs/2])
grid on
legend({'N=500', 'N=1000', 'N=10000'})

1
Çok eksiksiz cevap +1. "[...] sadece frekans aralığını artıracaksın." Sanırım azalma olmalı .
Matt L.

2

Spektral sızıntı genellikle Sinc konvolüsyon etkisi veya diğer alandaki dikdörtgen pencerenin yapaylığı için başka bir isimdir (davanızdaki t veya zaman). Ve sıfır dolgu, daha uzun bir FFT'ye dikdörtgen bir pencere (orijinal sıfır olmayan ped verileriniz) ekleyerek yapılır.

FT'nin sıfır olması gerektiği hipoteziniz, ancak bir frekans genel olarak yanlıştır. Herhangi bir sonlu uzunluktaki (ve sıfır olmayan) sinyalin sonsuz ölçüde sıfır olmayan spektrum olacaktır. Bu sonsuz spektrum kapsamı (Sinc şekilli veya diğer pencerelerin dönüşümü) bir DFT / FFT sonucunda, sadece bu genişlikte tam tam periyodiklik ile tüm FFT genişliğini kapsayantan ziyade sadece saf sinüzoidler için görünmez olacaktır. Sıfır dolgu buna izin vermez.


1

Sızıntı özellikle pratikte her zaman sahip olduğunuz sonlu uzunluktaki pencerelerde ortaya çıkar. Bununla birlikte, sinüs bileşenlerinizin tam sayılarında periyodunuz varsa, FFT'nin doğal periyodizasyonu sinüslerin "sonsuz" olduğu gibi davranır ve frekansları tam olarak ayrıklaştırılmış çöp kutularına düşer. Ve böylece sızıntı saf şansın dışında bir şekilde iptal edilir: sinyalinizin süresini önceden biliyor olsaydınız, Fourier araçlarıyla analiz etmeniz gerekmezdi.

Sıfır dolgu ile artık saf bir sinüsünüz olmaz. Ne tamsayı olmayan dönem çoklu pencere. Pencere sınırlarında ani değişiklikler olan sinüs yığınlarını birleştiriyorsunuz. Dolayısıyla, periyodik sinyalin tamamı artık bir "sonsuz sinüs" değildir. Böylece sızıntı ile asimile ettiğiniz şeyi elde edebilirsiniz, ancak @jojek tarafından mükemmel bir şekilde açıklandığı gibi sıfır dolgu etkisi vardır.

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.