Jump to content
  • 0

WaveForms FM Modulation Index


Rick314

Question

In WaveForms 3.9.1, what does the FM Modulation Index setting actually set?

The screenshot explains why this is unclear.  On the Electonics Explorer board a single jumper wire connects AWG1 to the Scope 1 AC input.  Frequency Modulation (FM) Modulation Index is defined as (peak frequency deviation) / (modulation frequency) or delta_f / f_mod.  A value of 2.405 is the first Bessel null, meaning on a spectrum analyzer the carrier level goes to zero as shown in the image.  This is a common test scenario.  So given that f_mod = 987.6 Hz, delta_f = 987.6 * 2.405 = 2.375 kHz.  I found the carrier null by small changes to the Amplitude/Index FM setting in WaveForms, and 20.3% nulls the carrier lower than either 20.2% or 20.4%.  What logic makes a setting of 20.3% result in 2.375 kHz FM frequency deviation?  I thought it might be "peak frequency deviation = 20.3% of the carrier frequency" but that would be 0.203*12.34 kHz = 2.505 kHz so that doesn't work.  Both Factory and my own calibration settings produce the same result.

FM_1st_Bessel_Null.png

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

Hi @Rick314

In your test the modulation frequency too high for the frequency transformation and produces odd result.
The FFT is performed on the entire (windowed) capture, approximating the entire waveform length with sine waves of different frequencies.
Ideally the input waveform should be stable for the transformation period.

The FM produces output of = Carrier x (100% +/- index), like 1kHz carrier with 20% outputs between 800Hz to 1.2kHz

 

Here the top frequency is 20kHz, input period is 200ms:

FM 1kHz:

image.thumb.png.af7169a06aaf3579517745d7e1e5ba92.png

 

FM 10Hz:

image.thumb.png.066a45e8a1bee54c0108a526d1783816.png

 

Here you can see 500Hz modulation in FFT and Spectrogram which performs sliding FFT on smaller period resulting 800Hz - 1.2kHz

image.thumb.png.131fcc48dd46e2d7849e2edac018ad3a.png

image.png.ae8e99017392b5f0f474a67ee0650081.png

 

With quick measurement you can also see 800Hz 1.2kHz

image.thumb.png.ce2db97d9dac3bac4f29a98cb4091f62.png

 

image.thumb.png.d91d2e8da9075a5a4bd95313428526da.png

Link to comment
Share on other sites

Thank you for your response @attila but it led to more questions.

My understanding is that in my test case, the AWG is sweeping 12.34 kHz +/- 20.3% or +/- 2.505 kHz.  There is no problem with the AWG and it is behaving as its settings indicate.

> your test the modulation frequency too high for the frequency transformation and produces odd result.

So the issues relate to the Spectrum Analyzer and its FFT.

> The FFT is performed on the entire (windowed) capture, approximating the entire waveform length with sine waves of different frequencies.

I think of the FFT as the 40 Ms/second sampler starting, sampling, stopping, processing, and posting one measurement.  What do you mean by "entire (windowed) capture"?  It would be best if you can point me to somewhere in the Reference Manual for such details.  I am missing why you inserted "(windowed)".

> Ideally the input waveform should be stable for the transformation period.

What do you mean by "stable"?  The input is an FM signal, 12.34 kHz carrier, 987.6 Hz modulation frequency, 2.505 kHz deviation.  It is a "stable" signal as I understand the word.

What do you mean by "the transformation period"?  The sample period (or what I think of as the "window") of the 40 Ms/second sampler, or the time when the FFT (the "transformation") is happening?

A key question: Given an AWG FM signal of 12.34 kHz carrier frequency, 987.6 Hz modulation frequency, and 19.25% "Index" (+/- 2.375 kHz deviation, or a Modulation Index of 2.375/987.6 = 2.405), how can I configure the Spectrum Analyzer to accurately indicate the first Bessel null, where the carrier level is at a minimum?

> Here the top frequency is 20kHz, input period is 200ms:

I understand what you are showing, but not "input period".  Do you mean "sample period"?  And how do you know it is 200ms?  Again, pointing to the Reference Manual explanation would help.

Thanks again for the time you are putting into this.

Link to comment
Share on other sites

@attila -- It appears the default FFT settings used in my test case introduce errors in the displayed spectrum analyzer result.  I did not understand your reply, and think I do understand FM, spectrum analysis, and FFTs.  If possible, please answer my questions.  I want to understand the source of the error in the spectrum analyzer display produced by the Electronic Explorer board and Waveforms software.

Link to comment
Share on other sites

Hi @Rick314

The FFT/DFT tries to identify the sine wave frequencies that make up the captured signal.

Having 1kHz FM on a 100ms capture period it means you have 100 cycles of modulation.
After each cycle the carrier starts with a different phase, so the FFT can't correctly match sine wave on the capture.
If you look at the frequency measurement which is performed progressively you see ~9kHz/~11kHz, but the FFT shows wrongly much wider spectrum.

image.thumb.png.742f732dd1d4be9738876f89859735fd.png

 

Here the FM frequency is 10Hz which is identical to the capture period of 100ms.
With this the FFT can match more correctly sine waves to the capture and the 9/11kHz boundaries are is identified correctly.

Before the FFT process a Window is applied on the capture to reduce the calculations errors due to non full period components, by smoothing the ends of the captures.
Here to illustrate the process, I added as M1 a "FlatTop" window and M2 applied on the data.
Because of the window the spectrum is not symmetrical, only about half of the capture reaches the FFT.
http://download.ni.com/evaluation/pxi/Understanding FFTs and Windowing.pdf

image.thumb.png.ab2077978465fed118df2d8f40dddce8.png

 

Setting the FM to 20Hz (50ms) we will have about one period of modulation in the windowed domain. 

image.thumb.png.79f16493284ff895e429212411acad2e.png

 

Link to comment
Share on other sites

Thank you @attila, especially for the National Instruments "Understanding FFTs and Windowing" paper.  It was very helpful.  I still have the following related questions and issues.

Given an AWG FM signal of 12.34 kHz carrier frequency, 987.6 Hz modulation frequency, and 19.25% "Index" (+/- 2.375 kHz deviation, or a Modulation Index of 2.375/987.6 = 2.405), how can I configure the Spectrum Analyzer to most accurately indicate the first Bessel null, where the carrier level is at a minimum?  I know it won't be exactly the null, but what settings come closest?

You show spectrum analyzer images and mention their corresponding FFT capture periods.  Where in the Waveforms user interface or online Reference manual is it described what FFT capture period, windowing function, etc. result from given spectrum analyzer center frequency and span settings?

In your February 12 post, you say "If you look at the frequency measurement which is performed progressively you see ~9kHz/~11kHz, but the FFT shows wrongly much wider spectrum."  I believe this is an error in your interpretation and that the spectrum image is correct.  It shows a 10 kHz carrier, 1 kHz modulation rate, and 10% (1 kHz) FM deviation.  This is a modulation index of delta_f/f_mod = 1/1 = 1.  Bessel functions say that the level of the FM carrier and side-bands 1 through 5 in this situation should be -2, -7, -19, -34, -54, -74 dBc (dB relative to the un-modulated carrier) respectively.  Within the resolution of the image, this is just what it is being displayed.

Link to comment
Share on other sites

@attila: I am still interested in getting my February 25 questions answered if you are able to help.  In that post I also described what appears to be a misunderstanding on your part regarding the spectrum of an FM modulated signal.  I think correcting that understanding will lead to other corrections in what you contributed to this topic.

Link to comment
Share on other sites

Hi @Rick314

Thank you for your rigorous approach. That helped us to finally find the problem:

The "Sine" Modulator signal is obtained in the FPGA with a Cordic algorithm. There is a scaling error which reduces the modulator amplitude to 95% of the desired value. This affects the Modulation Index.
We will fix the error in the next WafeForms release.

Until then, here is the workaround we suggest: build the modulator as a "Custom" signal:
- click the gear next to the FM signal type, then "New"
image.png.f5b13b0a717ab5a8c2e98f81d2926892.png
- In the WaveGen – Custom window, select “Sine”, then click “Generate”, and “OK”.
image.png.da2ce6272124a7a4e7a4f7ec2f771fae.png
Select the desired modulation parameters and Run the AWG.
Please see the attached workspace, for the EE board. FMIssueEE.dwf3work

This issue is only present with the Electronics Explorer board. If you use an Analog Discovery or Analog Discovery 2, you do not face the issue, so you do not need the workaround.

Link to comment
Share on other sites

So let me clarify for other readers -- Everything in reply to my original 2/4/19 issue regarding the Electronics Explorer spectrum analyzer is unrelated to the root problem.  It is instead a defect with the Electronics Explorer arbitrary waveform generator (AWG) that is generating the FM modulation signal.

I tried what @attila suggested and the workaround works as shown below.  Compare the following image to the image in my original post.  Now the FM Bessel null (delta_f/f_mod = 2.405) correctly happens at an Electronics Explorer FM Index setting of 19.25%, derived by solving delta_f/f_mod = x*f_carrier/f_mod = x*12340/987.6 = 2.405, for x = 19.25%.

 

190313_CorrectedBesselNull.png

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...