discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] gmsk error / log files and octave


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] gmsk error / log files and octave
Date: Tue, 6 Dec 2005 16:04:07 -0800
User-agent: Mutt/1.5.6i

On Tue, Dec 06, 2005 at 06:16:32PM -0500, address@hidden wrote:
>  On Tue, 6 Dec 2005 14:24:43 -0800, Eric Blossom address@hidden wrote:
> > Quick answer: 
> >
> >   use the defaults.
> >
> > Involved answer: 
> >
> > It's a Mueller and Müller (M&M) discrete-time error-tracking
> synchronizer.
> >
> >  See "Digital Communication Receivers: Synchronization, Channel
> > Estimation and Signal Processing" by Heinrich Meyr, Marc Moeneclaey, &
> Stefan Fechtel.
> >  ISBN 0-471-50275-8.
> 
> I should have seen that answer coming.

In certain areas, I'm quite predictable ;)

> I am trying to get the book, no luck so far.

Amazon carries it.

> The default values dont seem to work.
> 
> What should the data going in and out of the gr.clock_recovery_mm_ff look
> like?

Probably the easiest thing is to modify gmsk_test.py and add code to
write the signals you're interested in to files using gr.file_sink.
That's how we debugged it.

  In gmsk_test.py, make main look like this: (untested, but probably pretty 
close)

    fg = my_graph(rx_callback, options.spb, options.bt, options.snr, 
options.freq_error)
    fg.connect(fg.packet_receiver.gmsk_demod.sub,
               gr.file_sink(gr.sizeof_float, "before_clock_recovery.dat"))
    fg.connect(fg.packet_receiver.gmsk_demod.clock_recovery,
               gr.file_sink(gr.sizeof_float, "after_clock_recovery.dat"))
    fg.start()


Then after it runs, you can read the binary log files into octave and
display them as you like.

In your ~/.octaverc add (modify as required for your gnuradio build directory):

LOADPATH=":~/gr-build/gnuradio-core/src/utils";

$ octave
>>> before = read_float_binary("before_clock_recovery.dat", 4e6);
>>> after  = read_float_binary("after_clock_recovery.dat", 4e6);
>>> plot(before(1:1000));
>>> plot(after(1:1000));


> I see that in gmsk2.py you remove DC offset, should the signal be varying
> +/-Vpeak equally?

Yes, pretty close.

> Any requirements that the signal should be over sampled?

The sample rate needs to be at least 2x the data rate.

> Is the output basically resampled at the data clock rate so that each
> output point represent a bit?

Yes.

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]