OFDM / DAB demodulation

Good morning,

I sampled a local DAB radio station at 225.648 MHz, decimation factor 32
with the USRP/tvrx.

DAB is using COFDM with pi/4-DPSK on 1536 subcarriers (see www.etsi.com,
standard
EN300401 for details). I wrote some Matlab code to demodulate the
signal. The data is resampled from 2 MHz (URSP) to 2.048 MHz (DAB
Standard).
A frequency offset is compensated manually.

It works so far, only one problem arises: The I/Q signal diagram jumps
and jitters randomly by up to pi/8. What could be the problem? I am
absolutely clueless - the frequency offset is compensated perfectly.

My ultimate goal is to implement OFDM de/modulation and a DAB receiver
in gnuradio.

Greetings,
Jens

After some thinking: Could this be phase noise? If it is, which
oscillator is at fault? The TVRX frontend? The max. phase jitter equals
roughly 100 Hz.

I would doubt that unless your USRP is defective. The phase noise should
only become a major factor at baud rates below about 10 kbaud.

What’s the actual bandwidth of the DAB signal? Did you try collecting at
4
MSPS and then downsampling to the FFT sample rate? Maybe the CIC or
compensation filter transition are distorting the final result.

-Clark

Good morning,

Discuss-gnuradio Info Page


Is your PC infected? Get a FREE online computer virus scan from McAfee®
Security. Antivirus, VPN, Identity & Privacy Protection | McAfee

On Fri, 2006-03-31 at 17:08 +0200, Jens E. wrote:

I sampled a local DAB radio station at 225.648 MHz, decimation factor 32
with the USRP/tvrx.

DAB is using COFDM with pi/4-DPSK on 1536 subcarriers (see www.etsi.com, standard
EN300401 for details). I wrote some Matlab code to demodulate the
signal. The data is resampled from 2 MHz (URSP) to 2.048 MHz (DAB Standard).
A frequency offset is compensated manually.

Side issue - do I understand this correctly, that Europe uses an open
published DAB standard while those near me in the US are not
freely published (Ibiquity, IBOC, hdradio, etc) ??

–Chuck

To resample, I used the Matlab “resample” function

chunk_resamp = resample(chunk, 2048, 2000);

It’s basically an FIR low-pass - phase is linear.

I’ll try again today without resampling, but then the timing is
pretty much screwed up.

Jens

On Fri, Mar 31, 2006 at 05:10:40PM -0500, Clark P. wrote:

DAB is using COFDM with pi/4-DPSK on 1536 subcarriers (see www.etsi.com,
standard
EN300401 for details). I wrote some Matlab code to demodulate the
signal. The data is resampled from 2 MHz (URSP) to 2.048 MHz (DAB
Standard).
A frequency offset is compensated manually.

How did you resample from 2.000MHz to 2.048 MHz?

Eric

Well - you can download the standard at ETSI. It’s open and published.
I don’t know about the US.

Resample is okay, but beware of any other filter operations you are
doing on
the data in a block-wise manner, e.g. chunks. You have to remember to
save
the initial conditions:

[chunk_filt, z] = filter(b,a,chunk,z);

This would cause phase discontinuities at the edges of each block.

-Clark

standard


Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page


Express yourself instantly with MSN Messenger! Download today - it’s
FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

On Sat, 2006-04-01 at 10:53 +0200, Jens E. wrote:

Well - you can download the standard at ETSI. It’s open and published.
I don’t know about the US.

Ok - last time I asked about the US hdradio standard I got the
impression that the lower levels of the stack were for licensee
eyes only.

If so, it’s poetic justice to see Ibiquity desperately trying to
promote it, ignoring the fact that the enthusiasm of hobbyists and
experimenters make great early adopters and promoters - but that’s
the business model they choose and will sink or swim by it.

–Chuck

I resampled all the data to do a proof-of-concept. The frames are only a
small part
of the “chunk” variable. What I am getting is a fairly nice pi/4 DPSK.
Only that
in between OFDM Symbols (there are 76 in a frame) there is some sort of
random
phase jitter. And I am clueless what it could be. Frequency offset is
compensated,
the channel doesnt vary that fast.

Jens

4/1/2006, “Clark P.” [email protected] âû ïèñàëè:

Forgot to answer your questions:
The subcarrier spacing is 1 KHz, 1536+DC Carrier (unused) = 1.537 MHz
I sampled 2 MHz (USRP, dec 32). Then I sampled up to 2.048 MHz since
1/2.048MHz is the basic timing unit in the standard.

I tried again without resampling - the random phase jitter is still
there. Plus the
timing problem - the standard requires 2.048 MHz to I get decimal offset
values.
For example at the 2.000 MHz the guard intervall has the length
492.1875.

Do you think downsampling will work better than upsampling? I’ll try
that
tomorrow.

3/31/2006, “Clark P.” [email protected] âû ïèñàëè:

Charles S. wrote:

On Sat, 2006-04-01 at 10:53 +0200, Jens E. wrote:

Well - you can download the standard at ETSI. It’s open and published.
I don’t know about the US.

Ok - last time I asked about the US hdradio standard I got the
impression that the lower levels of the stack were for licensee
eyes only.

I’ve downloaded the iBOC standards (both AM and FM) and they seem to be
pretty detailed on the physical layer. They don’t mention the codec at
all, though. It would be interesting to demod it to the point of
getting the bitstream out, for 2 reasons: eventually there will be a
[probably non-free] software version of their codec, and there are data
portions of the stream which are not from the codec.

Matt

Jens E. wrote:

I resampled all the data to do a proof-of-concept. The frames are
only a small part of the “chunk” variable. What I am getting is a
fairly nice pi/4 DPSK. Only that in between OFDM Symbols (there are
76 in a frame) there is some sort of random phase jitter. And I am
clueless what it could be. Frequency offset is compensated, the
channel doesnt vary that fast.

I’m confused. Are you seeing:

good symbol – jitter – good symbol – jitter – good symbol

or

good symbol 76 times and then jitter

?

Are you accounting for the cyclic prefix? I assume that COFDM has one.

Matt

On Sat, Apr 01, 2006 at 01:59:09PM -0800, Matt E. wrote:

good symbol – jitter – good symbol – jitter – good symbol

or

good symbol 76 times and then jitter

?

Are you accounting for the cyclic prefix? I assume that COFDM has one.

I am seeing only good symbols, but with a random phase offset (up to
pi/8).
The prefix is accounted for. If I do not account for it correctly this
results in ISI. Looks like added noise, not like the effect I’m seeing.

Jens