Mendeteksi fase antara sinyal gelombang persegi dan gelombang sinus

9

Saya memiliki sirkuit yang memiliki input gelombang persegi digital (dihasilkan oleh PLD, 1.8Vp) dan output gelombang sinus (0,5 - 3,5 Vp). Kedua sinyal memiliki frekuensi 100kHz, namun fase berbeda.

Apa cara yang baik untuk mendeteksi perbedaan fasa antara kedua sinyal ini? Detektor fase yang saya lihat sejauh ini adalah untuk semua sinyal analog atau digital? Apakah ada satu untuk rangkaian sinyal campuran seperti yang saya miliki?

Memperbarui

Mengetahui perbedaan fase dengan 1 derajat sudah cukup untuk aplikasi saya. Frekuensi selalu terkunci relatif satu sama lain dan tidak pernah berubah. Gelombang persegi menggerakkan elektronik analog dan analog menghasilkan gelombang sinus yang memiliki sinyal modulasi AM di dalamnya. Namun, amplitudo sinyal sangat rendah dibandingkan dengan amplitudo pembawa. Karena variabilitas produksi, analog (termasuk beberapa induktor yang dililitkan dengan tangan) memiliki variabilitas unit ke unit yang tinggi pada fase, dan saya mencoba membuat metode auto-tuning untuk DSP yang memproses gelombang sinus output.

udushu
sumber
2
Seberapa akurat Anda perlu mengetahui perbedaan fase? Dan apakah Anda perlu melakukan ini sebagai percobaan satu kali atau sebagai bagian dari fungsi rangkaian Anda yang berkelanjutan? Apakah kedua bagian tersebut benar-benar terkunci bersama-sama (atau mendapatkan frekuensinya dari referensi umum) atau apakah keduanya hanya nominal 100 kHz?
The Photon

Jawaban:

11

Deteksi fase adalah yang termudah untuk sinyal digital; pada dasarnya gerbang XOR. Saya akan mengubah sinus menjadi gelombang persegi. Umpankan komparator dengan sinus pada satu input dan rata-rata sinus (LPF) di input lainnya, sehingga komparator memberikan gelombang persegi siklus tugas 50%. Kemudian gunakan detektor fase digital.

stevenvh
sumber
Saya telah mempertimbangkan menggunakan pembanding untuk membuat gelombang sinus dari gelombang persegi, tetapi masalahnya adalah bahwa amplitudo gelombang sinus dapat bervariasi dalam kisaran 0,5 hingga 3,5 V. Ini adalah variabilitas produksi dan tidak ada yang bisa saya lakukan tentang fakta itu. Padahal, deteksi silang nol mungkin menjadi solusi dalam kasus itu ... Mungkin patut dipertimbangkan.
udushu
1
@udushu - LPF rata-rata memecahkan itu. Ini akan menangani berbagai amplitudo dan offset DC.
stevenvh
@stevenvh, saya tidak berpikir LPF cukup untuk menjamin bahwa amplitudo sinyal input tidak mempengaruhi pengukuran fase. Komparator memiliki sifat yang disebut dispersi yang berarti bahwa penundaan propagasi berubah seiring perubahan amplitudo input. Sepertinya pembanding yang dapat memenuhi kebutuhan OP untuk kesalahan fase (sekitar 40 ns) tanpa kompensasi lebih lanjut juga harus memiliki dispersi yang cukup rendah; tetapi akan menjadi hal yang penting untuk diperiksa saat memilih pembanding untuk penggunaan ini.
The Photon
@ThePhoton - Anda ada benarnya, tapi OP belum menyebutkan keakuratannya 1 ° saat saya menjawab. OTOH ada komparator dengan dispersi jauh lebih kecil dari 100 ps, ​​yang merupakan beberapa urutan besarnya lebih baik dari 1 °.
stevenvh
@ThePhoton - Tampaknya komparator nol-silang adalah solusi. Terima kasih atas diskusi.
udushu
4

Karena Anda mengatakan Anda memiliki DSP yang memproses gelombang sinus, Anda dapat menggunakan transformasi Fourier kompleks untuk mengukur fase (Anda hanya perlu mengevaluasi DFT pada frekuensi yang diketahui).

Ini sebenarnya terkait erat dengan apa yang disarankan Curd tentang pencampuran - satu titik DFT adalah jenis mixer diikuti oleh integrator atau filter low-pass. Perbedaannya adalah dengan melakukannya di domain kompleks (atau menggunakan mixer IQ di analog) Anda dapat menentukan sudut output kompleks. Dengan hanya menggunakan komponen nyata atau hanya satu mixer, Anda tidak dapat membedakan lead dari lag dan sensitivitas amplitudo akan lebih menjadi tantangan.

Chris Stratton
sumber
Berharap aku bisa. Itu akan memecahkan banyak masalah yang saya miliki saat ini. Sayangnya, DSP yang harus saya gunakan tidak memiliki tenaga kuda yang diperlukan untuk melakukan DFT waktu nyata pada sinyal 100kHz.
udushu
Anda hanya perlu menghitung satu nampan frekuensi - bukan # sampah normal = # sampel yang dikaitkan orang dengan transformasi fourier. Juga, seberapa sering Anda harus mengukur fase? Jika jarang, pertanyaan sebenarnya adalah apakah sistem Anda dapat mengambil sampel dan menyimpan pada tingkat itu, bukan apakah ia dapat memprosesnya.
Chris Stratton
DSP saat ini dikonfigurasi untuk sampel pada 20kHz dan hanya sinyal yang didemodulasi yang dijadikan sampel, bukan pembawa 100kHz. Saya tidak berpikir bahwa dsPIC33 sederhana yang saya gunakan akan dapat mengambil sampel sinyal 100kHz sama sekali.
udushu
@udushu pencarian cepat menunjukkan dsPIC mungkin dapat dilakukan tentang megasample / detik. Tetapi jika bandwidth analog cukup dan Anda tahu frekuensinya, Anda juga dapat dengan sengaja membuat undersampel dan mengeksploitasi alias.
Chris Stratton
0

Dengan asumsi bahwa amplitudo dari kedua sinyal input adalah konstan (jika tidak, mereka dapat dibuat konstan oleh sirkuit AGC) Anda dapat menggunakan mixer (multiplikator) sebagai pendeteksi fase:

Jika sinyal dalam fase output akan positif.
Jika sinyal 180 ° keluar dari fase output akan negatif.
Untuk perbedaan fase lainnya output akan berada di antara nilai-nilai tersebut.

Misalnya deteksi fase disebutkan dalam datasheet sebagai salah satu aplikasi analog mutliplier IC AD633 .

Dadih
sumber