Menggunakan vektor eigen untuk memperkirakan frekuensi fundamental sinyal, melalui MUSIK

14

Konteks:

(Penafian: Ini BUKAN masalah komunikasi).

Saya mencoba memperkirakan frekuensi fundamental dari sinyal periodik yang nyata. Sinyal ini, dibangun dengan menyaring pencocokan sinyal mentah, dengan pulsa. (filter yang cocok). Sinyal yang dihasilkan memiliki karakteristik sebagai berikut:

  • Itu periodik. (Fundamental adalah 1 / periode), dan inilah yang saya coba perkirakan.

  • Ini tidak stasioner dalam waktu. Secara khusus, amplitudo pulsa periodik dapat bervariasi dalam amplitudo. (misalnya, satu pulsa bisa rendah, sementara yang lain tinggi, dan berikutnya rendah lagi, dan satu setelah media itu, dll).

  • Saya percaya ini adalah frekuensi yang diam, (sebanyak Anda menerima perubahan amplitudo, tetapi tidak mengganti band).

  • Ini memiliki distorsi harmonik. Maksud saya di sini adalah itu, (dan koreksi saya jika saya salah), tetapi bahwa pulsa individu dalam sinyal bukanlah sinusoid, tetapi bentuk 'funky' seperti gaussian, triangle-ish, half-a-parabola, dll .

Saya mencoba memperkirakan frekuensi dasar sinyal ini.

Tentu saja, kadang-kadang sinyal mentah hanyalah kebisingan, tetapi masih melewati jalur dan tetap cocok difilter. (Lebih lanjut tentang itu nanti).

Apa yang saya coba:

Sekarang, saya mengetahui banyak penduga frekuensi dasar seperti

  1. Metode korelasi otomatis
  2. YIN, dan semua dependensinya
  3. Metode FFT.

dll,

  • YIN: Saya belum mencoba YIN.

  • Metode FFT: Metode FFT akan memberi Anda semua harmonik dan fundamental, tetapi saya perhatikan bahwa itu bisa menjadi rewel terutama dengan bisnis non-stasioner ini, karena fundamental tidak selalu puncak tertinggi. Sangat cepat, Anda menemukan diri Anda mencoba untuk memastikan yang mana dari banyak puncak adalah yang mendasar, dan itu menjadi masalah yang sulit.

  • Autokorelasi: Metode autokorelasi tampaknya lebih baik daripada metode FFT, tetapi masih sensitif terhadap penyimpangan amplitudo sinyal waktu-domain. Metode auto-korelasi mengukur jarak antara lobus tengah, ke lobus tertinggi berikutnya. Jarak itu sesuai dengan yang mendasar. Namun dalam kasus non-stasioner, lobus sekunder ini bisa terlalu rendah, dan Anda mungkin melewatkannya di beberapa skema ambang batas.

Kemudian terpikir oleh saya bahwa mungkin saya bisa menggunakan metode ruang bagian seperti MUSIK untuk memperkirakan fundamental. Setelah menguji ini, saya menemukan bahwa itu benar-benar memberikan beberapa hasil yang sangat bagus - itu memuncak - kuat - dan bahkan dalam kasus-kasus non-stasioner - pada frekuensi yang sesuai dengan dasar sinyal Anda. (Tetapkan jumlah sinyal yang Anda cari ke 2, dan itu akan mengambil fundamental - yaitu, pilih 2 vektor eigen tertinggi (sesuai dengan nilai tertinggi nilai eigen) dari matriks kovarians sinyal, buang, dan bangun subruang kebisingan dari yang tersisa, proyeksikan hipotesis Anda sinusoid kompleks terhadap mereka, ambil timbal balik, dan voila, spektrum pseudo-bagus).

Pertanyaan & masalah:

  1. Meski begitu, saya masih ingin memahami mengapa ini bekerja lebih baik.
  2. Dalam MUSIK kita membuang subruang sinyal dan menggunakan subruang kebisingan. Tampaknya bagi saya bahwa vektor eigen dari ruang bagian sinyal sebenarnya adalah semacam 'paling cocok' - mereka sebenarnya adalah filter yang cocok secara optimal. Jadi: Mengapa tidak menggunakan sinyal vektor ruang bagian sinyal langsung? (Saya tahu ini bukan MUSIK lagi tapi mengapa menggunakan subruang kebisingan lebih baik?)
  3. Terakhir, masalah terakhir adalah meskipun metode ini tampaknya bekerja jauh lebih kuat untuk sinyal non-stasioner (seperti yang didefinisikan di atas), masalahnya adalah bahwa sekarang saya SELALU mendapatkan jawaban - bahkan ketika tidak ada apa pun selain suara dalam sistem! (Saya sebutkan di atas bahwa sinyal baku pra-pencocokan yang disaring dapat berupa white noise kadang-kadang, ketika Anda tidak memiliki sinyal berkala).

Cara apa yang mungkin ada untuk mengatasi ini? Saya telah mencoba melihat nilai eigen dan ada lebih banyak 'kelengkungan' dalam peluruhan mereka dalam kasus di mana hanya ada kasus noise VS di mana ada sinyal, tapi saya khawatir itu mungkin tidak cukup kuat.

Bonus:

  1. Kapan vektor eigen dari matriks kovarians sinusouds VS sesuatu yang lain? Apa yang menentukan apakah itu sinusoid atau tidak? Mengapa mereka tidak berbentuk gelombang persegi? Atau masukkan-bentuk-lain-di sini sinyal?
Spacey
sumber
Mohammad- Bisakah Anda melakukan beberapa pengeditan / klarifikasi? Saya bisa menjadi stickler untuk terminologi, tetapi penting bagi pengunjung masa depan. Selain 'bagus & bersih', bisa dikatakan distorsi harmonik. Alih-alih berulang, bisa Anda katakan secara berkala. Stasioner dapat merujuk pada statistik yang bervariasi waktu atau spektrum yang bervariasi waktu. Bisakah Anda mengklarifikasi? Metode autokorelasi adalah alias untuk metode Yule-Walker. Ketika Anda mengatakan 'jumlah sinyal' apakah ini sinusoid nyata atau eksponensial kompleks? Bisakah Anda menggunakan nilai eigen nilai terbesar? Rank memiliki arti lain dalam aljabar linier. Sama dengan 'varian tertinggi' ...
Bryan
1
... (lanjutan) Satu hal penting (dan saya akan perhatikan ini dalam jawaban saya ketika Anda mengklarifikasi), adalah bahwa metode MUSIC adalah metode subruang kebisingan. Jadi, idealnya, vektor eigen ruang bagian sinyal, yang dengan nilai eigen nilai terbesar, tidak digunakan. Juga, sinyal Anda adalah jumlah sinusoid jika periodik. Jika periodik, dapat didefinisikan oleh deret Fourier, yang merupakan jumlah dari sinusoid diskrit.
Bryan
@Bryan Maaf atas keterlambatan kembali (akhir pekan yang panjang), saya akan segera memperbaiki seluruh pertanyaan dan memberi tahu Anda - terima kasih!
Spacey
@Bryan Saya akhirnya mengubah seluruh posting, menambahkan saran Anda, dan juga mengklarifikasi banyak konteks / masalah. Silahkan lihat. Dengan segala cara, beri tahu saya jika saya dapat mengklarifikasi hal lain.
Spacey
@Mohammad Bisakah Anda melihat apakah ada sinyal atau tidak oleh "kekuatan" vektor eigen - yaitu nilai eigen?
Jim Clay

Jawaban:

8

f(t,s)=CHaiv(X(t),X(s))=CHaiv(X(t-kamu),X(s-kamu))=f(t-kamu,s-kamu)
f(t,s)=f(t-s,0)t-s
CHaiv(X(s),X(t))=-esaya(s-t)xdμ(x)

Intuisi adalah bahwa matriks autokorelasi diperkirakan untuk beberapa set pengamatan terbatas dalam sinyal berperilaku asimtotik seperti matriks sirkulans karena korelasi hanya bergantung pada perbedaan waktu bukan posisi absolut dan matriks sirkulans memiliki sinusoid diskrit sebagai vektor eigen mereka (karena mereka konvolusi operator). Ada banyak bukti tentang ini dan ini adalah intuisi yang samar.

Himpunan fungsi autokorelasi yang didiagonalisasi oleh sinusoid adalah persis yang berhubungan dengan proses stasioner, tetapi banyak fungsi autokorelasi proses lainnya akan didiagonalisasi oleh sinusoid selama beberapa interval. Proses-proses ini sesuai dengan proses yang dapat diperkirakan dengan proses diam selama suatu interval. Lebih detail ada di sini .

Proses non-stasioner umum dapat memiliki fungsi autokorelasi yang tidak perlu didiagonalisasi oleh sinusoid.

Proses yang diam secara lokal akan memiliki spektrum yang berubah perlahan dan / atau sejumlah kecil perubahan mendadak yang ditempatkan dengan baik dalam spektrum. Pidato, suara binatang, musik, dan banyak suara alami lainnya sesuai dengan deskripsi ini. Alasan mengapa algoritma identifikasi ruang bagian bekerja, seperti yang saya mengerti, adalah bahwa beberapa bentuk stationarity lokal (tidak ketat) umumnya berlaku untuk jenis sinyal yang kami analisis.

Tanda
sumber
μ
@ Marks Terima kasih banyak. Saya memiliki beberapa tindak lanjut: 1) Berdasarkan ini, dapatkah kita mengatakan bahwa suatu proses stasioner sebanyak vektor eigen dari matriks kovariansnya adalah sinusoidal? Bisakah ini menjadi semacam ukuran stasioneritas? 2) Anda menyebutkan "... dan matriks sirkuler memiliki sinusoid terpisah sebagai vektor eigen mereka (karena mereka adalah operator konvolusi) ..." Saya tidak jelas apa artinya ini - operator apa? Tolong jelaskan. 3) Ketika Anda mengatakan "Himpunan fungsi autokorelasi" Anda berbicara tentang baris matriks kovarian? Terima kasih lagi.
Spacey
@Mohammad Cheers: 1) Ya, ini bisa dianggap sebagai ukuran stasioneritas. 2) Matriks sirkulant terbentuk dari semua permutasi siklik dari suatu vektor, jadi mengalikan matriks sirkulant dengan vektor lain adalah konvolusi antara kedua vektor tersebut. 3) Fungsi autokorelasi Corr (s, t) adalah autokorelasi antara X (s) dan X (t) untuk beberapa proses acak X. Saya menyebutnya fungsi karena saya ingin secara bersamaan menangani kasing kontinu dan diskrit. Matriks autokorelasi sampel dapat dilihat sebagai pendekatan diskrit untuk fungsi ini.
Mark S
@ Terima kasih karena telah menunjukkan Wiener – Khinchin_theorem, saya mempelajari analisis Fourier saya pertama kali di grup dan tidak pernah diperkenalkan secara formal di kelas pemrosesan sinyal.
Mark S