Geser sinyal dengan fraksi sampel


9

Saya memiliki sinyal dengan waktu sampel 0,5 mikro detik dan saya ingin menggeser sinyal ini dengan sebagian kecil dari waktu sampel, katakan dengan 3 nano detik.

Saya telah membaca beberapa sumber online tentang penyaringan fraksional dan tentang menggunakan FFT dan IFFT untuk melakukan penundaan tersebut. Dapatkah seseorang mengarahkan saya ke beberapa teori tentang ini atau memberi saya ide tentang bagaimana menerapkannya.

Untuk penggeseran sinyal reguler untuk sampel bilangan bulat, saya telah menerapkan ini dengan menggeser sinyal dengan jumlah sampel yang diperlukan dan menambahkan nol di awal. Apakah pendekatan ini benar?

Jawaban:


13

Ada artikel ikhtisar yang baik yang muncul pada tahun 1996 di IEEE Signal Processing Magazine: Memisahkan penundaan unit: alat untuk desain filter keterlambatan fraksional . Yang menyenangkan tentang itu adalah bahwa ada juga satu set file Matlab terkait yang tersedia. Rutinitas ini akan memungkinkan Anda untuk merancang sistem seperti itu.

Adapun pergeseran oleh jumlah integer sampel, apa yang Anda lakukan jelas benar.


Saya hanya membaca kertas jadi saya tidak yakin apakah ini secara eksplisit ada di sana, tetapi penundaan fraksional terkait dengan turunan fraksional, yang menggeneralisasikan turunan ke-n ke urutan sewenang-wenang.
soultrane

2

Selain melakukan solusi tipe fft, Anda juga dapat menggunakan interpolasi, jenis interpolasi spesifik yang sesuai akan didasarkan pada kebutuhan Anda tentu saja! Interpolasi linier telah bekerja dengan baik untuk saya di masa lalu dengan efek flange, tetapi jarak tempuh Anda mungkin bervariasi.

Interpolasi lagrange mungkin juga layak dilihat, jika interpolasi linier tidak cukup baik. http://blog.demofox.org/2015/07/08/lagrange-interpolation/


Hermite mungkin lebih baik daripada Lagrange, tetapi jika Anda memiliki akses ke MATLAB (atau program desain filter FIR), Anda dapat mendesain sendiri interpolator "bank filter polifase" di mana Anda memiliki set koefisien untuk berbagai berbeda, dengan jarak yang sama, penundaan fraksional. pilih dua keterlambatan pecahan terpisah yang paling dekat dengan keterlambatan pecahan yang Anda berikan dan sisipkan secara linear di antara keduanya.
robert bristow-johnson

0

Ini dapat dilakukan dengan menggunakan fungsi 'delayseq' di MATLAB. Fungsi ini dapat menggeser sinyal dalam sampel fraksional. Anda dapat menulis jumlah sampel yang ingin Anda geser atau dalam hal waktu, jumlah penundaan yang Anda inginkan. Tetapi yang penting untuk diperhatikan adalah bahwa sinyal yang tertunda memiliki panjang yang sama dengan sinyal asli sehingga jika Anda tidak ingin memotong sinyal, gunakan zero padding terlebih dahulu dan kemudian tunda. https://in.mathworks.com/help/phased/ref/delayseq.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.