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
Discuss-gnuradio@gnu.org
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.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio