Goertzel algoritmasını kullanmak aslında daha iyi frekans çözünürlüğü sağlıyor mu?


19

Bu makaleyi okuyorum ve yazarın Goertzel Algoritması ile ilgili 'frekans çözümlemesini' liberal kullanımı ile biraz kafam karışıyor.

Temel soru: mu Goertzel algoritması kullanarak aslında size ilgilendiği belirli bandı üzerinde daha fazla frekans çözünürlüğü vermek, ya da sadece verimli FFT ilgi üzerine sadece belirtilen bant hesaplamak, ancak örnekleme sıklığına göre belirlenen aynı frekans çözünürlükte sayısına bölünerek örnekleri?

Örneğin, 100 KHz, (sabit) ve veri örneği sayısının 10000 olduğunu söyleyelim . (Ayrıca sabit). FFT uzunluğunun da olduğu normal bir FFT hesaplarsam , frekans çözünürlüğüm beklendiği gibi olur ve 10 Hz'e eşit olacaktır. Bu, kutularımın 10 Hz ile -50.000 Hz'den 50.000 Hz'ye ayrıldığı anlamına gelir. N N F sFsN-N-FsN-

Şimdi diyelim ki Geortzel Algoritması, sadece 20.000-21.000 Hz aralığındaki frekanslara bakmak için kullanmak istiyorum. Aynı kullanırsanız örneklerinin sayısı için ve aynı kullanmak benim FFT boyutu için, sonra benim frekans çözünürlüğü nedir? Hala 10 Hz mi? Yoksa Hz mi?, N 21 , 000 - 20 , 000N-N-21,000-20,00010000=0.1

0 ila 50.000 arasındaki frekansları değerlendirmek için 21.000 ila 20.000 arasındaki frekansları değerlendirmek için aynı kullanarak, ana lobdaki enterpolasyon noktalarının yanı sıra frekans çözünürlüğümü gerçekten artırmadığımı hissediyorum .N-

Bu doğru bir anlayış mı?

Yanıtlar:


18

Anlayışınız doğru.

Goertzel algoritmaları, aynı uzunlukta veya sayıda örnekten (ve FFT twiddle faktörlerinin bir trig yinelemesi ile üretildiği yerlerde) 1 bölü DFT veya FFT ile hemen hemen aynı sonucu verir. Goertzel uzunluğu. Ancak Goertzel algoritmasının birçok formu, FFT 1 bin sonucunun karmaşık sonucunu veya fazını değil, sadece büyüklüğü sağlar. Ayrıca, hesaplama olarak, jenerik bir Goertzel jenerik bir FFT'den sayısal olarak biraz daha az kararlı olabilir. Tamsayı-periyodik-diyafram-içi olmayan frekanslar için sonuç, aynı uzunluktaki bir DFT veya FFT kutuları arasındaki iç enterpolasyona eşdeğerdir (bu, bir interpolasyonun FFT sonuçlarının daha tipik parabolik enterpolasyonundan biraz daha doğru olabilir) ).

İnterpolasyonun çözünürlüğü grafiksel anlamda arttırdığı (daha fazla arsa noktası) veya maksimum teorik anlamda değil, 2 yakın tepe noktası olarak 2 yakın aralıklı spektral çizgiyi daha iyi ayırmak için maxima'yı görsel olarak tespit etmeyi kolaylaştırdığı söylenebilir.


3
İkinci paragraf: Çok iyi söylenen hotpaw2. Bence bu birçok insanın kafasını karıştırıyor. Evet, görünüşe göre Goertzel Algo, FFT'yi seçili bir alt bant üzerinden hesaplamanın hızlı bir yolu, normal bir F alan etki enterpolasyonu da atılmış, eğer her şeyi normal gidiyormuş gibi tutarsanız FFT.
Spacey

1

Sana söz edildi makaleye erişmek mümkün değildi, ama bulabileceğinizi düşünüyoruz bu bir oldukça ilginç. Yazarlar, verilen sinyaldeki temel frekansın tamsayı olmayan katları olan frekanslardaki genlikleri ve fazları bulmak için kullanılabilecek Goertzel algoritması versiyonunu sundular. Bu, algoritmalarının frekans çözünürlüğünü geliştirdiği anlamına gelir. Makale, matematiksel kanıt ve algoritmanın kodunu içerir.

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.