Bağlam:
(Feragatname: Bu bir iletişim sorunu DEĞİLDİR).
Gerçek, periyodik bir sinyalin temel frekansını tahmin etmeye çalışıyorum. Bu sinyal, bir ham sinyalin bir nabız sinyali ile eşleştirilmesi ile oluşturulmuştur. (eşleşen filtre). Ortaya çıkan sinyal aşağıdaki özelliklere sahiptir:
Periyodiktir. (Temel 1 / dönem) ve tahmin etmeye çalıştığım da bu.
Zaman içinde durağan değildir. Spesifik olarak, periyodik darbelerin genlikleri genlik olarak değişebilir. (örneğin, bir nabız düşük, bir diğeri yüksek ve bir sonraki düşük ve o ortamdan sonra bir vb. olabilir).
Frekansın sabit olduğuna inanıyorum (değişen genlikleri kabul ettiğiniz, ancak bantları değiştirmediğiniz kadar).
Harmonik distorsiyonu vardır. Burada demek istediğim, (ve yanılıyorsam beni düzeltin), ancak sinyal içindeki bireysel darbelerin sinüzoidler değil, bir gauss, üçgen-ish, yarı-parabol, vb.Gibi 'korkak' şekillerdir. .
Bu sinyalin temel frekansını tahmin etmeye çalışıyorum.
Tabii ki, bazen ham sinyal gürültüden başka bir şey değildir, ancak yine de yoldan geçer ve yine de filtrelenir. (Daha sonra daha fazlası).
Ne denedim:
Şimdi, çok sayıda temel frekans tahmincisinin farkındayım.
- Otomatik korelasyon yöntemi
- YIN ve tüm bağımlılıkları
- FFT yöntemi.
vb,
YIN: Henüz YIN'i denemedim.
FFT Yöntemi: FFT yöntemi size tüm harmonikleri ve temelleri verecektir, ancak temelin her zaman en yüksek zirve olmadığı için özellikle bu sabit olmayan iş ile titiz olabileceğini fark ettim. Çok hızlı bir şekilde, kendinizi birçok zirveden hangisinin temel olduğunu bulmaya çalışırken buluyorsunuz ve bu zor bir sorun haline geliyor.
Otokorelasyon: Otokorelasyon yöntemi FFT yönteminden daha iyi gibi görünmektedir, ancak yine de zaman alanı sinyalinin genlik düzensizliklerine duyarlıdır. Otomatik korelasyon yöntemi, merkez lob ile bir sonraki en yüksek lob arasındaki mesafeyi ölçer. Bu mesafe esasa karşılık gelir. Bununla birlikte, durağan olmayan durumlarda, bu ikincil lob çok düşük olabilir ve bazı eşik şemasında kaçırabilirsiniz.
O zaman bana temelini tahmin etmek için belki MUSIC gibi bir altuzay yöntemi kullanabilirim. Bunu test ettikten sonra, sinyalinizin temeline karşılık gelen frekanslarda gerçekten çok güzel sonuçlar verdiğini buldum - sağlam bir şekilde - ve hatta sabit olmayan durumlarda - zirve yapıyor. (Aradığınız sinyallerin sayısını 2'ye ayarlayın ve sinyallerin kovaryans matrisinin temelini alır - yani en yüksek 2 özvektörü (özdeğerlerin en yüksek değerlerine karşılık gelir) seçer, atar ve geri kalan gürültü alt uzay, hipotez karmaşık sinüzoidler onlara karşı yansıtmak, karşılıklı almak ve voila, güzel bir sözde spektrum).
Sorular ve Sorunlar:
- Bununla birlikte, bunun neden daha iyi çalıştığını anlamak istiyorum.
- MÜZİK'te sinyal altuzayını atarız ve gürültü altuzayını kullanırız. Bana öyle geliyor ki, sinyal altuzayının özvektörleri aslında bir çeşit 'en uygun' - aslında en uygun filtreler. Peki: Neden sinyal altuzay özvektörlerini doğrudan kullanmıyorsunuz? (Artık onun MÜZİK olmadığını biliyorum ama neden gürültü alt alanını o zaman daha iyi kullanıyor?)
- Son olarak, son sorun, bu yöntem sabit olmayan sinyaller (yukarıda tanımlandığı gibi) için çok daha sağlam çalışıyor gibi görünse de, sorun şu ki, sistemde gürültüden başka bir şey olmasa bile her zaman bir cevap alıyorum. (Önceden eşleştirilmiş filtrelenmiş sinyalin, periyodik bir sinyaliniz olmadığında bazen beyaz gürültü olabileceğini belirttim).
Buna karşı koymak için hangi yollar olabilir? Özdeğerlere bakmayı denedim ve sinyal olan VS durumlarının sadece gürültülü olduğu durumlarda çürümelerinde biraz daha 'eğrilik' var, ama yeterince sağlam olmayabilir.
Bonus:
- Kovaryans matrisinin özvektörleri ne zaman VS başka bir şeydir? Sinüzoid olup olmadıklarını ne belirler? Neden kare dalgalar? Veya buraya başka bir şekil ekleyin?