Re: OFDM demodulation problem / example video


#1

Jens,

I got interested in this discussion and looked at the
standard briefly and at your matlab code.
I have a couple of initial points; I will spend more time sometime this
week on your code:

  1. where in the standard it says that this is pi/4 DQPSK ?
    I only saw that the modulation used is DQPSK.

  2. You have done frequency correction manually: did you do this by
    looking at the DC subcarrier (no power transmitted here) in the
    received signal prior to OFDM demod?
    Frequency synchronization in OFDM is very crucial, because the OFDM
    symbol rate is small! To see why, try to understand the effect of a
    small frequency error at the output of the FFT demodulator.

  3. You have found the beginning of the frame manually. In your matlab
    code you posted there is a variable “start_resamp” that indicates this.
    How do you know that the begining of frame is not BETWEEN two samples?
    in other words there is no fine timing synchronization. I wonder what
    the effect of a small timing error is at the output of the FFT
    demodulator.

Achilleas


#2

Achilleas,

thanks for taking the time. My goal is to implement COFDM in gnuradio,
DAB is a nice start.

To your points:

I got interested in this discussion and looked at the
standard briefly and at your matlab code.
I have a couple of initial points; I will spend more time sometime this
week on your code:

  1. where in the standard it says that this is pi/4 DQPSK ?
    I only saw that the modulation used is DQPSK.
    Page 161, 14.7. “pi/4 shift DQPSK” (standard ETSI EN 300 401 V1.4.1)
  1. You have done frequency correction manually: did you do this by
    looking at the DC subcarrier (no power transmitted here) in the
    received signal prior to OFDM demod?
    Yes. As can be seen in the code, I used frequency domain correlation
    with the pilot symbol. Works perfectly and can also be automated.
    There are a lot of papers on frequency offset estimation in OFDM.

Frequency synchronization in OFDM is very crucial, because the OFDM
symbol rate is small! To see why, try to understand the effect of a
small frequency error at the output of the FFT demodulator.
Of course - I need to hit the subcarriers within a few Hz. But that
works, as can be seen from the demodulated results.

  1. You have found the beginning of the frame manually. In your matlab
    code you posted there is a variable “start_resamp” that indicates this.
    How do you know that the begining of frame is not BETWEEN two samples?
    in other words there is no fine timing synchronization. I wonder what
    the effect of a small timing error is at the output of the FFT demodulator.
    Time sync is not a problem in OFDM - the guard interval takes care of
    that. Nice property. Try playing along with the “start_resamp” value -
    it will work for an offset up to about 504 (this is the length of the
    guard
    interval).

Jens


#3

I guess I was a little bit too quick with my answer…

In more detail:

  1. You have done frequency correction manually: did you do this by
    looking at the DC subcarrier (no power transmitted here) in the
    received signal prior to OFDM demod?
    Frequency synchronization in OFDM is very crucial, because the OFDM
    symbol rate is small! To see why, try to understand the effect of a
    small frequency error at the output of the FFT demodulator.
    The fractional offset (0.35) was found manually by look at the
    cross-correlation in the frequency domain and taking

df = (left_of_max - right_of_max) / (left_of_max+right_of_max).

Should be correct, shouldn’t it?

  1. You have found the beginning of the frame manually. In your matlab
    code you posted there is a variable “start_resamp” that indicates this.
    How do you know that the begining of frame is not BETWEEN two samples?
    in other words there is no fine timing synchronization. I wonder what
    the effect of a small timing error is at the output of the FFT demodulator.

I didn’t quite understand what you are saying until I though about it:
This should be equivalent to a small modulation in the frequency domain?

I just simulated that by:

% simulate fractional offset
d_resamp = d_resamp .* exp(jlinspace(0,2pi*0.1,length(d_resamp)).’);

No effect - after all I did resampling before.

Jens


#4

Jens E. wrote:

that. Nice property. Try playing along with the “start_resamp” value -
it will work for an offset up to about 504 (this is the length of the guard
interval).

Jens

AHA! Now we are getting some place. This last paragraph was very
revealing. Time sync is not a problem because of the guard interval BUT
varying depth in to the guard interval will IMMEDIATELY translate into
phase shifts on each and every bin that will vary with frequency and
depth into the guard interval. I am sorry I have not had time to spend
on the code but I have a lot going at the moment. There is simply no
such thing as a free lunch anywhere anytime, not even with OFDM.

Bob


AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
Laziness is the number one inspiration for ingenuity. Guilty as
charged!


#5

On 4/4/06, Robert McGwier removed_email_address@domain.invalid wrote:

AHA! Now we are getting some place. This last paragraph was very
revealing. Time sync is not a problem because of the guard interval BUT
varying depth in to the guard interval will IMMEDIATELY translate into
phase shifts on each and every bin that will vary with frequency and
depth into the guard interval. I am sorry I have not had time to spend
on the code but I have a lot going at the moment. There is simply no
such thing as a free lunch anywhere anytime, not even with OFDM.

Bob

Yes, I think this is a critical step. small letters are time domain and
capital letters are frequency domain.

x(n) -----------> X(k)
FFT

x(n-n’) ---------> e^(j2pi*n’*k/N) * X(k)
FFT

for one OFDM symbol, 0 <= k <= N-1

Therefore as you can see the phase shift will increase with k. For k=0,
there will be no phase shift and for k=N-1, there will be a phase shift
of
almost 2pin’. Therefore for a QPSK, when you map symbols to bits,
there
will be more errors for higher subcarrier (index). You have to start
sampling exactly after the cyclic prefix ends. In general if your timing
error is towards cyclic prefix, you effectively cyclic shift your data.
In
case your shift is away from the end of the cyclic prefix, you take some
samples from next symbol and introduce ISI. You need to see how this
will
effect you in DQPSK case. Please look at this link for relevant papers

http://www.cds.caltech.edu/~yasi/publications.html

Also for frequency offset, what really matters is not the frequency
offset
in Hz, but the relative frequency offset delta_f/F_s, where F_s is the
subcarrier spacing. Please look at

BER sensitivity of OFDM systems to carrier frequency offset andWiener
phase
noise

Pollet, T.; Van Bladel, M.; Moeneclaey, M.
Communications, IEEE Transactions on
Volume 43, Issue 234, Feb/Mar/Apr 1995 Page(s):191 - 193
Digital Object Identifier 10.1109/26.380034

In general if your relative frequency offset is .01 or less, I think you
will not be affected much. But again I am not too sure for DQPSK. Again
QAM
is more sensitive to these errors than QPSK.

Please correct me if I am wrong somewhere. I am sharing what I have
recently
learnt about these things …

Regards
Prateek Dayal


#6

Thanks for the reply! I’m really struggeling here…

Therefore as you can see the phase shift will increase with k. For k=0,
there will be no phase shift and for k=N-1, there will be a phase shift of
almost 2pin’. Therefore for a QPSK, when you map symbols to bits, there
will be more errors for higher subcarrier (index). You have to start
sampling exactly after the cyclic prefix ends. In general if your timing
error is towards cyclic prefix, you effectively cyclic shift your data. In
case your shift is away from the end of the cyclic prefix, you take some
samples from next symbol and introduce ISI. You need to see how this will
effect you in DQPSK case. Please look at this link for relevant papers

The phase shift doesn’t matter in differential demodulated systems.

To sum up:

Frequency offset results in ICI.
This is “white noise” interference.

Time offset results in

a) ISI, if offset results in taking values from other symbols.
This is also "white" interference.

b) phase shift, if offset results in taking values from the
cyclic prefix. This results in a "circle" structure, as the
phase shift is higher for subcarriers of higher frequency.

The time offset effect b) is removed by differential demodulation, since
the phase shift will be the same.

The effect I am seeing is a constant phase shift for all subcarriers,
different for each OFDM symbol. Nothing that could be explained with a
frequency offset or a time offset.

I am clueless.

In general if your relative frequency offset is .01 or less, I think you
will not be affected much. But again I am not too sure for DQPSK. Again QAM
is more sensitive to these errors than QPSK.
A small frequency offset results just in a SNR degradation - my
estimation is pretty accurate.

Jens


#7

Prateek Dayal wrote:

Also for frequency offset, what really matters is not the frequency
In general if your relative frequency offset is .01 or less, I think
you will not be affected much. But again I am not too sure for DQPSK.
Again QAM is more sensitive to these errors than QPSK.

Please correct me if I am wrong somewhere. I am sharing what I have
recently learnt about these things …

Regards
Prateek Dayal

Thank you very much for the reference. This was a very nice link to
Mostofi’s work. The following paper is also pertinent to Jen’s thinking
on the guard interval offset being irrelevant. It is not of course:

Y. Mostofi, D. Cox and A. Bahai, “Effect of Timing Synchronization
Errors on Pilot-aided Channel Estimation in OFDM: Analysis and
Solution,” /Proceedings of 5^th IEEE International Symposium on Wireless
Personal Multimedia Communications (WPMC),/ Honolulu, Hawaii, Oct. 2002,
pp. 1309-1313.

http://www.cds.caltech.edu/~yasi/papers/WPMC02.pdf

Best wishes,
Bob


AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
Laziness is the number one inspiration for ingenuity. Guilty as
charged!


#8

Yes. Here is what you are missing:

Let us concentrate (as does your nice animated gif) on one channel in
the OFDM.

Let us suppose you have a variable delay into the signal after its
onset. This will happen with probability one because your clock and the
transmitter clock will not be the same except in your computer
simulation.

If you took the FFT beginning (say) 39 samples into the symbol at t,
and then 52 samples after the beginning time for symbol at t+1,
this will be an additional rotation due to the frequency offset of this
channel from zero. Notice this means that every channel will have a
different rotation which will be a multiple of the frequency offset from
correct and the difference in time after symbol onset you go into the
symbol to take the FFT.

This is definitely a nontrivial exercise to get right.

Bob

Jens E. wrote:

http://www.cds.caltech.edu/~yasi/papers/WPMC02.pdf


Discuss-gnuradio mailing list
removed_email_address@domain.invalid
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
Laziness is the number one inspiration for ingenuity. Guilty as
charged!


#9

(comments inlined)

On Wed, Apr 05, 2006 at 02:02:23PM -0400, Robert McGwier wrote:

Yes. Here is what you are missing:

Let us concentrate (as does your nice animated gif) on one channel in
the OFDM.
Yes, what’s depicted are all decoded symbols in one OFDM frame.

Let us suppose you have a variable delay into the signal after its
onset. This will happen with probability one because your clock and the
transmitter clock will not be the same except in your computer simulation.
Agreed. But this delay will only be fractional, as I can determine the
exact start by correlation. The oscillators are pretty stable, so I can
exactly time one symbol. The offset will thus be fractional and
constant.

I verified this by correlating every OFDM symbol with itself. This
shows that the cyclic prefix does not move.

If you took the FFT beginning (say) 39 samples into the symbol at t,
and then 52 samples after the beginning time for symbol at t+1,
this will be an additional rotation due to the frequency offset of this
channel from zero. Notice this means that every channel will have a
different rotation which will be a multiple of the frequency offset from
correct and the difference in time after symbol onset you go into the
symbol to take the FFT.
I agree. But, as stated above, my time offset is fractional and
constant.

Jens


#10

http://www.cds.caltech.edu/~yasi/papers/WPMC02.pdf
Bob,

I am still convinced that using differential demodulation removes the
phase shift (see reply to Prateek). Or is there something I am not
seeing so far?

Jens