Bagaimana cara menentukan di mana sampel untuk demodulasi sinyal BPSK?

8

Saya memiliki demodulator BPSK sederhana. Sangat sederhana, sinyalnya masuk dan dibagi menjadi dua cabang, satu untuk I dan satu untuk Q.

  1. Cabang I dicampur dengan gelombang dosa pembawa, dan cabang Q dicampur dengan gelombang kosinus pembawa.
  2. Kemudian, masing-masing output dikonvolusi dengan filter yang cocok, (dalam hal ini root-meninggikan-cosinus, yang awalnya pulsa membentuk bit yang saya transmisikan).
  3. Sekarang, jika saya menggabungkan kedua output dan mengambil besarnya keduanya (I ^ 2 + Q ^ 2), saya mendapatkan amplop.
  4. Dari sini, saya mencari puncak, dan memilih indeks mereka.
  5. Saya kemudian menggunakan indeks yang sama yang saya dapatkan dari (4), dan sampel I dan Q saya di indeks yang sama. Sekarang saya memiliki nilai softbit yang kompleks, dan saya dapat memperbaiki untuk setiap fase atau offset frekuensi, dan dapat membuat keputusan sulit dari sana. (Saya memiliki kemewahan pasca pemrosesan btw).

Teknik ini bekerja dengan baik dengan SNR tinggi ke sedang. Masalahnya adalah bahwa dengan SNR yang lebih rendah (dan mungkin multipath), saya tidak tahu bagaimana melakukan peluru (4). Masalahnya adalah bahwa alih-alih satu puncak dalam amplop yang sesuai dengan satu bit, saya sekarang memiliki beberapa puncak, dan 'puncak pengambilan' tidak akan berfungsi karena ada begitu banyak untuk dipilih ... bagaimana masalah ini dikurangi? Ini tampaknya menjadi hambatan karena jika saya tidak tahu di mana 'bit' saya, saya tidak bisa bergerak maju. Adakah pikiran?

Setiap bantuan dihargai, matematika itu bagus, meskipun saya akan meminta jawaban lebih berorientasi pada kode-beludo / konsep. Terima kasih!

Sunting: Berkat umpan balik dari Dilip, saya juga harus menambahkan bahwa saya dapat dengan jelas melihat 'energi' di dalam amplop ketika ada sinyal dan tidak ada sinyal. (yaitu, sebelum sinyal saya tiba), jadi ini membuat saya percaya bahwa saya harus dapat menyinkronkan / demod dan itu bukan masalah SNR semata-mata ...

Spacey
sumber
@DilipSarwate Ya dalam hal ini saya tahu persis Tbps saya. (Jadi ya, penerima akan tahu jarak yang tepat antara bit saya) - tetapi bagaimana cara mencapai indeks bit pertama itu? ... BTW, tidak yakin berapa nilainya, tetapi saya dapat dengan jelas melihat 'energi' di dalam amplop ketika ada sebuah sinyal dan tidak ada sinyal - dan ini membuat saya percaya bahwa SNR saya tidak terlalu buruk sehingga saya tidak dapat menyinkronkan / demod ... (Terima kasih atas info tagnya, saya akan mencoba dan menambahkan lagi).
Spacey
@DilipSarwate Hmm ... Saya setuju dengan Anda tentang teknik itu - apa yang saya tidak jelas tentang di mana / bagaimana agar sesuai dengan jendela satu-bit-nilai saya sehingga saya kemudian dapat melakukan teknik yang Anda bicarakan. Apakah Anda melihat masalah saya? Hanya untuk memastikan saya mengerti Anda dengan benar: Katakanlah ada 10 sampel / bit di dalam amplop. Ok, jadi apakah Anda mengatakan mengambil seluruh amplop, memecahnya menjadi 10 potongan sampel, dan rata-rata semua bersama-sama untuk menemukan di mana puncaknya seharusnya?
Spacey
Sinkronisasi bisa menjadi topik yang sangat kompleks. Bisakah Anda memasukkan angka pada nilai SNR yang Anda uji? Apa itu "tinggi", "sedang", dan "rendah"?
Jason R
@DilipSarwate Ok, kami mengatakan hal yang sama. Sekarang, saya mengerti bahwa dari semua rata-rata ini, kami bertaruh bahwa kami dapat mencapai indeks sampel optimal karena sedang dirata-ratakan dari kebisingan. Tetapi di hadapan multipath, dapatkah kita mengandalkan rata-rata untuk bekerja? Bukankah puncak 'slip' yang optimal dari waktu ke waktu? Saya kira itulah sebabnya Anda harus sering melakukan teknik ini kembali ...
Spacey
@JasonR Saya tidak bisa memberi Anda angka SNR yang tepat saat ini, tapi saya bisa mencoba mendapatkannya segera. (Meski begitu, karena saya tidak dapat menggigit-kunci, apakah Anda ingin ukuran berdasarkan pada amplop?) dalam amplop saya jelas, tetapi dalam kasus SNR saya yang lebih rendah lainnya (dan mungkin dengan multipath) saya dapat melihat amplop memiliki banyak puncak selama durasi satu bit. (Yang sedang berkata, saya dapat dengan jelas membedakan ketika sinyal saya mulai melihat amplop).
Spacey

Jawaban:

7

Saya telah melakukan sesuatu yang mirip dengan ini di MATLAB. Dalam kasus saya, saya menggunakan metode pemulihan clock Early / Late Gate untuk mendapatkan perkiraan offset antara pengiriman dan menerima waktu simbol. Metode ini menggunakan 3 sampel per simbol - satu pada waktu sampel optimal, satu yaitu 1 sampel tertunda dan 1 yaitu satu sampel maju. Ini berfungsi baik untuk sinyal kunci on / off, karena tidak ada bagian negatif dari sinyal, tetapi metode di bawah ini saya pikir akan bekerja lebih baik untuk sinyal bipolar.

Metode lain adalah Algoritma Muller dan Mueller , yang menggunakan 1 sampel per simbol. Ini menggunakan persamaanen=(yn^yn1)(yny^n1)dimana en adalah kesalahan, yn1 dan yn adalah sampel simbol sebelumnya dan saat ini, dan yn^ dan y^n1adalah output keputusan (-1 atau +1 dalam kasus Anda). M&M mensyaratkan bahwa operator dipulihkan terlebih dahulu.

Algoritma ketiga, yang sangat mirip dengan yang di atas, adalah algoritma Gardner . Dalam algoritma ini, sinyal kesalahan adalahen=(ynynT)ynT/2dimana ynT adalah contoh simbol satu di masa lalu, dan ynT/2adalah setengah simbol di masa lalu. Ini membutuhkan 2 sampel per simbol, tetapi tidak peka terhadap pembawa.

The M & M detektor adalah melihat puncak , sedangkan Gardner metode adalah melihat puncak dan persimpangan nol untuk mendapatkan perkiraan waktu.

Dalam semua kasus, Anda akan mengambil taksiran kesalahan, memasukkannya ke dalam loop filter yang hasilnya kemudian digunakan untuk memajukan atau memperlambat jam simbol untuk taksiran waktu berikutnya. Filter loop dapat dianggap sebagai filter low-pass, filter smoothing, atau hanya dengan menimbang perkiraan yang lebih lama kurang dari yang baru. Filter loop mengontrol a) seberapa cepat timing menyatu dan b) seberapa banyak noise memengaruhi estimasi.

Pilihan lain adalah menggunakan equalizer yang kemudian akan menghapus penundaan waktu dari sinyal. Ini juga dapat membantu untuk sinyal yang sangat bising.

Saya telah menggunakan sumber daya ini dalam membentuk jawaban ini: http://www.comlab.hut.fi/opetus/333/2004_2005_slides/CarrierTimingRecovery.pdf http://mobiledevdesign.com/tutorials/radio_matched_filtering_timing/

Artikel ini sangat membantu: http://rfdesign.com/images/archive/0901Litwin32.pdf Berikut ini tautan ke makalah asli Gardner dari tahun 1986: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber= 1096561 & tag = 1

Catatan Secara umum area ini disebut "jam dan pemulihan data" atau "CDR". Secara khusus kita sedang berurusan dengan "sinkronisasi simbol". Istilah-istilah ini akan membantu Anda dalam pencarian Anda.

gallamine
sumber
Terima kasih banyak! Saya memiliki beberapa pertanyaan lanjutan karena saya pikir ini menjadi skenario ayam dan telur: Untuk awal-akhir - Saya tidak mengerti bagaimana saya dapat menggunakan 3 sampel jika saya tidak dapat menemukan waktu pengambilan sampel yang optimal untuk memulai dengan ... Saya perlu yang optimal, lebih awal , dan terlambat - tetapi bagaimana menemukan yang optimal untuk memulai? (Hanya untuk memastikan kita berada di halaman yang sama, kita merujuk di sini untuk mengambil sampel amplop itu benar?)
Spacey
1
Mohammed, untuk implementasi saya, kami melakukan dua hal: 1) kami mulai dengan urutan pelatihan 1 dan 0 untuk membantu pelacak mengunci dan 2) kami membuat perkiraan awal. Tebakan awal Anda bisa sepenuhnya naif (sampel ke-0) atau, Anda bisa berkorelasi dengan urutan pelatihan awal untuk mendapatkan perkiraan awal.
gallamine
juga, lanjutan dari atas, Anda secara kasar mengetahui jumlah sampel / simbol, sehingga setiap perkiraan waktu simbol berikutnya akan menjadi sampel / simbol +/- sinyal kesalahan keluar dari loop filter.
gallamine
Terima kasih - saya akan mencobanya dan memberi tahu Anda bagaimana hasilnya. Untuk Early-Late, Anda berbicara tentang amplop meskipun benar? Sampel awal-waktu-terlambat adalah dari amplop sinyal? (yaitu, amplop = I ^ 2 + Q ^ 2). Saya bingung mengenai apa tepatnya yang dimaksud oleh y_n dalam contoh tersebut - apakah mereka merujuk ke amplop, atau apakah mereka merujuk hanya menggunakan I? Atau sampel kompleks (I + Q)?
Spacey
Saya tidak sepenuhnya yakin. Untuk metode M&M dan Gardner, Anda ingin melihat sinyal bipolar. Jadi, untuk BPSK, Anda tidak ingin kuadratkan sinyal. Untuk detektor gerbang Awal / Akhir, mengkuadratkan sinyal tidak akan menyebabkan masalah, saya tidak berpikir. Dalam praktiknya, bukankah Anda akan memperbaiki fase terlebih dahulu, dan kemudian mengabaikan komponen Q untuk BPSK?
gallamine