discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FM Transmitter tuning issue (pre-emphais, modulation index..)


From: Kyle A Logue
Subject: Re: FM Transmitter tuning issue (pre-emphais, modulation index..)
Date: Tue, 5 Apr 2022 20:22:36 +0000

If you are modulating a bitstream what are you are really doing is 2-FSK in this situation, not traditional analog FM - so that may help you find the definitions you are looking for a bit easier.

If you want a modulation index of 2 and your rate is 1200K then you want the difference between the high and low frequencies to be 2400KHz.

Take a look at the example FSK mod/demod flowgraph on the wiki -> it explains the 'sensitivity' parameter.

Kyle Logue
Senior Engineering Specialist
⚝ The Aerospace Corporation

From: Discuss-gnuradio <discuss-gnuradio-bounces+kyle.a.logue=aero.org@gnu.org> on behalf of Anthony <anthonyld508@gmail.com>
Sent: Monday, April 4, 2022 00:23
To: Discuss Gnuradio <discuss-gnuradio@gnu.org>
Subject: FM Transmitter tuning issue (pre-emphais, modulation index..)
 
Hello all,

I am implementing a FM Transceiver following this prerequisites :

Frequency modulation with a pre-emphasis of 6 dB/octave (phase modulation) with frequency-shift of the modulating sub-carrier :
– frequency-shift between 1 300 and 2 100 Hz; the sub-carrier being at 1 700 Hz;
– the frequency tolerance of the 1 300 and 2 100 Hz tones is  10 Hz;
– the modulation rate is 1 200 (bit/s) * (1 ± 30 * 10−6);
– the index of modulation is 2.0  10%.

To implement the frequency modulation, I've followed the example based on the use of a VCO in GNU Radio :
https://wiki.gnuradio.org/index.php/VCO
with these parameters :
- full-scale frequency of 3000 Hz -> VCO sensitivity of 2*pi*3000 (I chose 3000 to fit my 2 frequencies of interest). 
- I adapted the Multiply and Add Const block to set the space/mark frequency to 1300 and 2100 Hz.

The input of the VCO is quite the same as in the example : I am sending bursts of bytes from a ZMQ socket that pass in a Repeat Block to be interpolated 40 times.
I have managed the sample rate with a USRP B210 at the end, so that the input sample rate before the Repeat block is 1200 (1200x40 = 48 KS/s, 48 KS/s being the VCO's sample rate).
I then interpolate the output signal of the VCO using a Rational Resampler to match the sampling rate used in the USRP block (960 kS/s).

In this scheme, I don't know if I have the right approach to implementing this modulation. Especially :
- How the pre-emphasis is added in this scenario, where my input data has a rather constant frequency (bitstream at 1.2 kHz) ?
- How is the modulation index set (which variables can affect it ?). I've found a definition like this : m = deviation frequency / modulating frequency
-> deviation frequency is +/- 400 Hz to me (around 1.7 kHz)
-> modulating frequency is 1200Hz (as the symbol rate equals the bitrate here)
So my modulation index is 1/3, quite far from 2. I surely misinterpret it, and my output signal in frequency is quite thinner than an expected signal.
What parameters could I use in my implementation to set it to 2 ?

I outputted the resulting signal, which is quite thinner but still I see pics at 1.3 and 2.1 kHz, and I'm able to demodulate it and recover my data on a RX path.

I think I got some obvious things wrong in my FM transmitter.
If you have some resources or advices to point me in the right direction, that'd be useful! :)

I am using GNU Radio 3.8.5 (maint branch) and UHD 3.15.

Anthony 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]