Monday, October 1, 2012

Free MATLAB Program for Building IQ Baseband Signals

In this post we will take a look at a free MATLAB program called IQ Baseband Builder (IQBB) that is available for free download at MATLAB Central. IQBB program allows you to generate an ideal or non-ideal baseband IQ signal, analyze that signal using various plots, and then download the signal to either a CSV file or one of Agilent's new two channel waveform generators, the 33512B and 33522B.

Back in August Agilent introduced a new family of waveform generators, the 33500B series (click here to view my post on the intro). The 33500B features a new exclusive waveform generation technology called Trueform which delivers the performance specs of a high end waveform generator, but at a much lower price point. For more on Trueform waveform generation technology check my post on it by clicking here. From the 33500B series of waveform generators, the 33522B and 33512B provide excellent solutions for generating baseband IQ signals since they provide two channels that can easily be synchronized.

Let's take a look at an overview of the IQBB's features and capaiblities. Below you will find a screen shot of the IQBB GUI.

The IQBB program creates an IQ signal using digital data (binary ones and zeros), user defined modulation type, and a user defined samples per symbol count. The digital data can either be generated randomly by the program (default) or the user can upload existing digital data via a CSV file. For modulation type, IQBB allows the user to select between 4 to 256 QAM formats (Binary or Gray coding). Once the basis parameters of the IQ signals have been defined, IQBB provides the following features for shaping, distorting, and displaying the resulting IQ baseband signals:
  • Pulse shaping filters including raised cosine, root raised cosine, Gaussian, and rectangular. There are also settings for defining filter parameters such as beta and filter order.
  • The ability to add white noise to the I and Q signals.
  • Phase balance adjust of the signals
  • Amplitude balance adjust of the signals
  • DC offset adjust of the I and Q signal
  • Plots for analyzing the resulting signals including a constellation diagram, eye diagram, frequency domain plot, time domain plot, and filter response plot.
Once the I and Q signals have been generated and analyzed they can be exported to a waveform generator (33512B and 33522B) or a CSV file. The IQBB program uses a LAN connection to export signal data remotely to either the 33512B or 33522B.

Let's look at an example of the 33522B's signal quality using a IQ baseband signal created with the IQBB program. The signal was 64 QAM, 5 samples per symbol, and had a raised cosine impulse response. The resulting signal was captured with a wideband scope and analyzed with Agilent's 89600 Vector Signal Analysis software. A screen shot from the software is shown below.

With Trueform technology the 33522B was able to deliver a 64 QAM baseband signal with only 0.3 % error vector magnitude! Notice too that the phase error is in milli-degrees and the magnitude error is in mV.

In this post we look at a free MATLAB called IQ Baseband Builder that allows you to generate ideal or non-ideal IQ baseband signals. The program can connect remotely to an 33522B or 33512B waveform generators and export the software IQ signals so they can be generated in hardware. If you have any questions from this post send me an email and if you have anything to add use the comments section below.

For more info on the 33500B family of waveform generators click here


  1. The IQBB program will also work with the 33522A

  2. Hi Neil,

    Are there any handles to change the bandwidth or the number of sub-carriers? Or is this restricted to only 15 MHz as shown in the snapshot?

    1. There are multiple controls in the program that are related or affect bandwidth such as samples per symbol. If you are familiar with MATLAB you can go into the code and just extend the range of the setting limits that I have set. Is there a particular setting that you feel needs to be expanded? Also bandwidth is affected or dependent on the sample rate of whatever waveform generator you use the resulting signal on.

  3. Hi, i have to create a CDMA system within the framework of my internship, so someone can help me?

  4. Hello Neil,

    Thank you for providing such beautiful GUI for signal analysis.

    I have doubt on IQ data, I have IQ baseband samples captured. I want to do some curve fittings and psd analysis on those captured data. Would you please help me to understand that how can i separate I and Q from that file in matlab for further analysis. I want to do analysis for every samples. Any help is appreciated .

    1. This comment has been removed by the author.