Reply by commsignal April 2, 20132013-04-02
If your solution is working on the synthesized data, then the problem might
be somewhere else. Maybe you can recalculate your filter gains and loop
constants by analyzing your real data again. Or since you have to use an
equalizer, your channel is frequency selective (and not frequency flat).
That means there might not be one optimum pulse for timing phase
adjustment. In that case, your NDA timing recovery module will lock onto
the symbol frequency only (that's what I think is required) and the
equalizer will do the rest.
Reply by Vieriksson March 28, 20132013-03-28
Hi Mark,

Transmitter: DTU-215 from Dektec

Transmits 16QAM modulated data at the rate of 4.5Msymbols/s at a carrier
frequency of 578MHz.

Receiver: DTA-2131 from Dektec

Receives 100,000 IQ-samples (16 bit signed integer I + 16 bit signed
integer Q) at the rate of 9Msamples/s (2 samples/symbol) at a carrier
frequency of 578MHz. IQ-bandwidth = 8Mhz.

This should give me 100,000 IQ-samples of 16QAM modulated data at 2
samples/symbol with carrier offset and timing offset + channel distortion
to work with for demodulation.

That is also what I am synthesizing.

Regards,
Viktor
Reply by Mark March 28, 20132013-03-28

where is the "REAL" data coming from?

off the local cable TV system?

are you SURE they are using the EXACT same standard as you have
simulated?

inadvertent spectral inversion is always a good gothcha


Mark
Reply by Vieriksson March 28, 20132013-03-28
Thanks for the links Doug.

Regards,
Viktor
Reply by Vieriksson March 27, 20132013-03-27
Delay example:

Number of 16QAM modulated symbols = 5,000
Samples per Symbol = 2
Number of samples after transmit RRC-filter = 10,000
Number of samples after AWGN + Carrier Offsets = 10,000

Start delay = 0.3 samples
End delay = 6.7 samples
Delta delay = (6.7 - 0.3)/10,000 samples

Delay = Start Delay : Delta delay : End delay (Increase with Delta delay
between each sample)

Then I apply this delay on the signal, sample by sample.



Since I am going to perform the demodulation of the DVB-C signal offline on
recorded IQ-samples I thought that this would be enough to simulate timing
offset.


Regards,
Viktor
Reply by DougB March 27, 20132013-03-27
>Hi Doug, > >Thanks for the answer. > >Let us say that I am reading 10,000 IQ-samples (2 IQ-samples per symbol). > >Now I am using a receiver root raised cosine matched filter: > >fdesign.pulseshaping(2, 'Square Root Raised Cosine', 'Ast, Beta', 43, >0.15) > >I filter (the filter length is about 600) all of the 10,000 samples at
the
>same time and then apply my timing recovery. > > >This is wrong? Should I apply the matched filtering (SRRC-filter) in >combination with the polyphase resampling filtering inside the timing >recovery PLL? How would that scheme look like? > >Thanks again. > >Regards, >Viktor > > >
Viktor, Take a look at figures 6, 7, and 8 of: Multirate Digital Filters for Symbol Timing Synchronization in Software Defined Radios Fredric J. Harris, Senior Member, IEEE, and Michael Rice, Senior Member, IEEE your matched filter can be converted to a polyphase filter so you essentially get resampling for free. Check out Fred Harris' book as well. -Doug
Reply by Vladimir Vassilevsky March 27, 20132013-03-27
On 3/27/2013 9:10 AM, Vieriksson wrote:

> The synthesized data is put through an AWGN channel with SNR 20dB. Then I > add frequency and phase offsets by multiplying the signal with > e^(i*(2*pi*freq_offset*t + phase_offset)) where t is increased with the > sample time. Finally a delay is added by stepping the data through a delay > channel with variable delay that is increasing or decreasing with time.
If demodulator works on simulated data, and doesn't work on real data, then something is not adequate in simulation. You are modeling timing rate mismatch by variable delay line. But, the delay can't be increasing or decreasing forever. How are you dealing with this? I'd synthesize the simulation signal analytically for every sample of the receiver. That would allow me keeping independent time scales. Vladimir Vassilevsky DSP and Mixed Signal Designs www.abvolt.com
Reply by Vieriksson March 27, 20132013-03-27
Hi Vladimir,

Thank you for your reply, always nice to get some input from a well known
name.

The synthesized data is put through an AWGN channel with SNR 20dB. Then I
add frequency and phase offsets by multiplying the signal with
e^(i*(2*pi*freq_offset*t + phase_offset)) where t is increased with the
sample time. Finally a delay is added by stepping the data through a delay
channel with variable delay that is increasing or decreasing with time.

Regards,
Viktor
Reply by Vladimir Vassilevsky March 27, 20132013-03-27
On 3/27/2013 5:42 AM, Vieriksson wrote:
> Hi, > > I am having some issues with the IQ-demodulation of a DVB-C signal. Even > though it works fine on synthesized data, I can't get the timing recovery > to work on real data. Can anybody tell me what I am doing wrong or where > the problem is most likely to occur?
If it works on synthesized data, then it should work with real data. Does your synthesized data include frequency and timing offsets, distortion and noise? Vladimir Vassilevsky DSP and Mixed Signal Designs www.abvolt.com
Reply by Vieriksson March 27, 20132013-03-27
Hi Doug,

Thanks for the answer. 

Let us say that I am reading 10,000 IQ-samples (2 IQ-samples per symbol).

Now I am using a receiver root raised cosine matched filter:

fdesign.pulseshaping(2, 'Square Root Raised Cosine', 'Ast, Beta', 43,
0.15)

I filter (the filter length is about 600) all of the 10,000 samples at the
same time and then apply my timing recovery.


This is wrong? Should I apply the matched filtering (SRRC-filter) in
combination with the polyphase resampling filtering inside the timing
recovery PLL? How would that scheme look like?

Thanks again.

Regards,
Viktor