0

I have IQ data collected This is the beginning of the packet that includes preamble and sync sequence. Red is real part, blue is imaj.

This is the beginning of the packet that includes preamble and sync sequence. Red is real part, blue is imaginary.

Also constellation diagram for this data enter image description here

I don't have access to the radio that transmit this data. I know that this is QPSK modulated data. Preamble and sync sequence should be BPSK modulated, but I cannot demodulate this data, they don't look like a "good" BPSK. I also know that the data have been processed by RRC filter before transmission. What is this phenomenon, and what I can do with this data? Thank you,

user55960
  • 1
  • 1
  • 1
    You need to do channel equalization, then carrier sync and symbol sync, including matched filtering. – MBaz Mar 01 '21 at 20:06
  • I think that before channel equalization, matching filtering I need to identify a burst position. So I am going to correlate an input signal with my sync sequence processed via matching filter. But I cannot find the peak. I am not sure I am right but I use the same approach for data collected from a different system and it works fine, But this data looks "much better" so I can demodulate it manually. – user55960 Mar 01 '21 at 20:19
  • Why would you need burst synchronization prior to matched filtering? As soon as you have a good enough frequency synchronization, you can apply the matched filter without loss. – Marcus Müller Mar 02 '21 at 09:17
  • I thought that performance-wise is better to find burst position before processing an input signal further. Is there any good reference how to implement channel equalization, carrier and symbol sync? I am going to implement it on ARM processor, not DSP, Thanks – user55960 Mar 02 '21 at 12:26
  • Look up the book "Telecommunications breakdown" by Johnson and Sethares. – MBaz Mar 02 '21 at 14:00

1 Answers1

1

In this case you have very clear symbol transitions and the appearance of RRC shaped symbols with a small frequency offset. What you could do is pass the waveform as is through a second RRC filter (matched filter) assuming you know the RRC parameters and then estimate the decision locations in the preamble (since simpler there with just two symbols) as the midpoint between transitions where a 1010 pattern exists and observe successive complex decisions for rotation; from inspection it appears that rotation will indeed be less than 90 degrees from symbol to symbol in which case you should be able to determine the frequency offset and correct that with an opposite complex rotation (stop the symbol decisions from rotating). Once that is done all successive symbols at the decision location should be clustered around their expected positions.

In practice a timing recovery loop (Gardner loop for example) can determine the symbol locations and a carrier recovery loop can remove the carrier offset; along with equalization when significant multipath interference exists- but this waveform looks to be of very good SNR with little distortion that doing it manually as described above will be a good learning exercise as to what those algorithms need to do in a tracking and acquisition loop.

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • Tank you for detailed response. I know a parameter of Tx RRC filter and I can build matched Rx filter and run waveform though it (is this the RRC filer that you mentioned as 'second'?). I am a new in signal processing and I am not sure how to estimate the decision locations in the preamble. Could you explain or point to some references? – user55960 Mar 04 '21 at 20:18
  • Yes that is the second filter I mentioned. Take a look at this post regarding decision locations: https://dsp.stackexchange.com/questions/40094/why-root-raised-cosine-filter-can-eliminate-intersymbol-interference-isi/40098#40098 We won't be able to do a detailed back and forth here since this is a simple Q&A site, but email me at boschen at loglin dot com and we can see if what your doing is something I may be able to help you with. – Dan Boschen Mar 04 '21 at 21:29