Hi Brady,
Regarding using Python scripts instead of GRC, I am aware of the power of
Python, I use it daily, but I still find the "visual" design tools (like
the filter designer and the embedded docs) much more easy when prototyping.
My usual workflow is to come up with a flowgraph with labels, buttons,
sliders and GUI sinks using GRC, and when I am ready to test live (for
example on my phone) I translate the graph to C++ (by replacing certain
blocks with their C++ counterparts if necessary). It is very easy and
powerful. Also allows me to switch on the fly between an audio sink to a
USRP sink at the press of a button.
David, regarding the actual numbers, I think that I might create a "mega
graph" which calculates all the numbers and displays them along with BER
figures live, while you send data over radio and adjust sliders for various
values. I like seeing the numbers change even as I run the flowgraph (I
have two soundcards, one of them for the radio and the other for
monitoring) and the USRP and SDR stick are connected via USB but to a
different graph. I would like to unify that if possible, but I still
struggle with certain blocks, like the trellis-viterbi, FEC or BER tools.
Regarding theory versus practice, I am not trying to compare my numbers
with theory, because I can do that with a real SDR connected. Instead, I am
very interested in this idea of using a cheap FM handheld as a data modem.
There are various challenges which make it a completely different exercise
compared with SDRs.
For example, the pre-emphasis and de-emphasis slopes can sometimes be
different between radios and this will affect the bit stream, or you can
get frequency or phase errors introduced by various components of the
chain, radios might not be tuned to the exact same frequency, you symbol
rate might actually not be exactly the same due to CPU limitations and you
have to correct all that. I find this a very challenging exercise.
I have read your blog posts about the 2400B modem, but I would really like
to understand more, like what kind of filters do you use for pulse shaping
and how do they affect performance/bandwidth, how do you track the carrier
frequency and correct frequency and phase errors. This does not seem to be
explained anywhere (I know I could just look at the code, but reading an
explanation seems easier :) )
Also I have some questions regarding your numbers, like what figures do you
use for channel bandwidth (Eb/No), given that there are actually two
channels, one through the audio path of the radio and the other one
whatever width you set your filters to.
Thanks anyway for making all this possible. If I had not read your blog
posts, I probably would never have become interested in this subject.
Cheers,
Adrian
On Tue, Jul 5, 2016 at 9:47 PM, David Rowe <da...@rowetel.com> wrote:
> Hi Adrian,
>
> Sure, it's not always possible to get the output we need from the tools
> we are using.
>
> However the main point I was making is to compare your GR results to a
> known baseline, like the theoretical Eb/No versus BER performance of the
> modem you are simulating. OK to use another tool for that (e.g. a
> spreadsheet or pencil and paper).
>
> Re filter design it may affect performance of non-ideal modems, like
> those that pass symbols through an analog modem (e.g. legacy FM radios),
> but filter design won't impact ideal modem performance. Ideal modem
> performance is set by the laws of physics. Fortunately we can get to
> within a few fractions of a dB with real world implementations - if we
> choose the right modem design.
>
> Cheers,
>
> David
>
> On 05/07/16 23:02, Adrian Musceac wrote:
> > Hi David,
> >
> > I wish I was able to generate BER plots similar to those in your images.
> Unfortunately, while Gnuradio has powerful real time plotting blocks, I
> haven't figured out how to use them yet.
> > For this reason, I have to use two flowgraphs, one for the analog radio
> and one for the USRP, get the SNR figures from one and use pen and paper to
> compare with the known bits received on the other. This allows me to change
> the block parameters live and watch the result. Hopefully some day I will
> be able to learn Octave.
> >
> > For reference, the pulse shaping filters I am experimenting with are
> derived from this paper:
> > http://www.ochiailab.dnj.ynu.ac.jp/pdf/tanahashi_tcom06_final.pdf
> >
> > Cheers,
> > Adrian
> >
> > On 5 July 2016 03:21:44 GMT+01:00, David Rowe <da...@rowetel.com> wrote:
> >> Nice work Adrian. A good way to present this work is plots of BER
> >> against Eb/No for the various modulation schemes you are experimenting
> >> with. See my blog posts on FSK etc for examples.
> >>
> >> It's useful to include the theoretical curves as comparisons to your
> >> real world implementations, these are well known for BPSK, FSK, and
> >> GMSK.
> >>
> >> You can also plot BER against SNR if the bit rate Rb and Noise BW N are
> >>
> >> equal. Eb/No is convenient as everything is normalised.
> >>
> >> Cheers,
> >>
> >> David
> >>
> >> On 05/07/16 08:16, Adrian Musceac wrote:
> >>> Hi,
> >>>
> >>> Some more news from the VHF modem front. First of all, I did some
> >>> performance comparisons between GMSK waveforms and regular AFSK as
> >> used
> >>> by a typical APRS modem. Obviously, there is a reason why Bell AFSK
> >>> was chosen: the Gaussian pulse shaping filter does introduce ISI as
> >> a
> >>> cost for reducing the signal bandwidth.
> >>> The next question was "how much". Luckily, using the excellent filter
> >>> design tool from Gnuradio, we can change the filter parameters and
> >> then
> >>> test the result against a channel with AWGN noise. The difference
> >> seems
> >>> to be around 2 dB in favour of AFSK.
> >>>
> >>> However, my earlier experiments showed that DBPSK will do even
> >> better.
> >>> Unfortunately, sending PSK over a narrow FM channel requires some
> >> tuning
> >>> of the modem parameters. 3 dB of improvement at the same BER is not
> >>> surprising, what was surprising to me though was the fact that adding
> >> a
> >>> pulse shaping filter immediately before the frequency conversion
> >>> improved the signal decoding by another 1-2 dB. A 9 dB SNR signal has
> >>> the same BER as a 14 dB SNR GMSK modem. At this point we are almost
> >>> doing better than analog voice already.
> >>> To add further gain we can always decrease the bitrate to 1200 bit/s.
> >>>
> >>> And since I was focused on filters, I had to take another look at the
> >>> data. What we want is a signal that can pass 1300 bit/s Codec2
> >> through a
> >>> narrow mode FM transceiver (wide mode is beginning to be phased out
> >> at
> >>> this point). We still have bandwidth to spare, so it seemed to me
> >> that
> >>> using the same filter bandwidth for TX and RX is wasteful. Instead,
> >> the
> >>> TX filter is 20% wider than the RX filter for (very little) added
> >>> performance.
> >>>
> >>> The bad news is that the new modem is computationally about twice
> >> more
> >>> expensive. Using it on my phone will be a big stretch. We will see if
> >> I
> >>> can make it work on a 1.2 GHz CPU.
> >>>
> >>> Finally, there are some people out there who criticise Gnuradio for
> >>> being slow, bloated and too high level for this kind of stuff. I just
> >>> want to say that for me as a student, it is a very valuable tool for
> >>> learning. Maybe some day I will join the ranks of the Octave gurus,
> >> but
> >>> not today.
> >>>
> >>> A video and a screenshot of my flowgraph:
> >>> https://www.youtube.com/watch?v=YOX7H3Fcxe4
> >>>
> >>> Cheers,
> >>> Adrian
> >>>
> >>> On Fri, Mar 25, 2016 at 10:17 AM, Adrian Musceac <kanto...@gmail.com
> >>> <mailto:kanto...@gmail.com>> wrote:
> >>>
> >>> Hi Brady, David,
> >>>
> >>> I have started transitioning my GRC flowgraphs to C++ and I have
> >> put
> >>> the code up on Github, just in case you might find it useful in
> >> your
> >>> tests for the 2400B mode. My choice of a modem is AFSK, 2000
> >> bit/sec
> >>> (1200 bit voice or 1300 bit data). It has no FEC, no scrambling
> >> and
> >>> no interleaving (yet). The audio is framed for the standard 40
> >> msec
> >>> Codec2. It works through a handheld FM transceiver and can be
> >>> decoded easily with Gqrx.
> >>>
> >>> The perfomance is 5 dB worse than analog FM, measured for 12 dB
> >> SNR.
> >>> I would be very curious to see a comparison with 2400B. My next
> >> step
> >>> is to transition the DBPSK modem which is 3 dB worse than analog
> >> FM
> >>> based on my USRP captured data.
> >>>
> >>> Link to the code repo:
> >> https://github.com/kantooon/gnuradio_audio_modems
> >>> Video of operation: https://www.youtube.com/watch?v=2FZBQvVm5Co
> >>>
> >>> Cheers,
> >>> Adrian (YO8RZZ)
> >>>
> >>>
> >>> On Thu, Mar 17, 2016 at 12:04 AM, Brady O'Brien
> >>> <brady.obrien...@gmail.com <mailto:brady.obrien...@gmail.com>>
> >> wrote:
> >>>
> >>> Hey Adrian,
> >>>
> >>> The gnuradio-companion pipelines I used for the test are
> >>> attached. These grc pipelines are only meant to get 16-bit
> >> 48k
> >>> samples in and out of the HackRF and rtlsdr for testing. The
> >>> meat of the FSK is done with the C fsk modem, used in
> >> freedv_rx,
> >>> freedv_tx, fsk_mod, and fsk_demod. We are also running our
> >> FSK
> >>> modem directly from SDR samples instead of through FM radios.
> >> We
> >>> will be running 2400B over legacy FM radios, but don't yet
> >> have
> >>> the same degree of test coverage.
> >>>
> >>> Thanks,
> >>>
> >>> Brady O'Brien
> >>>
> >>> On Wed, Mar 16, 2016 at 3:34 PM, Adrian Musceac
> >>> <kanto...@gmail.com <mailto:kanto...@gmail.com>> wrote:
> >>>
> >>> Hi David,
> >>>
> >>> Is it possible to get our hands on the Gnuradio code?
> >> I've
> >>> been trying
> >>> to optimize modems running at 1200 bits/second and the
> >> best
> >>> I could do
> >>> was 100% copy at 8 dB above analog FM for DBPSK and 12 dB
> >>> above for
> >>> GMSK. Your modem seems to be 16-20 dB better than that!
> >> If I
> >>> could see
> >>> the Gnuradio graph maybe I could figure out what I'm
> >> doing
> >>> wrong.
> >>>
> >>> Thanks,
> >>> Adrian
> >>>
> >>> On 3/16/16, Steve <coupaydevi...@gmail.com
> >>> <mailto:coupaydevi...@gmail.com>> wrote:
> >>> > Ha, I wish it was through a radio!
> >>> >
> >>> > I'm trying to think what I have laying around here
> >> that
> >>> might make a good
> >>> > transmitter for it.
> >>> >
> >>> > On Wed, Mar 16, 2016 at 4:02 AM, glen english
> >>> <g...@cortexrf.com.au <mailto:g...@cortexrf.com.au>>
> >> wrote:
> >>> >
> >>> >> ah. good stuff. nice progress.
> >>> >>
> >>> >>
> >>> >> On 16/03/2016 7:50 PM, Steve wrote:
> >>> >>
> >>> >> Just using the script:
> >>> >>
> >>> >> freedv_tx 2400A ve9qrp_10s.raw modem.raw
> >>> >>
> >>> >> Which produces a RAW audio file sampled at 48 kHz and
> >>> importing that into
> >>> >> audacity.
> >>> >>
> >>> >> On Wed, Mar 16, 2016 at 3:46 AM, glen english
> >>> <g...@cortexrf.com.au <mailto:g...@cortexrf.com.au>>
> >>> >> wrote:
> >>> >>
> >>> >>> Hi Steve
> >>> >>>
> >>> >>> Nice
> >>> >>>
> >>> >>> is that through a PA- if so, linear or linear in say
> >>> 3dB compression?
> >>> >>>
> >>> >>>
> >>> >>> On 16/03/2016 7:42 PM, Steve wrote:
> >>> >>>
> >>> >>> Thought I'd upload a spectrum snapshot. You can't
> >>> really see the
> >>> >>> carriers
> >>> >>> until you drop the number of samples to about 256,
> >> but
> >>> this shows how
> >>> >>> wide
> >>> >>> it is.
> >>> >>>
> >>> >>> I noticed that the freedv_tx was outputting +/- 1.0
> >>> signals and a couple
> >>> >>> of clips going on. Maybe need to knock it down to
> >> +/-
> >>> .5 like the old
> >>> >>> FDM
> >>> >>> modes.
> >>> >>>
> >>> >>> FYI
> >>> >>>
> >>> >>> Steve
> >>> >>>
> >>> >>>
> >>> >>>
> >>> >>>
> >>>
> >>
> ------------------------------------------------------------------------------
> >>> >>> Transform Data into Opportunity.
> >>> >>> Accelerate data analysis in your applications with
> >>> >>> Intel Data Analytics Acceleration Library.
> >>> >>> Click to learn
> >>> >>>
> >>>
> >> more.http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> >>>
> >>> >>>
> >>> >>>
> >>> >>> _______________________________________________
> >>> >>> Freetel-codec2 mailing
> >>> >>>
> >>>
> >> listFreetel-codec2@lists.sourceforge.nethttps://
> lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>>
> >> <http://lists.sourceforge.net/lists/listinfo/freetel-codec2>
> >>> >>>
> >>> >>>
> >>> >>>
> >>> >>>
> >>> >>>
> >>
> ------------------------------------------------------------------------------
> >>> >>> Transform Data into Opportunity.
> >>> >>> Accelerate data analysis in your applications with
> >>> >>> Intel Data Analytics Acceleration Library.
> >>> >>> Click to learn more.
> >>>
> >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> >>> _______________________________________________
> >>> >>> Freetel-codec2 mailing list
> >>> >>>Freetel-codec2@lists.sourceforge.net
> >>> <mailto:Freetel-codec2@lists.sourceforge.net>
> >>>
> >>>>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>> >>>
> >>> >>>
> >>> >>
> >>> >>
> >>> >>
> >>
> ------------------------------------------------------------------------------
> >>> >> Transform Data into Opportunity.
> >>> >> Accelerate data analysis in your applications with
> >>> >> Intel Data Analytics Acceleration Library.
> >>> >> Click to learn
> >>> >>
> >> more.http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> >>
> >>> >>
> >>> >>
> >>> >> _______________________________________________
> >>> >> Freetel-codec2 mailing
> >>> >>
> >>>
> >> listFreetel-codec2@lists.sourceforge.nethttps://
> lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>>
> >> <http://lists.sourceforge.net/lists/listinfo/freetel-codec2>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>> >>
> >>>
> >>
> ------------------------------------------------------------------------------
> >>> >> Transform Data into Opportunity.
> >>> >> Accelerate data analysis in your applications with
> >>> >> Intel Data Analytics Acceleration Library.
> >>> >> Click to learn more.
> >>> >>
> >>>
> >> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> >> _______________________________________________
> >>> >> Freetel-codec2 mailing list
> >>> >> Freetel-codec2@lists.sourceforge.net
> >>> <mailto:Freetel-codec2@lists.sourceforge.net>
> >>> >>
> >> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>> >>
> >>> >>
> >>> >
> >>>
> >>>
> >>
> ------------------------------------------------------------------------------
> >>> Transform Data into Opportunity.
> >>> Accelerate data analysis in your applications with
> >>> Intel Data Analytics Acceleration Library.
> >>> Click to learn more.
> >>>
> >> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> _______________________________________________
> >>> Freetel-codec2 mailing list
> >>> Freetel-codec2@lists.sourceforge.net
> >>> <mailto:Freetel-codec2@lists.sourceforge.net>
> >>>
> >> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>>
> >>>
> >>>
> >>>
> >>
> ------------------------------------------------------------------------------
> >>> Transform Data into Opportunity.
> >>> Accelerate data analysis in your applications with
> >>> Intel Data Analytics Acceleration Library.
> >>> Click to learn more.
> >>>
> >> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> >>> _______________________________________________
> >>> Freetel-codec2 mailing list
> >>> Freetel-codec2@lists.sourceforge.net
> >>> <mailto:Freetel-codec2@lists.sourceforge.net>
> >>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> ------------------------------------------------------------------------------
> >>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in
> >> San
> >>> Francisco, CA to explore cutting-edge tech and listen to tech
> >> luminaries
> >>> present their vision of the future. This family event has something
> >> for
> >>> everyone, including kids. Get more information and register today.
> >>> http://sdm.link/attshape
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Freetel-codec2 mailing list
> >>> Freetel-codec2@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >>>
> >>
> >>
> ------------------------------------------------------------------------------
> >> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> >> Francisco, CA to explore cutting-edge tech and listen to tech
> >> luminaries
> >> present their vision of the future. This family event has something for
> >> everyone, including kids. Get more information and register today.
> >> http://sdm.link/attshape
> >> _______________________________________________
> >> Freetel-codec2 mailing list
> >> Freetel-codec2@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> >
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape
> _______________________________________________
> Freetel-codec2 mailing list
> Freetel-codec2@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freetel-codec2
>
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2