Hi, I'm trying to demodulate and decode a CPFSK signal generated by a non-gnuradio source. I'm new to gnuradio and RF in general. I know that GMSK is a form of CPFSK, so I started by trying that, but I haven't had success. I noticed that the gmsk code is in the limbo directory, so I'm not sure if it's currently in a working state. Also, as I said, I'm new to RF, but I found it strange the the GMSK demodulation did not appear to require a parameter specifying the frequency delta between the mark and space frequencies. Can anyone help me out by telling me if GMSK is what I should be using, what the current state of the GMSK code is, and why the GMSK code doesn't require the frequency delta (I'm sure I'm not using the correct term here). Thanks for your help. -Andrew

on 2007-03-09 05:32

on 2007-03-09 13:57

On Mar 8, 2007, at 11:31 PM, Andrew Buck wrote: > Hi, > > I'm trying to demodulate and decode a CPFSK signal generated by a > non-gnuradio source. I'm new to gnuradio and RF in general. I know > that GMSK is a form of CPFSK, so I started by trying that, but I > haven't > had success. I noticed that the gmsk code is in the limbo > directory, so > I'm not sure if it's currently in a working state. The GMSK code should be working. if you look in /gnuradio-examples/ python/digital/benchmark_rx.py the default modulation is GMSK. > Also, as I said, I'm > new to RF, but I found it strange the the GMSK demodulation did not > appear to require a parameter specifying the frequency delta > between the > mark and space frequencies. If I understand you correctly, you are wondering how the modulator knows how far apart to make the 1's and 0's in the frequency domain, or rather how GNU Radio knows how to do that. The answer is hidden in the theory behind MSK (someone please correct me if this is off). Minimum Shift Keying involves shifting the frequency the minimum frequency distance that allow the signals to still be coherently orthogonal (e.g. think of the difference between sine and cosine...this can make detection of differences between bits easier). another way to look at MSK is as a special case of FSK where f1 - f0 = 1 / (2Tb) where Tb is the symbol period. Thus the frequency shift is related directly to the phase shifting that occurs every symbol period, and thus is also directly related to the phase shifting every sample per symbol. if you look at the gmsk.py block in /site-packages/gnuradio/blksimpl/ the line where the frequency "sensitivity" is determined is related to all of the comments above: sensitivity = (pi / 2) / samples_per_symbol the sensitivity is used in the frequency modulator block as a scaling factor k (at least that's what its called in my text book =). > Can anyone help me out by telling me if > GMSK is what I should be using, what the current state of the GMSK > code > is, and why the GMSK code doesn't require the frequency delta (I'm > sure > I'm not using the correct term here). > > Thanks for your help. hopefully this is a helpful start. > > -Andrew > > David