OFDM Carrier Frequency Recovery

3 次查看(过去 30 天)
re ib
re ib 2012-10-11
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 个评论
Walter Roberson
Walter Roberson 2012-10-15
Who is "your" in "your example" ?
Please expand on "does not work" ?
re ib
re ib 2012-10-20
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?

请先登录,再进行评论。

回答(1 个)

ofdma_matlab
ofdma_matlab 2012-10-20
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 个评论
re ib
re ib 2012-10-20
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Single-Rate Filters 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by