DFT - Katlamalı spektral alandaki pencere efektini kaldırma


11

DFT pencereleme konusunu düşünüyordum ve aklıma bir düşünce geldi. Bir DFT, kullanılan pencerenin spektrumu ile kıvrık bir sinyalin spektrumunu verecektir, bu nedenle bir ana loblara ve yan loblara sahiptir.

Hem sinyali hem de pencere spektrumu büyüklüğünü tekrar bükerek sinyalin spektrumu üzerindeki pencere etkisini kaldırmak mümkün olacağını düşündüm ve gerçekten de aşağıdaki görüntüde gördüğünüz gibi çalışıyor.

resim açıklamasını buraya girin

Sol, bir hanning penceresi ile oluşturulan orijinal spektrumdur. Sağ, bir hanning penceresinin DFT'si tarafından kıvrılan spektrumdur. Üst Spektrumun kendisi, alt MATLAB findpeakssonucudur.

Bu teknikle ilgili hiçbir şey okumadım, ama orada hiçbir şey icat etmediğimden eminim. Bu yüzden spektrumda bu işlemi yapmanın bir faydası olup olmadığını veya görmediğim bir dezavantajı olup olmadığını merak ediyorum.

Gördüğüm kadarıyla, bu, önceki görüntüde gördüğümüz gibi zirve algılamaya yardımcı olabilir. Ayrıca, aşağıdaki 2 görüntüde görebildiğimiz gibi spektrum biraz bozuk görünüyor. :

resim açıklamasını buraya girin resim açıklamasını buraya girin

Mavi grafiğin spektrum ve kırmızı grafiğin kıvrım sonrası spektrum olduğu yerlerde.

  • Bunun hakkında bir fikrin var mı?
  • Bu FFT sonrası evrişimden kaynaklanabilecek bir sorun var mı?
  • Konuyu ele alan herhangi bir kağıt var mı?

DÜZENLE

Burada aşağıdaki grafiği oluşturacak bir komut dosyası bulabilirsiniz :

resim açıklamasını buraya girin


1
Rakamları çizmek için kullandığınız kodu verebilir misiniz? Kıvrık işlevin düzgünlüğünün sadece bir çözüm sorunu olduğunu varsayıyorum. Aynı pencereyle bir kez daha kıvrım yaparak pencereyi geri alamazsınız (gerçekten de kıvrılmanız gerekir , rbj'nin cevabı budur). Ayrıca, gerçek bir gelişme, artmış bir frekans çözünürlüğü ve / veya burada hiçbirine ulaşılamayan yan kenar bastırmada artış olacaktır. "Doğru" piklerin bulunması her iki fonksiyon için nispeten kolaydır.
Matt L.

Yeni bir kod örneği eklemek için yazımı düzenledim.
Pier-Yves Lessard

Yanıtlar:


1

Aslında, önerinizin bir dezavantajı vardır: gösterdiğiniz sinyallerin hepsi çok açık bir şekilde frekans bileşenlerine ayrılmıştır, ancak genel olarak, gerçek yaşam sinyalleri daha gürültülü olma eğilimindedir.

Uygulamaya bağlı olarak, kaçak sönümlemesini (dönüştürülmüş spektrumda bir sinyal frekansının daha yüksek ana lobları / daha küçük yan lobları) veya başka bir örnek olarak mümkün olan en dar ana lobunu istersiniz.

Grafiklerinizde, büyüklük spektrumlarını bir pencereyle yumuşatmanın bunun tersini yaptığı görülmektedir: ana loblar genişler ve küçülürken, sızıntı ürünlerinin güçte sınırlı bir zaman sinyali kazancını dönüştürmesi önlenir. Gürültülü sinyallere uygulandığında, bu önemli bir dezavantaj sağlayacaktır.

Bununla birlikte, öneriniz zirve tanımlama için hala oldukça yararlıdır!


1

konuya sadık kalmak "evre ile frek alanda pencere efekti kaldırma" (OP belki de başka bir şey veya benzer bir şey elde etmek istedim rağmen), ben bu özel konu ile kişisel deneyime sahip yorum eklemek eklemek istiyorum.

Sıklıkla, Hann pencereli çerçevelerini varsayılan olarak kullanan bir STFT çerçevesinde çalışan, giriş spektrumunun yerine NON pencereli olarak beklendiği gelişmiş spektral işleme taşımak için frekans alanında bir Hann penceresini kaldırma ihtiyacım var (ör. Örtüşme-kaydetme evrişimi veya ) filtre.

Tek kelimeyle: evet yapabilirsiniz. Bir pencerenin matematiksel olarak kaldırılmasına rağmen (zaman veya frekans alanında) sonsuza kadar kaybolan verilerin yeniden yapılandırılmasını ima eder, pratikte muhtemelen en az kayıpla yapabilirsiniz.

Bir Hann (yükselen kosinüs) penceresi alalım. Zaman etki alanı formülü, y = (1-cos (pi * x)) / 2'dir ve x, sıfırdan çerçeve içine bir tanesi hariçtir. Karşılık gelen frekans alanı gösterimi bin0 = (0.5,0i), bin1 = (- 0.5,0i) 'dir. Zaman alanındaki etkisini kaldırmak için, sinyali yukarıda belirtilen pencere işlevine bölmek isteyebilirsiniz. Aynı şeyi frekans alanında yapmak için, spektrumu penceresiz olacak şekilde söz konusu fonksiyonun karşılıklı spektrumu ile ikna edebilirsiniz. Bu fonksiyon her iki uçta da sıfır olduğu için (aslında yuvarlama hataları olmadığı sürece sadece ilk noktada matematiksel olarak sıfırdır), sonsuzluğu önlemek için sonsuzluğu 10000 gibi büyük bir değerle değiştirebilirsiniz. Bu tür evrişimin sonucu, penceresiz spektrumdur. Zamanı zaman alanına dönüştürerek,

Belki de dikdörtgen bir pencereyi kaldıramazsınız, çünkü sinyalin geniş alanlarını sıfıra çarparak kaybedilen veri miktarını teoride kurtarmak imkansızdır. Ama bunun spektrum içeriğine bağlı olduğunu düşünüyorum. Örneğin, düz bir sinüzoidin spektrumu ise, dikdörtgenin sıfır olduğu ve bir olduğu yerde (yani karşılıklı olduğu) yüksek bir değer olan bir fonksiyonun spektrumu ile kıvrık olarak dikdörtgen pencere desenini kaldırarak, yine de tüm sinyali yeniden yapılandırmak için bir sinüzoidin spektrumunu (büyük ölçüde) elde edebilirsiniz.


0

iyi bir soru ve başkalarının sahip olduğundan emin olduğum iyi bir fikir. de frekans bölgesinde -convolution zaman alanındaki çarparak gibidir ve frekans alanında Hann penceresi etkisini dekonvolüsyonuna eğer, o zaman alanındaki Hann penceresinin etkisiyle senin bölen gibi. Hann penceresinin sıfıra gittiği kuyruklarda, endişelenecek çok küçük bir sayıya bölünüyor.

genellikle pencere efekti kalır, çünkü geri dönüşürseniz pencerenin etki alanını zaman etki alanında isteyebilirsiniz. ya da asla dönüşüme dönmüyorsanız (bu bir alg veya modifikasyon alg değil, bir modifikasyon alg değil), o zaman sadece bu zirvelerin özellikleri olan parametrelerle ilgilenirsiniz ve sadece bilinen bir ile dönüşmenin bilinen etkisi ile ilgilenirsiniz. ve çıkarılan bir parametreyi deterministik bir şekilde değiştirebilir. o zaman ayıklanan parametrenizde bunu telafi edersiniz.

son olarak, ne yaptığınıza bağlı olarak, analiz için bir guassian penceresi kullanmayı düşünebilirsiniz. çok az yan lob problemi vardır ve lineer koşullar altında (bir filtre gibi), pencereli her sinüsoid, zaman alanına geri döndüğünde pencerelenmiş şekli korur. bu pencere geri alınabilir ve zaman alanına geri dönüştürüldükten sonra bir Hann penceresi uygulanabilir.


6
Prensip olarak beyanlarınızı kabul ediyorum. Bununla birlikte, OP dekonvolüsyondan bahsetmiyor, elde edilen spektrumu hanning penceresinin spektrumu ile karıştırıyor. (yani aslında hanning kareli bir pencereyle pencereleme)
Maximilian Matthé

1
hayır, OP etkiyi ikiye katlamak değil, efekti kaldırmaktan bahsediyor . bölünme karşılıklılık ile çarpma ile aynıdır. bölüm olarak adlandırdığımız sonucu veren böyle bir sayı ile çarpılır . bir alandaki kıvrımın diğer alandaki çoğalma ile aynı olması nedeniyle, kıvrımlanma özel olarak belirlenmiş bir şeyle kıvrılma ile aynıdır.
robert bristow-johnson

2
OP, elde edilen spektrumun pencerenin spektrumu ile bir kıvrımını gerçekleştirerek dalgaların çıkarılmasından bahsediyor. Bu, sinyalin kare pencereyle çarpılmasını sağlar (zamandaki ilk çarpmadan bir pencere, ikincisi frekanstaki
evrişimden gelir

1
Tam olarak değil. Kareli pencerenin çarpılmasından farklı sonuçlar veren spektrumun büyüklüklerinde bir kıvrım yapıyorum . Matematiksel olarak neyi temsil ettiğinden emin değilim ... Her iki spektrum büyüklüğü arasında çapraz bir korelasyon olarak görüyorum (çünkü pencere spektrumları simetriktir).
Pier-Yves Lessard

0

Spektrumu yumuşatmak için kullandığınız teknik genellikle spektrumun kendisini analiz ederken kullanılır ve zaman alanındaki etkileri umursamazsınız (örn. Frekansa dayalı sinyal algılama veya bant genişliği ölçümü yapmak). Düzgünleştirme için kullanılan pencerenin, zaman alanında kullanılan pencereyle aynı olması şartı bile yoktur. DFT'den önce bir zaman alanı penceresi kullanmanın ana nedenlerinden biri, DFT'nin sinyalin uçlarında varsaydığı etraftaki sargıdaki süreksizliği en aza indirmektir (DFT doğal olarak daireseldir). Frekans alanında yumuşatmanın amacı, tepe tespiti veya bant genişliği ölçümü gibi analizleri kolaylaştırmaktır. Birinin "en iyi" penceresi diğeri için "en iyi" pencere olmayabilir. Aslında, spektral yumuşatma için kullanılan bir pencerenin DFT'sini hiç görmedim.


Anladığım kadarıyla, ana lobların merkezinde zirveler elde etmeden önce spektrum ile çapraz bir korelasyon yapıyorum. Zaman etki alanı pencerelerini kullanmak bariz seçimler gibi görünüyor ve hanning pencere spektrumunun nerede olduğunu bulmak için neden bir boxcar pencere çapraz korelasyon kullanacağımı görmüyorum. Neden aynı pencereden başka bir şey isteyelim ki?
Pier-Yves Lessard

Evet, tanımladığınız sonuç, pencerenin otokorelasyonu ile bir kıvrımdır, ancak bu sadece farklı bir pencereyle kıvrılmaktadır. Otokorelasyon DC'de ÇOK sıkı bir tepe noktasına neden olacaktır. Böylece sinyal spektrumunu çok sıkı bir düşük geçiş filtresi ile etkili bir şekilde kıvırdınız. Bu filtrenin otokorelasyon olduğu gerçeğini değil, gördüğünüz sonucu veren frekans tepkisidir. Otokorelasyon olması tesadüf.
cassman
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.