# Problem with packet decoder for gmsk

**URL:** <https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073>\
**Category:** GNU Radio\
**Created:** [March 26, 2014, 12:31pm UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073 "2014-03-26T12:31:19Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [March 26, 2014, 12:31pm UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/1 "2014-03-26T12:31:19Z")

</div>

Hello all,  
I’m working on gmsk transmitter and receiver past 6 months , the  
problem  
that I’m facing is in the packet decoder.

I tried with wav file and signal source it worked good.

my block is of this type

Random\_source=\>Packet\_encoder=\>gmsk\_modulator=\>rational\_resamlper\_1=\>uhd\_sink

uhd\_source=\>rational\_resampler\_2=\>low\_pass\_filter=\>gmsk\_demodulator=\>packet\_decoder=\>scope\_sink/file\_sink

In rational\_resampler\_1 with interpolation=2, decimation=1  
rational\_resampler\_2 with interpolation=1, decimation=2

I’m able to detect fft and constellation using scope\_sink after  
gmsk\_demodulator,  
but after packet\_decoder I’m not able to see any signal in the  
scope\_sink  
or there will be no data in the file if I write using file sink, it  
will  
be of 0 size, no data will be written.

I used packet decoder with default values ,no output in scope\_sink or  
file  
\_sink, threshold =-1, access code empty.  
even I tried with changing the values of threshold from 50 to -50 , no  
output, kept access code empty.

How to configure the packet decoder or any alternative idea.  
I’m working on the transmitting data/file that has to be seen on  
scope\_sink  
or to be written in the file using file sink.  
In this case the input data is random source how to receive it, If I  
want  
to transmit .txt/.dat file how to construct block  
should follow same step or something else.

Thanks  
in advance

Ank

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218.html](http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [March 27, 2014, 9:54am UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/2 "2014-03-27T09:54:17Z")

</div>

On 03/26/2014 12:30 PM, Ank wrote:

> 

uhd\_source=\>rational\_resampler\_2=\>low\_pass\_filter=\>gmsk\_demodulator=\>packet\_decoder=\>scope\_sink/file\_sink

There are a lot of things that can go wrong in this setup. Maybe the  
sync is not locking fast enough, and destroying the preamble. It’s hard  
for us to figure this out from a distance.

Try replacing the UHDs with a channel model, and go crazy with that. See  
what happens.

M

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [March 28, 2014, 7:14am UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/3 "2014-03-28T07:14:50Z")

</div>

Thanks Martin, i tried with replacing uhd with channel model, I had  
good  
signal at the receiver after gmsk\_demodulator but I’m facing the same  
problem i.e with packet decoder no out put after here.

Even I tried with removing uhd and directly connecting them even though  
I  
have the same problem like below shown

Random\_source=\>Packet\_encoder=\>gmsk\_modulator=\>rational\_resamlper\_1=\>–!

!

!---------------------------------------------------------------------------------------------------------------------!

!---------=\>rational\_resampler\_2=\>low\_pass\_filter=\>gmsk\_demodulator=\>packet\_decoder=\>scope\_sink/file\_sink

no output/signal after packet decoder,what would be the problem which  
side I  
have to concentrate to remove the error.

Thank you

Ank

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218p47278.html](http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218p47278.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [March 28, 2014, 8:13am UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/4 "2014-03-28T08:13:49Z")

</div>

To expand on Martin’s comments, here are some of the issues that _could_  
be  
present:

- Add a mult\_const block or otherwise reduce the amplitude of the i/q  
signal going to the usrp\_sink from +/- 1.0 to 0.5 or 0.7. This  
ensures you  
are not non-linear in the transmitter.
- tx and rx\_gain → if you have these two devices a few feet apart  
(3-5  
dB for both tx and rx should work)
- Frequency errors between the two USRP devices (or is this on a  
single  
device?) Ultimately, you could include some automatic, course  
frequency  
correction
- In my experience, the GMSK demod will lock within 100-200 symbols.  
Since this is a continuous streaming flow graph driven by the random  
source, transient behaviour shouldn’t be an issue. You should have a  
continuous stream of samples to lock to. So I don’t think lock/sync  
time  
for the clock recovery is an issue.
- Have you changed any parameters on the packet encoder/decoder  
blocks  
from the defaults? What is the bit/symbol and samps/symb set to?  
What’s  
the samps/symbol set to on the gmsk mod and demod?
- Instead of a random source, test with a vector source and a known  
pattern.
- To give a quick sanity check on your encoder/decoder config,  
connect  
the two _without_ any channel. If that doesn’t work, you definitely  
have  
some config issues.

Also, once you’re through with this experiment, you might consider using  
gr-mac, which provides similar functionality. Balint and I have been  
hacking on it late tonight, you can find the latest here:

> **[GitHub - balint256/gr-mac: Easy-to-use MAC-layer implementations for GNU Radio.](https://github.com/balint256/gr-mac)**
>
> Easy-to-use MAC-layer implementations for GNU Radio. - GitHub - balint256/gr-mac: Easy-to-use MAC-layer implementations for GNU Radio.

Also, a known working version that is a bit older and less bleeding  
edge:

[https://github.com/jmalsbury/gr-mac](https://github.com/jmalsbury/gr-mac)

> **[p31.pdf](https://conferences.sigcomm.org/sigcomm/2013/papers/srif/p31.pdf)**
>
> 706.77 KB

-John

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [March 28, 2014, 7:44am UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/5 "2014-03-28T07:44:02Z")

</div>

Lot of people around here at IIT Bombay also complain that there is no  
data  
at the output of packet decoder.

Try replacing the random source (binary output) with a signal source(set  
it  
to float). And try to plot the output of packet decoder(float output) in  
a  
gui sink. That should work, because there exists a working example among  
GNU Radio example which uses this flow graph.

I can’t say what is going wrong in your flow graph. But I kind of feel  
that  
we need to dig into the implementation of the block to know what is  
going  
wrong.

Manu.

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [March 28, 2014, 8:17am UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/6 "2014-03-28T08:17:55Z")

</div>

And here’s a flowgraph with some of the recommendations above  
(attached).

-John M.

---

<div class="post-metadata">

**Author:** ![Ank](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/0ea827/32.png) [@Ank](https://www.ruby-forum.com/u/Ank)\
**Post date:** [April 1, 2014, 12:16pm UTC](https://www.ruby-forum.com/t/problem-with-packet-decoder-for-gmsk/240073/7 "2014-04-01T12:16:26Z")

</div>

This worked good, but with usrp its still no output, I’m working on  
that.

As i’m student, my project is on gsm/gsm-bts .

Can I implement this modulation scheme for for physical/L1 layer of  
gsm.

Are there any modules available for gsm frame and burst, for L2,L3  
layers.

Thank you all

Ank

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218p47360.html](http://gnuradio.4.n7.nabble.com/problem-with-packet-decoder-for-gmsk-tp47218p47360.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).
