Bagaimana cara melakukan pemulihan fase operator dalam perangkat lunak?


13

Apa opsi untuk memulihkan fase sinyal BPSK dalam perangkat lunak? Satu-satunya sumber daya yang dapat saya temukan online berisi diagram sirkuit - sepertinya tidak ada yang mau menjelaskan hal ini kepada orang yang tidak terbiasa dengan sirkuit analog.

Saya ingin penjelasan tentang bagaimana pemulihan pembawa bekerja dalam teori, dan juga akan suka pseudocode atau contoh kode.


Kami biasanya tidak memberikan contoh kode - terutama untuk sesuatu yang rumit seperti demodulator BPSK.
Jim Clay

1
Seperti yang ditunjukkan JimClay, Anda tidak mungkin mendapatkan seseorang dengan waktu yang cukup untuk menyediakan kode sumber lengkap untuk mengimplementasikan demodulator. Namun, mekanisme pembuatan implementasi harus mudah jika Anda memahami konsepnya. Secara umum, penerima perangkat lunak akan memiliki struktur yang mirip dengan teknik perangkat keras yang sesuai (misalnya, sinkronisasi berbasis feedlinward nonlinearity atau pendekatan umpan balik PLL-bsed). Apakah Anda memiliki topologi spesifik yang ingin Anda targetkan?
Jason R

Terima kasih atas komentar Anda @JimClay dan JasonR - Saya tidak bermaksud meminta kode sumber yang berfungsi. Saya telah memperbarui pertanyaannya menjadi lebih spesifik: Saya hanya mencari penjelasan apa pun yang tidak mengandaikan pemahaman tentang rangkaian analog dan diagram rangkaian.
Keith

Jawaban:


25

Untuk mendemodulasi sinyal kunci-shift fase, yang mana BPSK adalah yang paling sederhana, Anda harus memulihkan frekuensi pembawa, fase, dan waktu simbol.

Sinyal Bursty Beberapa sinyal bursty dan memberikan urutan data yang dikenal yang disebut preamble atau mid-amble (tergantung pada apakah itu muncul di awal atau tengah ledakan) Demodulator dapat menggunakan filter yang cocok yang "terlihat" untuk urutan data yang diketahui dan menggunakannya untuk mengetahui frekuensi, fase, dan waktu simbol burst. Mereka melakukan ini untuk setiap burst dan tidak perlu repot dengan "drift" (jarak bertahap yang terbentuk antara demodulator dan sinyal yang diterima sebagai kesalahan kecil terakumulasi) karena burst umumnya cukup pendek sehingga drift bukan masalah.

Sinyal Kontinu Kemudian ada sinyal kontinu. Mereka dalam banyak hal lebih sulit untuk pulih daripada sinyal meledak karena Anda biasanya tidak memiliki urutan data yang dikenal untuk membantu mengunci dengan sinyal, dan Anda harus khawatir tentang melayang bahkan setelah Anda mengunci sinyal. Saya akan mencoba menjelaskan pada tingkat tinggi langkah-langkah utama yang biasanya digunakan untuk memulihkan sinyal kontinu.

Pemulihan Operator

Biasanya Anda tahu berapa frekuensi sinyal yang Anda cari, atau setidaknya set frekuensi apa. Meskipun dengan pengetahuan ini, Anda biasanya harus dapat memperbaiki offset frekuensi karena tidak ada dua pemancar yang mentransmisikan pada frekuensi yang sama. Selalu ada beberapa kesalahan. Metode yang biasa, kemudian, adalah mencampur frekuensi yang Anda pikir sinyal akan berada, dan kemudian memperbaiki kesalahan frekuensi residual. Ini dapat dilakukan dengan Costas Loop, atau dengan mengambil kekuatan keempat dari data sinyal baseband dan mencari lonjakan frekuensi. Seharusnya ada lonjakan frekuensi pada offset pembawa * 4 (misalnya jika Anda mengambil FFT data ke daya ke-4 dan melihat lonjakan frekuensi pada 8300 Hz, itu berarti offset carrier adalah 8300/4 = 2075 Hz). Ini adalah cara yang sangat efektif untuk mendapatkan kunci awal pada frekuensi offset. Anda juga dapat menggunakannya untuk mengkompensasi drift jika Anda melakukannya kembali sesekali. Ada cara lain untuk mengimbangi penyimpangan yang akan saya sentuh nanti.

Fase Pembawa

Pada titik ini jika Anda memplot data kompleks Anda dalam bidang kompleks (sumbu x adalah nyata, sumbu y adalah imajiner) itu akan terlihat seperti berikut-

BPSK yang dirotasi

ejπ

BPSK diputar dan dicerminkan

ej-ω

BPSK berisik

Setelah data dikoreksi fase, Anda dapat menjatuhkan bagian imajiner data karena tidak menambahkan informasi apa pun.

Waktu Simbol

Anda biasanya harus tahu, apriori, periode simbol dari sinyal yang Anda coba demodulasi. Jika Anda perlu menentukan periode / frekuensi simbol, Anda dapat melakukannya dengan cara yang mirip dengan cara offset pembawa terdeteksi. Anda dapat mengkuadratkan data yang akan menyebabkan lonjakan frekuensi dua kali frekuensi simbol.

Seperti dengan operator Anda harus mendapatkan fase (timing) yang benar dan kemudian mengimbangi penyimpangan. Metode yang biasa untuk kedua masalah ini adalah mencari zero crossing. Kecuali jika noise-nya cukup buruk, ia hanya boleh melewati titik nol di tengah transisi simbol dari -1 ke 1 atau dari 1 ke -1. Bahkan jika kebisingan menyebabkan ini terjadi di tengah-tengah simbol itu tidak akan sering terjadi.

Diagram mata

Gambar di atas biasanya disebut "diagram mata" atau "pola mata". Itu adalah dua periode simbol lebar, dan memiliki banyak simbol "ditumpuk" di atas satu sama lain. Saya tidak tahu apakah Anda terbiasa dengan osiloskop atau tidak, tetapi Anda bisa mendapatkan osiloskop untuk menunjukkan gambar seperti ini. Bagaimanapun, dua "X's" adalah transisi simbol. Garis tinggi ke rendah dalam X adalah ketika simbol transisi dari 1 ke -1, dan garis rendah ke tinggi di X adalah ketika simbol transisi dari -1 ke 1. 1. Titik di antaranya, di mana garis merah muda adalah, adalah tempat optimal untuk mengambil sampel data untuk melihat apakah simbolnya 1 atau -1.

Teknik yang sama ini dapat digunakan untuk menangani penyimpangan waktu simbol. Ambil rata-rata lari jarak dari zero crossing sebelumnya dan zero zero crossing. Jika kedua rata-rata hampir sama, semuanya baik-baik saja. Jika satu lebih besar dari yang lain maka Anda harus bergeser ke tempat Anda mengambil sampel.

Setelah Anda mengambil sampel simbol di titik yang benar, titik data Anda akan mendapatkan sesuatu yang terlihat seperti titik konstelasi BPSK klasik.

Konstelasi BPSK yang bising

Saya harap ini membantu.


Untuk menjadikan pos yang lebih baik ini lebih baik, mungkin Anda bisa menambahkan bagian dari pemulihan jam sebelum waktu simbol?
LWZ

Saya pikir saya mungkin tahu apa yang ada dalam pikiran Anda, tetapi saya tidak yakin. Apa spesifik yang ada dalam pikiran Anda?
Jim Clay

Terima kasih banyak! Saya tidak berpikir untuk mencari nol penyeberangan, atau merencanakan real / imajiner pada x / y dengan cara ini. Saya baru saja menatap grafik fase dan bertanya-tanya bagaimana cara menyinkronkan semuanya. Terima kasih lagi!
Keith

@ Jimclay, Di awal bagian Timing Simbol Anda, Anda menyebutkan bahwa "Anda biasanya harus tahu periode simbol dari sinyal yang Anda coba demodulasi.", Dan ini biasanya dicapai oleh unit pemulihan jam, karena biasanya Anda menang ' t mengirim jam bersama data Anda. Untuk sinyal BPSK ini mudah, di mana Anda bisa kuadratkan sinyal Anda, yang menghilangkan data. Kemudian Anda melihat spektrum daya, harus ada frekuensi puncak yang disebut nada jam , yang memberi Anda periode simbol.
LWZ

Menambahkan paragraf tentang frekuensi simbol.
Jim Clay
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.