konradb
Newbie level 6
I am trying to demodulate a phase shift signal.
The (mixed down) carrier varies from 25KHz to 34KHz. There are actually 4 channels of 3KHz. The signal is a burst of 150ms carrier followed by 500ms of phase data which is +30deg or -30deg.
I sample the data at 500KHz, and store to ram to work on.
There are a few methods that I have tried that work, but I would like expert opinion.
1. Lock a PLL to the pre-amble carrier, then mix the PLL with the signal, then low pass filter.
Not so good results, slight errors in the lock frequency give poor results
2. Take the pre-amble carrier, concatenate it and mix this with the signal, then low pass filter.
Better results but mismatch of sampling for each section also gives less than perfect results
3. Take arctan(Q/I) and unroll, i.e. remove pi/2. Find the slope of the pre-amble, subtract the pre-amble slope from the unrolled data.
Best results
4. Find the FFT of the signal. Shift the carrier to 0Hz. Inverse FFT.
Again, good results
Which method would be recommended, or are there other better option?
The (mixed down) carrier varies from 25KHz to 34KHz. There are actually 4 channels of 3KHz. The signal is a burst of 150ms carrier followed by 500ms of phase data which is +30deg or -30deg.
I sample the data at 500KHz, and store to ram to work on.
There are a few methods that I have tried that work, but I would like expert opinion.
1. Lock a PLL to the pre-amble carrier, then mix the PLL with the signal, then low pass filter.
Not so good results, slight errors in the lock frequency give poor results
2. Take the pre-amble carrier, concatenate it and mix this with the signal, then low pass filter.
Better results but mismatch of sampling for each section also gives less than perfect results
3. Take arctan(Q/I) and unroll, i.e. remove pi/2. Find the slope of the pre-amble, subtract the pre-amble slope from the unrolled data.
Best results
4. Find the FFT of the signal. Shift the carrier to 0Hz. Inverse FFT.
Again, good results
Which method would be recommended, or are there other better option?