On Thu, Jul 4, 2013 at 10:50 PM, Dan CaJacob <dan.caja...@gmail.com> wrote: > Thanks Tom, > > I think I have it worked out now. The sensitivity and gain parameters for > the FM Mod and Quad. Demod blocks are reciprocals of one another. To > control deviation, in these parameters, you can just calculate Modulation > Index. I was doing it the other way around. The bit that made everything > make sense for me was reading that Modulation Index can be thought of as > having units of Radians. Understanding that, the rest makes perfect sense. > > So, the parameters become: > > sensitivity = (pi * modulation_index) / samples_per_symbol > > and on the receive side: > > gain = samples_per_symbol / (pi * modulation_index) > > Modulation index itself can be set explicitly or derived from a desired > deviation and baud rate: > > modulation_index = deviation / (baud_rate / 2) > > So, for a Minimum Modulation Index of 0.5, as is used in GMSK, the > sensitivity reduces to: > > sensitivity = (pi / 2) / samples_per_symbol, just as it is in the example. > > The nbfm_tx.py example is probably different because it isn't for data > transmission, but for audio, I think. > > Thanks for your help! > > Very Respectfully, > > Dan CaJacob
Hey Dan, Great! I've edited your post and put the calculations here on our Signal Processing wiki page (http://gnuradio.org/redmine/projects/gnuradio/wiki/SignalProcessing). And yes, converting to radians is key for this. I should have thought to mention that. Tom > On Wed, Jul 3, 2013 at 10:38 AM, Tom Rondeau <t...@trondeau.com> wrote: >> >> On Thu, Jun 27, 2013 at 3:54 PM, Dan CaJacob <dan.caja...@gmail.com> >> wrote: >> > We use the FM Mod and Quadrature Demod blocks to modulate and demodulate >> > GFSK packetized data. In the past, we have used sensitivity values for >> > these blocks that were provided for us, but their meaning was opaque. >> > >> > I did some digging in the list and the web and found two prevalent >> > definitions for sensitivity from examples. Both definitions were >> > consistent >> > in saying that the Demod parameter 'Quadrature Gain' should be the >> > inverse >> > of the sensitivity parameter for the Mod block. >> > >> > The competing definitions for sensitivity were: >> > >> > 1. sensitivity = (pi / 2) / samples_pr_symbol # from >> > gnuradio/blksimpl/gmsk.py >> > >> > and >> > >> > 2. sensitivity = 2 * pi * max_deviation / sample_rate # from >> > gnuradio/blks2impl/nbfm_tx.py >> > >> > In my own recent work, I have been using the second definition because >> > it >> > seems to work and it gives me control over the deviation (I define max >> > deviation using modulation index and baud rate). >> > >> > However, when I attempt to use 1/sensitivity for the Quadrature Gain of >> > the >> > RX, it does not seem to work, while altering the RX definition of >> > sensitivity to be 1 / (2 * pi * max_deviation / baud_rate) does seem to >> > work. >> > >> > Am I missing something fundamental about how these parameters work? >> >> Hi Dan, >> >> The quadrature_demod converts from phase/frequency modulation back to >> amplitude. So in the case of FSK signals (and let's treat GMSK as FSK >> for this), we want to convert frequency f1 into -1 and frequeuncy f2 >> to +1. Also, "let's assume the system is synchronized" so that f1 = >> -fm and f2 = +fm. What you want to do is convert those frequencies to >> -1's and 1's, right? So there's some rotation around the unit circle >> that maps to this based on the number of samples per symbol you are >> using. So hopefully that explains where the pi and sps in the >> calculations come from. >> >> Hope this helps. >> >> Tom > > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio