Hi Adrian,

About 2400B:

-Pulse Shaping: None on the TX end, it's just a manchester encoded bit
stream
-RX Symbol Filtering: Just a simple integrate-and-dump aligned with the
symbols
-Frequency tracking: None.
-Phase tracking and clock offset correction: This is done by the fine
timing estimator

The job of the fine timing estimator is to estimate the location of symbols
in the incoming sample stream. It first takes the incoming sample stream
and applies a nonlinarity, in our case s^2. This causes a line to appear in
the frequency domain of the incoming signal. We then extract the average
phase of this nonlinearity over the buffer of samples. This phase is
proportional to the offset of the symbols within the sample stream. This is
all done on lines 186 to 218 of fmfsk.c . In order to handle clock offset,
the demod may consume a variable number of samples for a fixed number of
bits. A sample clock offset can be though of as a drift in the symbol
offset over time. To compensate for this, the demod tries to keep the
symbol offset within a window. If the symbol offset is outside of this
window, it will change the number of samples consumed in the next frame to
either skip or re-process a few samples. This is done in lines 233 to 242
of fmfsk.c.

Thanks,

Brady O'Brien

On Thu, Jul 7, 2016 at 4:50 AM, Adrian Musceac <kanto...@gmail.com> wrote:

> 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
>
>
------------------------------------------------------------------------------
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

Reply via email to