Signal Generators

Showing results for 
Search instead for 
Did you mean: 

How to create AM modulation signal with PXIe-5433 in MS visual studio environments?


I got a new NI PXie-5433 AWG this week, and I need to create method in C# for the PXIe-5433 to generate an AM modulated signal output.  I did some research and it seems that the NI library did not have a builtin AM modulated signal generator function statement in the NI library.  Can some one help me to configure the PXIe-5433 to output an AM modulated signal with carrier frequency of 80MHz?

0 Kudos
Message 1 of 3


The NI PXIe-5433 device could be used to generate an AM signal in Arbitrary Waveform mode.  In this case, the max sample rate is 400 MS/s, and you have a -3 dB cutoff around 80 MHz.  See specs:


Trying to use a carrier frequency that is up near the cutoff frequency of the device could have implications on the quality of your generated signal.  I'm not familiar enough with the RF requirements of your application to know if this will be acceptable.


You are correct in that the NI-FGEN API that is used to control the device does not have AM waveform generation features.  It exposes the Arbitrary Waveform mode directly, which is what you would use to generate this type of waveform.


The NI-recommended solution here would be to use the NI Modulation Toolkit.  However, this toolkit only supports G programming with LabVIEW, not C# / Visual Studio.  If you can get a copy of LabVIEW, that would help out a lot here.


After installing LabVIEW and the NI Modulation Toolkit, you can find the Modulation Toolkit NI-FGEN examples under NI Example Finder:



Here's what the example looks like.  There are mathematical formulas that are executed to generate an arbitrary waveform sequence, and then that sequence is written to the device.



The concept should be the same if you wanted to do something similar in C#, but I don't think we have an example handy.  You could figure out the mathematics of generating an Arbitrary waveform yourself, as an array of output samples, then use that as your data in Arbitrary Waveform mode.  You can find a C# example that uses FGEN Arbitrary Waveform mode in our .NET examples.  These are usually installed under the Public Documents folder:

C:\Users\Public\Documents\National Instruments\NI-FGEN\NI-FGEN Examples\DotNET 4.5\Arbitrary Waveform

C:\Users\Public\Documents\National Instruments\NI-FGEN\NI-FGEN Examples\DotNET 4.5\Arbitrary Waveform Streaming


I attached a copy of the Arbitrary Waveform example for convenience (renamed ArbitraryWaveformProgram.cs)

Instead of using the hard-coded

private static readonly short[] Waveform = { 0, 1, 2, 3 };

you would generate your own array.


I hope that helps!



Brian Alexander

Message 2 of 3

Hello Brian,

Thanks for the great information.

The AM waveform and the carrier frequency ranges are defined by the ISO 14708-3; 2017 section 27.105, and ISO 14117; 2012.  ISO 14708-3 stated that the AM carrier frequency range from 150KHz to 80MHz with amplitude output set to as high as 8Vpp. We found that the PXIe-5433 is the best match for these ISO requirements and we purchased the PXIe-5433 AWG based on the spec.  

I prefer not to use the NI Arbitrary waveform function because waveform distortion at 80MHz which may not meet the ISO requirements in both waveform shapes and amplitudes.   The ISO requires the output amplitude of the AM signal at 80MHz with modulation frequency of 1kHz is 8Vpp open load,  base on your knowledge of the NI PXIe-5433, can the PXIe-5433 able to output the signal specify in the ISO?

If the NI API has AM waveform generation feature, I will recommend to replace all our Ztech scopes with NI scopes.  One of the feature that ZTech has is the built in function of AM waveform generation which make our SW development a lot easier.  

0 Kudos
Message 3 of 3