discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Selecting the precise sampling point from many sa


From: Andy Walls
Subject: Re: [Discuss-gnuradio] Selecting the precise sampling point from many samples
Date: Fri, 01 Jun 2018 08:25:21 -0400

> From:         Carlo Manfredini
> Date:         Fri, 1 Jun 2018 21:24:26 +1000
> Hello,
> I have a 2kbps bipolar data stream (in hardware) which I will sample
> at 48kSps and bring into GR.
> Once in GR, I wish to be able to sample only once per bit...so I use
> the "Keep 1 in N" block (where N=24) and this reduces my rate to
> 2kSps...with 1 sample per original data bit.
> 
> However, I wish to be able to control exactly at which point in the
> 48kSps stream that I sample down to 2kSps.
> 
> This is equivalent in hardware terms to being able to select at which
> point in each bit period that I sample once per bit.ie: selecting the
> decision point in an eye pattern).
> 
> The reason for this process is that I simply wish to read in the
> original 2kbps bit stream so that I can use this data to do some PSK
> modulation in GR etc...but my inputting device only runs at 48kSps.
> 
> Is there some way with existing GR blocks that I can tell where
> abouts in the 48kSps stream that I have actually sampled ? so that I
> can manually set this sampling point.

This is precisely the function of the Symbol Synchronization blocks.

https://www.gnuradio.org/wp-content/uploads/2017/12/Andy-Walls-Samples-to-Digital-Symbols.pdf

You should play with the example here:

https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/demod/symbol_sync_test_float.grc
https://github.com/gnuradio/gnuradio/blob/master/gr-digital/examples/demod/symbol_sync_test_float_ted_gain.m


You'll probably want to do something like:

 -> Decimating FIR filter -> FIR Filter -> Symbol Sync -> Binary Slicer -> 

The first decimating FIR filter would anti-alias filter and downsample
by, let's say, 2 or 4, to bring the stream down to either 12 or 6
samples per symbol.

The second FIR filter would be a pulse matched filter, to get rid of
noise and peak the symbol centers.  (You can merge this filter into the
previous filter, if you want.)

The Symbol Sync block estimates the exact symbol centers, and
downsamples to just those sample points.

The binary slicer just thresholds its input samples to give you 1 or 0
valued samples on output.

> Perhaps a simpler question is : how do I know where the "Keep 1 in N"
> block is sampling ?

You don't.

Regards,
Andy

> Thanks for any hints...hopefully I have explained this adequately.




reply via email to

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