Electronics > RF, Microwave, Ham Radio

Generate FM using IQ inputs?

(1/4) > >>

My sig-gen (R&S SMIQ06L) doesn't have a built-in FM modulation capability, but it has IQ inputs (red circled in attached image). Is it possible to generate FM by feeding two baseband audio signals, at the same frequency and in quadrature phase (90 deg. difference) to the IQ inputs? I think the quadrature audio waveforms could be generated by one of those low-cost function generator with dual outputs.
Is my assumption correct? Did I overlook something? TIA.

Yep you can make almost any kind of modulation with IQ inputs.

The FM one is one of the more more tricky ones to do since you need to actually make a FM modulated IQ signal. But it looks like that signal generator supports FM modulation with an external control voltage.

See the R&S Application note:

you can generate IQ WAV file with required FM modulation signal and play it with sound card into IQ input :)

FM modulation is pretty easy, you can do it in the following way:

--- Code: ---var iq = new complexd[audio.Length];
            for (int i = 0; i < iq.Length; i++)
                // calculate phase increment based on input audio signal
                var phaseIncrement = audio[i] * scale;

                // update current phase
                phasePrev += phaseIncrement;

                // calculate IQ stream
                var re = Math.Cos(phasePrev);
                var im = Math.Sin(phasePrev);
                iq[i] = new complexd(re, im);
--- End code ---

if you don't familiar with programming, I've implemented a little console application which can process signal in WAV file. It allows to perform FM modulation into IQ stream based on audio taken from another WAV file. Also it allows to perform FM demodulation from a WAV file with IQ stream. And in addition it allows to perform frequency shift for a WAV file with IQ stream.

here is example on how to use it:

--- Code: ---IQDSP.exe fmmod 100000 input.wav output.wav

--- End code ---

where 100000 is FM deviation, input.wav is a WAV file with audio signal and output.wav is a file which will contains IQ stream with FM modulated signal at 0 Hz carrier.

if you're don't like 0 Hz carrier (many soundcard cannot play DC signal due to capacitors on the output) you can also use it to perform frequency shift. For example in order to shift 0 Hz carrier to 20000 Hz carrier use the following:

--- Code: ---IQDSP.exe fqshift 20000 iqfmdc.wav output.wav

--- End code ---

It supports uncompressed PCM and IEEE FLOAT WAV formats.
Preffered input format is IEEE FLOAT32 or IEEE FLOAT64. Probably it can eat any format but I didn't tested it deep.
Output WAV file has IEEE FLOAT32 format and the same sample rate as input file.

Note that FM modulated signal requires more wide bandwidth than audio signal.
It is recommended to use input file with sample rate which is about 12 times more wide than audio signal bandwidth.
For example 240 kHz sample rate is recommended for 20 kHz signal bandwidth.


--- Quote from: xmo on June 01, 2023, 07:55:56 pm ---See the R&S Application note:

--- End quote ---

The R&S Application note requires option B60 (ARB generator) which I don't have.

--- Quote from: radiolistener on June 01, 2023, 09:25:32 pm ---you can generate IQ WAV file with required FM modulation signal and play it with sound card into IQ input :)

--- End quote ---

Does the WAV file needs to be playback in a loop? Anyway, this appears to be more complicated than adding a dual-channel function generator, but I will file the idea away for some future use. Thanks.


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod