Sign in

username:

password:



Not a member?

Search compdsp



Search tips

comp.dsp by Keywords

Adaptive Filter | ADPCM | ADSP | ADSP-2181 | Aliasing | AMR | Anti-Aliasing | ARMA | Autocorrelation | AutoCovariance | Beamforming | Bessel | Blackfin | Butterworth | C6713 | CCS | Chebyshev | CIC Filter | Circular Convolution | Code Composer Studio | Comb Filter | Compression | Convolution | Cross Correlation | DCT | Decimation | Deconvolution | Demodulation | DM642 | DSP Boards | DSP/BIOS | DTMF | Echo Cancellation | Equalization | Equalizer | ETSI | EZLITE (Ez-kit Lite) | FFT | FFTW | FIR Filter | Fixed Point | FSK | G.711 | G.723 | G.729 | Gaussian Noise | Goertzel | GPIO | Hilbert Transform | IFFT | IIR Filter | Interpolation | Invariance | JTAG | Kalman | Laplace Transform | Levinson | LPC | McBSP | MIPS | Modulation | MPEG | Multirate | Notch Filter | Nyquist | OFDM | Oversampling | Pink Noise | Pitch | PLL | Polyphase | QAM | QDMA | Quantization | Quantizer | Radar | Random Noise | Reed Solomon | Remez | Resampling | RTDX | Sampling | Sharc | TI C6711 | Undersampling | Viterbi | Wavelets | White Noise | Wiener Filter | Windowing | XDS510PP | Z Transform

Ads

Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGAElectronics

Discussion Groups | Comp.DSP | Implementation of OQPSK-demodulator in matlab

There are 2 messages in this thread.

You are currently looking at messages 0 to 2.


Implementation of OQPSK-demodulator in matlab - bamse - 2004-05-09 03:35:00

Hello

I have made a program in matlab that can demodulate an OQPSK-modulated
signal with noise (additive white gaussian noise). The carrier is
phase-shifted with an arbitrary constant between 0 and 2*pi.

Here is what I do to demodulate the signal:

When the signal is received at time t=0 I know the following will happen for
the first T seconds:

1) If there is no or little noise and the carrier has not been phase-shifted
the I-phase should go from 0 to 1 while the Q-phase remains 0.
2) According to IEEE 802.15.4 (zigbee standard) the first symbol must be the
symbol (I,Q)=(-1,-1).

If s(t) is the signal received I lowpassfilter s(t)*cos(2*pi*f*t+p(t)) and
s(t)*sin(2*pi*f*t+p(t)) where p(t)=0 to begin with and f is the carrier
frequency. By doing this I now have the (possibly rotated) coordinates
(I,Q).

I trace the received (I,Q) from time t=0 to time t=T and calculate a
trend-line of where (I,Q) is going from t=0 to t=T. This trend-line is
actually a vector and the vector is one of the basis-vectors in the
signal-space. So I calculate the angle between this basisvector and the
vector (1,0). As I expect a symbol (-1,-1) I know that the angle has to be
180 degrees. So if it is not the calculated angle directly tells me how much
the signal has been phase-shifted (rotated). So I just derotate the signal
by adjusting p(t) such that the first symbol received will be (-1,-1). After
that I just compare the received (I,Q) with the expected (I,Q) and any
difference results in an adjustment of p(t).

Is this right?

Thanks.

Jakob


______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: Implementation of OQPSK-demodulator in matlab - bamse - 2004-05-09 11:35:00



>
> 1) If there is no or little noise and the carrier has not been
phase-shifted
> the I-phase should go from 0 to 1 while the Q-phase remains 0.

Correction:

The I-phase should go from 0 to -1 during the first T seconds...



______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.