Günlük aralıklı bir güç spektrumunu nasıl hesaplayabilirim?


20

Frekansların logaritmik olarak aralıklı olduğu bir güç spektrumunu hesaplamak istiyorum.

Gelen Welch yöntem bir denge elde edilen güç spektrumu frekans çözünürlüğü ve ortalama değerlerinin (sonuç yani hatası) arasında bulunmaktadır. Bu değiş tokuşun dinamik olmasını istiyorum, yani düşük frekansta daha iyi bir çözünürlük elde etmek için düşük frekanslı noktalar için daha az ortalama yapmak istiyorum.

Bunu yapmanın standart bir yolu var mı?

Bir yolun başlangıçta pwelchçok yüksek bir çözünürlükle (düşük ortalama sayısı) yapmak ve daha sonra logaritmik binning kullanarak elde edilen spektrumu yeniden oluşturmak olduğunu düşünüyorum.


2
Genellikle düzenli spektrumu hesaplar ve daha sonra verileri bir günlük ölçeğinde çizerim. DFT'nin değiştirilmiş tanımını doğrudan kullanmadan bile muhtemelen emin değilim, ama gerçekten yolların olup olmadığını görmekle ilgileniyorum.
Phonon

İlgilenenler için OP ile ilgili SO sorusu .
Lorem Ipsum

SO ile ilgili başka bir soru: stackoverflow.com/questions/9849233/…
nibot

Yanıtlar:


9

Bu soruyu doğrudan ele alan bir makale buldum:

Makaledeki ilk birkaç şekil, bu algoritmanın çözdüğü sorunu güzel bir şekilde göstermektedir ve referanslar, diğer yaklaşımların (sabit-Q dönüşümü, temperlenmiş Fourier dönüşümü, bir anket makalesi, vb.)

Yaklaşımları, mevcut bir FFT tabanlı güç spektrumu tahmininin çıktısını yeniden bölmek değil, yalnızca ilgili Fourier dönüşümünü (logaritmik olarak aralıklı) ilgili frekanslarda hesaplamaktır. Tahmin edilecek her frekans için, temel olarak Welch'in algoritmasını uygularlar, ancak her bir frekans için özel olarak seçilen bir dönüşüm uzunluğuna (ve ayrıca ortalamaların sayısına) sahiptirler. Her frekans bölmesinin hesaplanması tüm zaman serilerini kullanır, ancak farklı şekilde bölümlere ayrılır. Sonuçlar, çözünürlüğün (bölme genişliği) frekansın düzgün bir fonksiyonu olması arzu edilir özelliğe sahiptir ve sonuçlar ya bir güç spektral yoğunluğu ya da bir güç spektrumu olarak kalibre edilebilir.

Matlab uygulaması burada: https://github.com/tobin/lpsd

resim açıklamasını buraya girin Açıklama: Bu çalışmanın yazarları benimle aynı kurumda.


1
Bir spektrumu bu şekilde hesaplamanın faydaları nelerdir? Bu yöntemin motivasyonu nedir?
Spacey

1
FFT kullanarak güç spektrumunu hesaplamaktan ve daha sonra bazı durumlarda yeniden başlatmaktan daha hızlı olabilir.
nibot

Bir Python uygulaması başlattım: github.com/rudolfbyker/lpsd Yine de test edilmesi gerekiyor. Katkıları bekliyoruz.
rudolfbyker

1

Bu durumda, bilinen bazı değerler listesinin sıklığını hesaplamak için en küçük kareler yöntemini kullanırdım. En yaygın yöntem Lomb yöntemidir. Bir FFT veya DFT'ye oldukça benzer çalışır, ancak frekansı yalnızca belirlenen frekanslarda hesaplar ve bir sorun olması durumunda eksik verileri işleyebilir. Fikir aşağıdaki gibidir:

  1. Üzerinde örneklemek istediğiniz frekans bantlarına uyan, hesaplanacak frekansların ( ) bir listesini belirleyin.w
  2. wtjXj

Px(ω)=12([jXjcosω(tjτ)]2jcos2ω(tjτ)+[jXjsinω(tjτ)]2jsin2ω(tjτ))

Not, bu bir FFT kadar güzel ölçeklenmez, bu yüzden bunu sadece istenen frekansların sayısı tüm verileri toplamak için gerekli olan FFT'den çok daha düşükse yaparım.

Aksi takdirde, bir enterpolasyon yöntemi veya bir FFT veya DFT'nin başka bir yeniden örneklenmesi yapılabilir.

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.