discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] new to GNUradio: AFSK and codec2 gmsk modem


From: Marcus D. Leech
Subject: Re: [Discuss-gnuradio] new to GNUradio: AFSK and codec2 gmsk modem
Date: Sun, 28 Jul 2013 19:44:10 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6

On 07/28/2013 07:35 PM, Kristoff Bonne wrote:
Hi,


I'm still very new to GNUradio, so please excuse my (perhaps dump) question. I did look around at different places at the web but did not really find an answer:

- My first step with GNUradio was to learn a bit more about using it; so .. do some test. I wanted to use GNUradio to determine the width of an AFSK signal; so I started looking for a AFSK modulator / demodulator; to come to the conclussion I didn't find one.

I looked in the GR source, on CGRAN, using several generic search engines without look.


Am I missing something here? I would be surprised there is no AFSK modulator / demodulator in GR as it would mean one cannot do packetradio or APRS with gnuradio.


- The main reason I am interested in gnuradio is because one of the projects I work on is "c2gsmk", a GMSK-based modem for VHF/UHF using the codec2 vocoder. Gnuradio looks to me like a very interesting platform to do simulation and work on the modem. The modem is now rewriten as an API which can operate purely on bitstreams (i.e. all GMSK modulation / demodulation taken out of the code): 56 bits in (40 ms @ 1400 bps codec2), "n" times 96 or 192 Bits out (40 ms @ 2400 or 4800 bps c2gmsk).

I have been browsing the different documents on how to write a block and also looking in some code to find simular examples on how it is done. I have three things I kind-of do not understand.

- How does GNU radio deal with "sessions"? A c2gmsk session is not just a stream of bits; it has the notion of sessions. It has a beginning and a stream also ends; and it can end in a number of different ways.

I'm trying to understand how to fit the idea of "sessions" into GNUradio.

Or am I seeing it all wrong?



- How does GNUradio deal with information about events in the API.

The c2gmsk API does not only return a bitstream, but also information about events; like a change of state in the statemachine of the API, or an event like "a GMSK sync-pattern has been detected", or "the stream has terminated due to to many out-of-sync frames", or the versionid of the stream received, or statistics of the golay decoding process, etc.




- To get some idea of how a block is written. I have been looking at the codec2 encoder/decoder block. It is interesting as it is also "x bits in, y bits out". However, c2gmsk is a bit different: there always is a fixed predefined number of bits in, but the number of bits "out" can vary. Sometimes just send in bits, but do not get anything back (e.g. in the decoder when the stream is not syncronised), sometimes one frame inbound results in one frame outbound, but sometimes one single frame in can result in (say) 5 frames out. (e.g. when encodig the start of a stream).

Is this an issue for gnuradio?




Any information welcome.

Chéééério!
Kr. Bonne.


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Just found this, it might help:

https://github.com/dl1ksv/gr-afsk


Also, keep in mind that AFSK is a kind of "double modulation scheme". To demodulate it, first demodulate the FM-voice using a narrowband
  FM demodulator, then run that into a suitaby-configured FSK demod.

AFSK was always a "hack" to allow you to send data over narrowband FM-voice radios without having to do anything to the radio. So, they chose Bell-202 synchronous modem tones, because they'd "fit" in most narrowband FM-voice radios.





reply via email to

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