OFDM Carrier Frequency Recovery

5 visualizzazioni (ultimi 30 giorni)
re ib
re ib il 11 Ott 2012
I used your example " syncCarrierFreqMSKSignalRecovery" to construct my model and apply it for QPSK system,it works . but when i applied it to OFDM-QPSK , it doesn't work.
Your matlab code for Single carrier system is
freqOffset = 0;
phaseOffset = 0;
hPFO = comm.PhaseFrequencyOffset('FrequencyOffset', freqOffset, ... 'PhaseOffset', phaseOffset, ... 'SampleRate', samplesPerSymbol/Ts);
rx_signal1l = step(hPFO,tx_signal);
rx_signal = rx_signal1l.';
hDelayInstFreq = dsp.Delay;
hMovAve = dsp.DigitalFilter('TransferFunction','FIR (all zeros)', ... 'Numerator', ones(1,100)/100);
hCumSum = dsp.CumulativeSum('Dimension','Channels (running sum)', ... 'FrameBasedProcessing', true);
%%Calculate the frequency shift estimate
P = 2;
currInstFreq = rx_signal.^(2*P);
prevInstFreq = step(hDelayInstFreq, currInstFreq);
freqShiftEst1 = currInstFreq .* conj(prevInstFreq);
% Average over 1 frame
freqShiftEst = mean(freqShiftEst1);
% Moving average over 100 frames
freqShiftEst = step(hMovAve, freqShiftEst);
freqShiftEst = angle(freqShiftEst) / (2*P);
% Convert digital frequency to Hertz
freqShiftEst = freqShiftEst / (2*pi*Ts);
%%Apply frequency correction
freqCorr = repmat(-freqShiftEst*Ts, samplesPerFrame, 1);
% Calculate cumulative phase shift
freqCorr = step(hCumSum, freqCorr);
% Apply frequency shift correction
rxSym = rx_signal .* exp(1i*2*pi*freqCorr);
Kindly advice , how to modify the previous code to use with OFDM System
  3 Commenti
Walter Roberson
Walter Roberson il 15 Ott 2012
Who is "your" in "your example" ?
Please expand on "does not work" ?
re ib
re ib il 20 Ott 2012
There is an example in Matlab help examples named "syncCarrierFreqMSKSignalRecovery" that deals with frequency offset , AWGN for QPSK. i want to used it to make OFDM- QPSK based. how can i modify this example?

Accedi per commentare.

Risposte (1)

ofdma_matlab
ofdma_matlab il 20 Ott 2012
hPFO = comm.PhaseFrequencyOffset('FrequencyOffset', freqOffset, ... 'PhaseOffset', phaseOffset, ... 'SampleRate', samplesPerSymbol/Ts);
can you please explain the line above !!!!! what do you mean by 'comm.PhaseFrequencyOffset' ? lemme understand it first .
thanks in advance
  1 Commento
re ib
re ib il 20 Ott 2012
In Matlab R2011a , it uses this formula to represent Frequency offset behaves like:
yt = xt.* exp(2*j*pi*F_Offset(x)/fs*[0:length(xt)-1]);
with reference:
and it works probably for QPSK not for OFDM QPSK

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by