Sadece büyüklükteki bir frekans cevabından transfer fonksiyonu nasıl tahmin edilir?


11

Rastgele bir frekans yanıtı verildiğinde, verilen frekans cevabına "makul derecede iyi" bir yaklaşım (bazı belirli tahmin kalitesi kriterleri için) veren bir transfer fonksiyonunu (kutup ve sıfır takımyıldızı) tahmin edebilen, tahmin edebilen veya belirleyebilen hangi sinyal işleme yöntemleri mevcut olabilir? Belirli bir aktarım işlevi için gereken kutup ve sıfır sayısını ve ayrıca belirli bir hata hatası ödeneğini tahmin etmek için ne anlama geliyor? Ya da mümkünse bu kısıtlamaların karşılanamayacağını nasıl belirleyebiliriz?

Verilen frekans yanıtı gerçekten bilinen bir transfer fonksiyonu tarafından üretildiyse, bu yöntemlerden herhangi biri o orijinal transfer fonksiyonu üzerinde birleşecek mi? Verilen frekans cevabının (Gauss varsayımı) ölçüm hatalarına tabi olup olmadığı nasıl olur?

Sürekli alan yanıtları da ilginç olsa da, Z-düzleminde örneklenmiş spektrumda çalıştığınızı varsayın.

Eklendi: Sadece frekans cevabının büyüklüğü verilirse çözüm yöntemleri farklı mıdır (örneğin, herhangi bir faz cevabı olan bir çözüme izin verilir)?

Eklendi: İkinci sorun, birim çember etrafında bilinen bir büyüklük yanıtı, ancak bilinmeyen / ölçülmemiş faz yanıtı göz önüne alındığında, en çok ilgilendiğim şey, ölçülen sistem tahmin edilebilir ve eğer öyleyse hangi koşullar altında?


Rasyonel bir spektrum olarak keyfi bir frekans tepkisine yaklaşmaya mı çalışıyorsunuz? Yani (b [0] + b [1] z ^ -1 ...) / (1 + a [1] z ^ -1 ...)? Eğer öyleyse, buna tipik olarak ARMA modelleme denir. AR modellemesinden daha zordur, çünkü sinyalin otokorelasyonu hareketli ortalama katsayılarla (b [] veya sıfır) doğrusal olmayan bir şekilde ilişkilidir. Varsayım doğruysa daha resmi bir cevap yazabilirim.
Bryan

@Bryan: Evet. Bir "kutup ve sıfır" çözeltisi (rasyonel bir transfer fonksiyonu) belirterek (tercihen sadece bir kutuptan veya aynı dereceden sıfır çözeltiden / tahminden daha iyiyse) uygun olduğunu ima etmeye çalıştım.
hotpaw2

Frekans tepkisine ne anlama geliyor ? Bazı insanlar veya frekans tepki fonksiyonu ile transfer fonksiyonu arasında ayrım yapar, bazıları ise . Örneğin, daha önceki bir soruya verilen bu cevabı izleyen tartışmaya bakınız . H(ω)H(f)H(s)
Dilip Sarwate

@ Silil Sarwate: H (w) sadece birim daire için (bu fazlalık mı?) Verildiğinde, tam bir z düzlemi gösterimini çözün / tahmin edin. Umarım, bu benim asıl soru açıklamamla uyumludur.
hotpaw2

1
Eklediğiniz şeyleri değiştirir. Kutuplar ve sıfırlar, aynı büyüklük yanıtı ile değişebilir. Bunun en yaygın örneği, bir minimum faz filtresi tasarlanmasıdır. Bu tipik olarak mevcut bir sistemi almayı ve kutupları ve sıfırları birim çemberin içine yansıtmayı içerir. Bu sadece faz tepkisini değiştirir, büyüklük tepkisini değiştirmez.
Bryan

Yanıtlar:


14

Bir yaklaşım, frekans alanı en küçük kareler (FDLS) yöntemini kullanmak olacaktır . Ayrık zamanlı bir sistemin frekans yanıtına ait bir dizi (karmaşık) örnek ve tasarımcı tarafından seçilen bir filtre sırası göz önüne alındığında, FDLS yöntemi , katsayı kümesini (doğrudan kutup kümelerine eşleyen) çözmek için doğrusal en küçük kareler optimizasyonunu kullanır ve sıfırlar), frekans yanıtı, istenen toplam yanıtı minimum toplam kare hatasıyla eşleştiren sistem için.

-sıralı lineer ayrık zamanlı bir sistemin frekans yanıtı şu şekilde yazılabilir:N

H(ω)=H(z)|z=ejω

burada , sistemin alanındaki transfer fonksiyonudur . Bu genellikle doğrudan sistemin fark denkleminden sonra gelen rasyonel biçimde yazılır:H(z)z

H(z)=k=0Nbkzk1+k=1Nakzk

Bu nedenle frekans yanıtı:

H(ω)=k=0Nbkejkω1+k=1Nakejkω

Almak için yukarıdakileri yeniden düzenleyin:

k=0NbkejkωH(ω)(1+k=1Nakejkω)=0

Bu denklem bilinmeyen sistem farkı denklem katsayıları ve . İstenen frekans cevabı verildiğinde, yukarıdaki denklemi tam olarak değerleri için karşılayan katsayıları bulmak istiyoruz . Genel durum için, bu zor. Bunun yerine, frekans yanıtı ayrı bir frekans kümesinde istenen yanıta yaklaşan bir sistem için bir dizi katsayı arayacağız.2N+1bkakH(ω)ω

Doğrusal en küçük kareler yöntemini kullanarak uygun bir katsayı setini çözmek için, bu bilinmeyenlerde aşırı belirlenmiş bir denklem sistemi üretiyoruz. Bu denklemleri oluşturmak için (burada ve genellikle frekans koleksiyonu seçin . Her frekans için, değerinin karşılık gelen değerini aşağıdaki denklemle değiştirin:ωm[0,2π),m=0,1,,M1M>2N+1M2N+1)ωk

k=0NbkejkωkH(ωk)(1+k=1Nakejkωk)=0

değerleri , seçilen frekanslarda istenen frekans cevabını örnekleyerek elde edilir . Doğrusal denklemler sistemi oluşturulduktan sonra, sistemin ve katsayıları (ve dolayısıyla kutupları ve sıfırları) için en küçük kareler çözümü kolayca elde edilir. Bu katsayıları yukarıda gösterilen denklemine geri , (umarız) başladığınız şablon frekans yanıtına yakın bir fonksiyon vermelidir.H(ωk)ωkbkakH(ω)

Bu tekniğin birkaç avantajı vardır:

  • Şablon olarak herhangi bir rasgele karmaşık (büyüklük ve faz) frekans yanıtı kullanılabilir. Yalnızca bir büyüklük kısıtlamanız varsa, doğrusal faz gibi bir faz yanıtı seçebilirsiniz.

  • Hem FIR hem de IIR filtreleri tasarlamak için kullanılabilir; FIR gerçekleştirme için, katsayılarını yukarıdan kaldırın .ak

  • Tekniğin uygulanması çok basittir ve istenen sistem sırasına göre kolayca parametrelendirilebilir.

  • Tasarım kısıtlamalarınızı karşılamak için gerekli sistem sırasının ne olduğunu önceden tahmin etmenin iyi bir yolu olmasa da , seçilen bazı hata metriği karşılanıncaya kadar sırasını yinelemeli olarak artırmak basittir (tepe hatası, toplam kare hatası, veya belirli bir bant içindeki sapma).N

Gerekirse ağırlıklı en küçük kareler optimizasyonunu kullanmak için bu yöntemi biraz genişletebilirsiniz; bu, frekans yanıtı yaklaşık hatası diğerlerinden daha ağırlıklı olan bölgeleri belirtmenize olanak tanır. Bu, "bakımsız" alanlarda daha fazla eğime izin verirken geçiş bandı / durdurma bandı alanlarını daha sıkı kontrol etmenizi sağlar.


1
Mükemmel cevap !! En az kare hata ile filtre tasarımları yaparken "sanat" tam olarak "hatanın" ne olduğunu doğru tanımlamaktır. Bu, doğru frekans ızgarasını seçerek, belirli frekanslarda ağırlıklandırma faktörlerini seçerek ve bant dışı davranış için daha fazla kısıtlama ekleyerek ve kutuplarınızı birim çemberin içinde tutmak için kontrol edilir.
Hilmar

Bu potansiyel çözümdeki sorun, eğer faz mevcut bir transfer fonksiyonu hakkında bilinmiyorsa, yanlış faz varsayılırsa, siparişin ne kadar doğru tahmin edildiği veya büyüklük tepkisi ölçülse de, FDLS yanlış çözüm üzerinde birleşebilir.
hotpaw2

@ hotpaw2: Bu beklenen bir şey. Faz yanıtı hakkında hiçbir şey bilmiyorsanız, eşit derecede geçerli olan sonsuz sayıda çözüm vardır (yani doğru büyüklük yanıtına sahip olacaklardır). Sizi en uygun çözüm olarak gördüğünüz şeye yönlendirmek için bazı bilgilere ihtiyacınız olacak.
Jason R

@JasonR: Tek doğru çözüm, herhangi bir (mevcut) sonlu düzen sistemi için sonlu bir sayı olan kutupların / sıfırların iç / dış çevirme permütasyonları olmalıdır.
hotpaw2

6

Meslektaşlarım vektör uydurma ile harika sonuçlar elde etti :

Vektör Uydurma, frekans alanında rasyonel yaklaşım için sağlam bir sayısal yöntemdir. Durum uzay modellerini, hem tekli hem de çoklu giriş / çıkış sistemleri için doğrudan ölçülen veya hesaplanan frekans tepkilerinden tanımlamaya izin verir. Ortaya çıkan yaklaşım, gerçek olan veya karmaşık konjugat çiftleri halinde gelen stabil kutupları garanti eder.

FIR - IIR dönüşümü için kullanıyoruz.

Daha az talepkar uygulamalar için, sabit sayıda kutup ve sıfır için sadece doğrusal olmayan en küçük kareleri kullanabilirsiniz. Bu, Matlab'da invfreqsve olarak uygulanır invfreqz.


0

Başka bir yaklaşım: frekans cevabını çizin ve ona en iyi şekilde bir Bode grafiğini yerleştirin. Bu, yaklaşık bir çözüm için çok hızlı bir şekilde veya daha iyi uyum için bazı ayrıntılı en küçük kareler anlamında yapılabilir. GTH

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.