Tektronix AFG31052 Signal ARB/Function Generator - Review

Table of contents

RoadTest: Tektronix AFG31052 Signal ARB/Function Generator

Author: shabaz

Creation date:

Evaluation Type: Test Equipment

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: The AFG31000 has several unique features however probably the nearest competitor is the Keysight 33600A series. However I got so used to easy workflows on the large screen, I'm not sure I'd want to go back to the older style instruments. There is so much set-up with signal generators in general, I'd rather see it all on a single large screen than have to dive into so many menus.

What were the biggest problems encountered?: A couple of features were not that well documented, but it wasn't hard to just try things and figure it out. What I didn't like is that when swapping between touch and buttons, occasionally I got into a situation where the first keypress had no effect. I think it's something I'm doing wrong, or some trivial fix, but the workaround for now is to just visually observe while pressing the first button. Generally I'm happy with the mix between keypad and touchscreen, most things can be done with either, but some things require touch or swipes. And for sure I prefer it to a small non-touch display.

Detailed Review:



The AFG31000 series 14-bit Arbitrary Function Generators provides the all-important capabilities for creating test signals during electronic product design, test and production. There is a 17-minute video walkthrough of some of the features here:


A lot of modern oscilloscopes have signal generation capability built-in, however, it is usually a single channel and very cut-down in functionality.


The AFG31000 series comes in five different frequency ranges (up to 250 MHz for sine waves) and in single-channel and double-channel versions. For design and test, two channels are quite important for precise phases, clocking data, modulation, working with radio, frequency generation circuits and so on, therefore it would be recommended to go for the dual-channel version always, and purchase a range extension when required (the range is software licensable).



The AFG31000 is a high-end instrument with quite a few unique features which are not seen on all function generators. In particular, the highlights are expandable applications, a very accurate signal generation mode (known as Advanced Mode), a monitor mode called InstaView (it’s a very cut-down mix between an oscilloscope and a network analyzer!), the capability of very low jitter, and very low distortion. The channels are isolated from ground which can be convenient too, and the instrument comes with a large amount of sample memory (16M points per channel) as standard.


The instrument aims to simplify the usage of potentially complex configuration, by navigating the user through apps (like a tablet or mobile phone). At start-up, and at any point, the user can choose to launch a basic function generator application, or an advanced application, or go into an application for creating or managing custom waveforms. Hopefully, in the future, more apps can be added! One new app that is available, DoublePulse, turns the instrument into a control system for semiconductor testing; more on that further below.


For further ease-of-use, there is an in-built help system too.



As mentioned earlier, the AFG31000 series comes in single (starting with the AFG31021AFG31021) and double channel versions (starting with AFG31022AFG31022), but I cannot see many users wanting to restrict themselves to the single-channel version because the number of channels cannot be upgraded after purchase. Every other option can be factory-installed at the time of purchase, or upgradeable afterward.


The bandwidth is upgradeable at any time, starting at 25 MHz through to 50, 100, 150 and 250 MHz.


Aside from that, there are two other licenses purchasable at any time, one of which would be highly worthwhile obtaining perhaps at the time of purchase because it will be so useful. The SEQ license allows for users to be able to do sequencing and triggering and gating in the Advanced Mode. I think it’s worth purchasing that because it makes the best use of the memory, allowing long, detailed signals to be generated as required. There is also a MEM license, which extends the waveform memory from 16M to 128M points per channel, which might be unnecessary for a lot of users. To put it in perspective, older signal generators only came with 1 or 2M points of memory by default.


Look and Feel and Usability

The AFG31000 is a large instrument. But, unusually, it has an oscilloscope form-factor and doesn’t take up much depth as traditional function generators did. From my perspective for a design engineer, the AFG31000 is far easier to use on a desk than shelf or rack-style instruments. I do not have deep desk space and liked that I could push the instrument to the back of a small desk and still have space to work in front of the instrument with the devices-under-test. It was so convenient, this RoadTest was entirely conducted with testbeds set up on a 400 mm depth Ikea KALLAX unit at one end of my workspace. That’s impossible usually! For home workers, it’s really neat. The photo below uses standard-sized Art of Electronics for easy size comparison.



The top of the instrument is flat and doesn’t flex, so it’s also possible to stack a second instrument such as an oscilloscope on top. The photo above shows a tiny but functional phase noise measurement test set-up, with a single instrument, MDO 3000, being used as a spectrum analyzer, but it can also operate as an oscilloscope. More on that setup later.


The capacitive touch-sensitive display is in-between matt and reflective and has good viewability from all angles. The front panel rotary controller, hard power button, and rubber buttons feel good and well-organized. The entire unit feels as solid as one would hope for. From my perspective, it’s smart looking too.



There is a fan, however, and it’s louder than an oscilloscope, but not unbearable. It’s a similar amount of noise compared to other signal generators, and I have frequently had it running for many hours close to me. The design passes air across the chassis; the air inlet is at the back, and it vents the warm air out to the side (at the display end).


The main inputs/outputs are straightforward; there are the two signal generator outputs and trigger in/out on the front panel, and at the back along with the power inlet and ground point, there are plenty of control/programmability options including LAN, USB, IEEE-488, dual analog modulation inputs (i.e. one per channel), reference clock in/out and an additional input that can be used to further modify the generated output (typically used for adding noise).



Although there are a lot of buttons on the unit, you cannot get away from using the touchscreen; some commands can only be achieved by touchscreen interaction. I didn’t find this an issue, but it did take a while to get familiar with it. As well as touch actions, there are swipe actions to expand displays and to delete individual items from lists.


There are a few small bugs in the user interface (for instance, in some conditions the first numeric entry press is not actioned after a restart), but I didn’t experience any showstopper issues. I felt the bugs were minor, fixable in later releases, and didn’t prevent usage of the instrument.



As mentioned earlier, the AFG31000 handles configuration complexity in a very nice way, through multiple applications. The instrument has apps icons on the main menu that expose different functionality to suit the user task. If you want to just generate basic or popular waveforms quickly, then the Basic app can be selected from the main applications view. There is also the capability of selecting the Advanced mode application, and also an ‘Arb Builder’ application for creating and managing waveforms.


Ground Isolation

The AFG31000 outputs are isolated from ground. It simplifies things when working with other equipment that may be grounded, or devices under test with a ground path. Sometimes you deliberately do not want the signal to be earthed so that you can feed it into the device under test in the same way as it may arrive from an externally connected sensor. Or, there could be issues with the ground and the coax shield together forming two halves of a large ground loop, coupling in mains hum or other noisy sources. 


The AFG31000 is excellent for audio measurements and tests, where the 14-bit resolution is superb for accurate frequency response measurements, and there is no risk of having ground loop issues.



Although it is possible to use transformers at the outputs to achieve the isolation, this just moves the problem to require finding suitable transformers to operate at the desired frequency range, and the transformer outputs would need to be closely monitored to ensure the expected signal levels will be fed into the circuit under test or to normalize the measurements. Using the AFG31000, transformers are no longer necessary for many scenarios, and it supports up to 42V floating from earth.


Combined with a multimeter set to AC, it’s possible to get great frequency response measurements for audio amplifiers. I used this to test an amplifier from 10 Hz to 100 kHz. This could be automated if desired, or run a sweep, but it was quick to just manually step through the frequencies of interest in this case and chart it in Excel. It’s a simple use-case, but highly useful.




Pulse Generation

Pulse generation on my lower-end previous signal generator is a real pain; the user has to hop back and forth into many configuration items menus, to set it all up. I’m never sure if it’s going to work the first time. With my old Rigol instrument, there is no way to link both channel triggers together (at least I’ve never found out how) so a BNC T-piece is needed to get any sensible combined triggered pulses. And after all that, there is significant jitter.


In contrast, configuring up the AFG31000 in its basic mode is easy – nearly all configuration items are on the single display, although you have to swipe up and down to scroll through them all. Generally, nothing is buried in deep configuration that could be missed (there is a single swipe in/out menu with a few extras, but it only contains settings that are unlikely to need to be changed often, in particular, the output load value).


Anyway, ease of use aside, the real surprise was the incredibly low jitter between both channels. It’s beyond measurement capability with any oscilloscope I could get access to. An attempt with a time-of-flight type of measurement system using Texas Instruments development boards (TDC7201EVM and MSP-EXP430F5529LP) was tried out to examine it (it is a convenient way of doing low-cost high-granularity measurements), and even then, the measurement equipment is the limiting factor, not the AFG31000.



The TI boards, stacked and connected up as shown in the photo above and running the TI supplied software, will generate a trigger output and then measure the time between pulses on the start and stop connections. It is basically a stopwatch with a tiny 55 picosecond resolution, capable of measuring between 12 nanoseconds and 2 microseconds.


The screenshots below show the result of the experiment. The AFG31000 was configured to accept a trigger and generate pulses on both channels, and the time delay was measured between the two channels. The microcontroller repeatedly sent a trigger, and the resultant measurements were used to establish a jitter value with the PC app. It’s pretty much a flat-line for the AFG31000, compared to my older signal generator (which is still a nice instrument for the price, it’s just that the AFG31000 is miles apart, so it’s not a fair comparison). The time-of-flight board doesn’t have the resolution to measure the AFG31000 jitter across the two channels, it is so low. The difference was huge compared to the older signal generator; jitter across the two channels is not something that is in datasheets often either, yet can be highly important.



It was also noticed on a ‘scope that the instrument has a (quite reasonable) 6 ns rise time (for, say, typical signal amplitudes below 5Vp-p) but it can be improved further if the highest bandwidth license is purchased, down to under 2 ns.


In summary, the pulse generation capability is excellent even in the Basic Mode, and having two channels that work well together is extremely powerful.


Creating Basic Mode Arbitrary Waveforms

(Note: I’m calling them ‘Basic’ just to distinguish from the Advanced Mode discussed below. However, even ‘basic’ waveforms can have as much complexity as desired). There are actually many ways to create arbitrary waveforms for the AFG31000; only three methods are discussed here.


Copying Captured Signals

Getting the AFG31000 to generate custom waveforms is straightforward because there are multiple ways to do it! Waveforms can be drawn using math, or drawing directly with the instrument. PC software can be used to generate waveforms. It is also possible to use the PC software to read a captured trace from an oscilloscope, modify it, and transfer it across to the AFG31000. A PC is not involved in this flow. What I liked is that even with a decade-old Tektronix oscilloscope, it was possible to hit the Save button to capture the oscilloscope trace to a plugged-in USB memory stick, and then remove and plug the stick directly into the AFG31000 to read off the waveform! I used an old oscilloscope to capture a ‘wireless power delivery’ signal from a wireless charger; the screenshot below shows in yellow the signal as it were on the ‘scope at the time of capture (I only copied a small portion of the signal, shown in the blue box, and how it looked like after it was replayed by the AFG31000.


For maximum fidelity, the ‘scope trace should fill the screen before it is captured. It’s under-using the AFG31000 since the decade-old oscilloscope has just 8-bit resolution compared to the AFG31000 14-bit resolution.


Designing Signals with ArbExpress Software

The companion ArbExpress application which can be downloaded from the Tektronix website for free is simple to use. It can connect via USB or network to your oscilloscope and AFG31000 in order to perform capture, editing, and uploading.



ArbExpress allows the user to quickly start off by generating a pre-defined shape, and then it can be edited as shown in the animation here:



Designing Signals with Excel

Although ArbExpress has built-in equation capability, if that level of complexity is required then the user may wish to use a third-party application in order to create the waveform. To test this, I decided to write a simple application to allow me to generate waveform files from Excel source files. The software is attached to this review for anyone who wants this capability. It is fine for everyday use, however, Excel is not ideal for very large waveforms. There are better ways, as discussed in the Advanced Mode section further below.



Anyway, the app is trivial to use, just select the Excel file and it is displayed. Click the Generate button and the generated file can be opened with ArbExpress or it can be directly transferred into the AFG31000 using a USB memory stick.


Verifying Signals with InstaView

InstaView is a unique feature of the AFG31000. It provides feedback or monitoring capability for the user to examine the signal at the point of connection of the output to the device under test.


This monitoring capability provides the user with a display of the actual signal presented to any connected device or circuitry in an oscilloscope-like view. The question could be asked why is this useful. The main reason is, all modern signal generators have a 50 ohm resistance internally, and the programmed output level will only be correctly presented if the load is precisely 50 ohm too. 50 ohm loads are a convenient way of transferring power at high frequencies and so it is a standard. Most coaxial cables and connectors are designed to transfer signals that will be terminated at the far end with a 50 ohm load. However, in real life, not all loads will be 50 ohm, and so the signal amplitude at the load will differ from the value programmed into the signal generator. One way to know for sure is to attach an oscilloscope at the device and measure it. In practice, that can be difficult, for two main reasons:


  • Coax cables and connectors rarely have tap-off points to attach ‘scopes
  • Oscilloscope probes can be invasive and will impact the signal itself, particularly at high frequencies and low signal amplitudes.


When working in a 50 ohm environment (or otherwise!), it is important to be sure that each node is behaving as expected. Here’s an example, where there are four connections. The component (Minicircuits PMT-1) takes two signals (from the AFG31000) and produces two outputs, and everything needs to be terminated correctly. The photo below shows one output going to the oscilloscope channel set to 50 ohm, and the other output goes to a 50 ohm load.



Ordinarily, several oscilloscope channels would be required to completely be sure that everything is behaving correctly because if any of the four connections are faulty, an error occurs in the output. With InstaView, there was no guessing, and it was clear to see whenever a connection was loose or unplugged! The screenshot below shows the result when one of the connections was unscrewed; the traces show the anomaly, and the min/max/amplitude automated measurements changed significantly. What’s really cool is that the measurements can be retrieved via the programmable interface (SCPI commands). Basically, the AFG31000 can be queried to check that the connections are sound!



Instaview does its magic by first calibrating out the length of the connecting leads, so that it can become aware of the phase and amplitude of the signal right at the point of connection to the device under test, through a reflection measurement. It behaves like a network analyzer in that respect.


Currently, InstaView feels a bit version 1.0: I am delighted the feature is there and it solves a real problem with dealing with 50 ohm load environments because it is difficult otherwise to probe simultaneously, however it would be nice to see it evolve in future firmware releases. It would be good to see the graphical view scaling better (often the signal was drawn not occupying most of the vertical space so that I had to rely on the automated measurements it would display), and perhaps even be running in the background all the time, automatically signalling an alert when it recognises that the load isn’t seeing the expected output. Naming cables (so that they don’t need to be re-calibrated) could be handy too – I routinely use the same few cables for my setups.


It is fantastic that the AFG31000 has such measurement functionality hidden inside. I hope it gets new capabilities in a future downloadable app to assist with say filter test and design! That would be extremely compelling for users too.


Noise Investigation

The purpose of this review was not to do a datasheet verification, but nevertheless, I thought it useful to at least examine one noise aspect. I decided to look at phase noise, which is the noise that is very close to the frequency of interest. Often it is important to keep this particular noise low because otherwise, it is very hard to filter off; all filters have a slope, and if the noise is too close to the interesting frequency then any attempt to filter away the noise could also filter away the useful signal!


Purchasing a signal generator with noise far away from the generated signal is not usually too much of an issue, because it likely doesn’t affect its purpose, or as mentioned could be filtered away. Often it is the close-in noise that can be problematic to resolve, and the only simple solution is to use a decent signal generator. Phase noise is measured in dBc/Hz (where the c means that the ratio is against the carrier) with reference to an offset, for instance a phase noise of -110 dBc/Hz at 10 kHz offset could form part of a specification. Generally, the smaller the offset, the higher the phase noise.


Doing an accurate measurement of phase noise is not feasible without very high-end test equipment (many tens of $k), however, it is possible to get a very good ballpark figure at a low budget. To do this, the method I used was to characterize a random filter (it happened to be a 10.7 MHz filter) to establish its passband and stopband areas, and to understand how much it could filter as a ratio (in decibels, usually many tens of dB) and to understand it’s loss in the passband too (this will typically be a few dB).


Next, I set the AFG31000 output to deliberately be in the filter stopband, and then looked inside the passband area to see the noise. The reason to use a filter is to try to reduce the passband output so that it doesn’t overload the measurement device (spectrum analyzer). Without the filter, the signal from the AFG31000 would be so powerful it would not be possible to look closely at the side of it to see the noise.


The screenshots below show the results. The left screenshot is the filter characterization, done with a signal at -20 dBm. It can be seen that the filter can block by around 65 dB. The passband has about 5 dB loss compared to the -20 dBm input. Incidentally, you can also see the ripple in the passband, which is due to its internal construction.



Next, on the right-side screenshot above, the AFG31000 was set to generate a signal at 10.69 MHz (in the stopband), and the output was observed at 10.70 MHz (i.e. 10 kHz away). The spectrum analyzer showed that the phase noise was -70 dBc/Hz, 10 kHz away with reference to the 10.7 MHz signal. The spectrum analyzer has a mode to switch to dBc/Hz measurement. Adding the 65 dB effect from the filter, gives a total of -135 dBc/Hz. The final step is to adjust for the 5 dB loss in the passband, and this results in a final value of -130 dBc/Hz. This is all very ballpark, but nevertheless, it’s reassuring that it closely matched the datasheet specification, which is -130 dBc/Hz at 10 kHz offset.


Incidentally, the above was done with a dedicated spectrum analyzer, but it’s actually faster to do with a Tektronix MDO series ‘scope. If you connect up the MDO 3000 (or a more modern Tektronix MDO oscilloscope) and set the signal from the AFG31000 to 0 dBm, then there is a direct measurement by default, right on the marker. It is displayed as -134 dBm/Hz in the screenshot below. Add on to that the filter loss in the passband (say 5 dB in my case), and since the carrier (AFG31000 signal at 10.69 MHz in this case) is of power 0 dBm, the measurement needs no further adjustment : )



The photo below shows the entire setup for this test.



In summary, the phase noise met the specification, and with this setup, it would be simple to compare with other signal sources.


Working with the AFG31000: Lock-In Amplifier

The AFG31000 is a great tool for problem-solving. Fairly complex scenarios can be set up even within the basic mode. The large display and on-screen keyboard are good for frequently saving and recalling setups.



This helped immensely during a fairly involved setup which used both channels, different frequencies and waveforms, different load settings per channel, triggering to perform a lock on an external signal, and using the InstaView feature. Testbeds can take hours or days to set up and ordinarily it would be easy to get something wrong and wonder why the testbed was providing unexpected results! With the AFG31000, I was able to save the settings and pick up where I left off at any time.


The scenario involved using the AFG31000 to construct a lock-in amplifier in conjunction with an Analog Devices ADA2200 evaluation board.



A lock-in amplifier is a device that has one input and two outputs; one of the outputs is the received/processed signal output, and the other output is actually a stimulus signal that is used to feed the input. The stimulus signal passes through the device- or system-under-test before it is fed into the lock-in amplifier’s input.


The stimulus is an AC voltage at a fixed frequency. Long story short, the lock-in amplifier is intended to only be sensitive to that frequency, and reject all others. The multimeter output is a constant value that depends on the phase and amplitude of a specific frequency at the input. Changing the phase or amplitude will change the multimeter reading. Any other frequency present at the input (even if it is just a fraction of a Hz different) will not result in a low-pass signal for the multimeter output. The device under test may result in lots of noise at different frequencies or may weaken the signal. The lock-in amplifier is great for pulling out weak signals based on the stimulus, from a noisy environment!



The diagram above shows the roles that the AFG31000 played in constructing the 400 kHz clocking signal and the stimulus signal which needs to be locked in a phase relationship with the ADA2200 synchronous demodulator chip.


I needed the AFG31000 to serve multiple purposes. Firstly, it needed to generate a fixed clock signal that is needed for the operation of the ADA2200 board. Secondly, I needed to be able to generate a second signal to act as the stimulus signal. Thirdly, the stimulus from the AFG31000 needed to be synchronized to a logic output from the ADA2200, since as mentioned the stimulus has to be in synchronization with the lock-in amplifier’s internal circuitry. There were also requirements to have extremely low jitter between the two channels from the AFG31000 otherwise it would affect the lock-in amplifier’s output. And, even with no remaining ‘scope channels available, I could still check the clock signal, directly from the AFG31000 using InstaView.


Every channel on the oscilloscope was needed to observe the behavior. In the screenshot below, the yellow and blue signals are the output (it is a differential output, it is combined into the red math channel). The ‘scope view is not steady because the incorrect frequency was deliberately fed to the input for this screenshot. The purple signal is the trigger for the stimulus. The green trace shows a synchronization signal used for sampling the output with an ADC if desired.




For analog modulation enthusiasts, most of the typical modulation schemes are available. It’s not comprehensive (there is no native single-sideband or SSB modulation for instance) but this may be an unusual or anachronistic corner case for many users nowadays; the workaround would be to use the ‘Advanced Mode’ described below, to generate the modulation to a waveform file first. I didn’t spend a lot of time exploring this topic, but I did try the modulation modes briefly and liked that you can upload any audio file (as an example) and the AFG31000 will modulate the carrier based on that, and play it out. The trick to doing this is to use the PC to convert the audio file into the Tektronix waveform file format; I used Matlab for that, it’s discussed in more detail below. I confirmed by listening on a radio receiver. In conclusion for radio modulation-based work at the intermediate frequency (IF) stage typically, the AFG31000 is completely adequate.


In terms of digital modulation, I tried frequency shift keying (FSK) and it worked as expected; the AFG31000 allows both of the frequencies to be set independently and will then switch between them at the desired rate.



For a quick test, a CD4046B integrated circuit (it’s ancient but still in production) was used to build up a FSK decoder and it successfully converted the FSK output from the AFG31000 as shown in the photo above, into the demodulated digital signal.



Advanced Mode

The term ‘advanced mode’ sounded a little scary initially : ) It took a while to want to get out of the comfort zone of the simple-to-use Basic Mode, and really see what’s possible in Advanced Mode. It turns out, Advanced Mode can be easy to use too!


Users will want to go into this mode for these reasons:


  • If you want very precise control over the waveforms that are generated
  • If you want to generate complex sequences of waveforms, perhaps with loops
  • If you want to control the output based on an input trigger or gate


In use, the Advance Mode has two main panes. The left pane is used to build up a palette of desirable waveform files (these can be created in several ways, for instance by using the AFG31000 built-in Arb Builder app), and then waveforms files are dragged to the right pane to build up the desired sequence. Each entry in the sequence can be configured to repeat or to cause a jump to a specific part of the sequence or to wait for events like timers or external triggers. This is extremely powerful and is useful for generating data streams and other non-trivial encodings.



Another way the Advanced Mode provides precision control is that it shifts the way of operating the instrument from the traditional frequency and amplitude adjustment present in the Basic Mode (and present on nearly all traditional signal generators) to a more sample-centric way of thinking. In effect, the Advanced Mode offers up control of the memory and clock rate to the user to make the best use of. As a result, you can use any waveform with any level of granularity (in terms of sample rate and amplitude steps, up to 14 bits) and then push it from memory, scaled as required, and out to the digital-to-analog converters (DACs) on the AFG31000, at any desired clock rate (up to the limits of the instrument as enabled by the relevant bandwidth license).


For those already working with sampled data, this Advanced Mode method is far more intuitive than the traditional modes.


The next question is, how can waveforms and sampled data be created? There are already some built-in waveforms to use in the Advanced mode, and as mentioned they can be scaled and clocked at any desired rate. To create new waveforms, the Arb Builder in-built application can be used.


I won’t go into details with the Arb Builder, suffice to say that you can either directly draw, or use equations to describe the waveform directly on the instrument! I think it’s a nice accoutrement, however, most users will be more than satisfied by using their computer to design the waveform and then uploading via a USB memory stick. I cannot see a situation where a design engineer would not have a PC handy for this.


Although the Tektronix supplied ArbExpress can be used to create the waveforms (same as for the Basic Mode), anyone dealing with sampled data will likely already be using other industry- or vertical-specific tools to either generate or capture samples. ArbExpress accepts data in several formats including CSV files.


For those who prefer to do things programmatically, there’s no need to use ArbExpress. With a small bit of effort, it was possible to write a MATLAB function that can accept sampled data and convert it to the correct file format, all ready for transferring to the AFG31000. The code is available on GitHub. it is really easy to use, it is just a single line to convert any data into AFG31000 compatible files. The example here shows a speech sample (you can just drag and drop .wav files into Matlab, and it converts to an array named data) converted to a Tektronix waveform file called hello.wfm with just a single line.



In general for an array, here’s how to use it (the array w [in Matlab it is usually called a row vector] contains the source sampled data):


afg31k_wfm(w, ‘mywaveform.wfm’)


The generated file can be imported into the AFG31000, where it can be directly transferred into the format used for Advanced Mode.


If you wish to resample the data, use the command as shown here:


afg31k_wfm(w, ‘mywaveform.wfm’, s)


where s is equal to N x f; N is the sample rate, or (for periodic waveforms) the number of samples in one period of the signal, and f is the frequency at which that signal should be played out.


Here’s a complete example, where it was desired to generate a 2 kHz sine wave, with the source data being 1000 samples of one cycle of a sine wave:


afg31k_wfm(s, 'mysine.wfm', 1000*2000)


DoublePulse App and Power Semiconductor Testing

Extremely unique to the AFG31000 is the ability to be able to upgrade the behavior of the instrument with add-on applications! I hope more appear, over time. One free app that is available to download is called DoublePulse and it can be used to set up a Double Pulse Test (DPT) testbed.



The DPT Testbed is used to evaluate, test, and more deeply understand semiconductors (in particular MOSFETs, IGBTs, and diodes) for a range of use-cases such as high-power or high-voltage switching, DC-DC converters, and motor control, and to examine the efficiency, speed, and heat dissipation.


The testbed provides the ability to probe the voltages and current for the semiconductor by providing a defined current capability and short test times to prevent the semiconductor from overheating.


Different DPT testbed topologies are possible, but they mostly revolve around a H-bridge or a fraction of a H-bridge design, driven by a large power supply, a controlled method of generating pulses, and appropriate probes for an oscilloscope. The testbed is non-trivial to set up, and needs to be enclosed to protect from the high power and the risk of exploding components!


I have wanted to try out Silicon Carbide (SiC) power devices for ages, so I decided to set up a testbed to help better understand SiC MOSFETs and diodes. The high-level design is shown below.  The way it works, is that the AFG31000 is used to generate two pulses in succession, with precise but adjustable pulse width. The pulses control VGS and switch the MOSFET on or off. The current flow at three different stages is shown in purple. When current is flowing through the MOSFET, there is low resistance across it and the voltage VDS drops to zero.



During the first longer pulse (stage 1 in the diagram), when the MOSFET is switched on, current ramps up through the inductor as the flux increases, and this current is represented by the first purple ramp line in the diagram above. After the pulse has ended, in stage 2, the MOSFET switches off and the current through the MOSFET drops to zero because it is now going through the free-wheeling diode. On the next pulse (stage 3), that level of current free-wheeling is now switched through the MOSFET. By adjusting the first pulse width, it is possible to define the current at two points when the MOSFET switches off and on as indicated in the diagram. The oscilloscope can be used to zoom in to the off and on points in time, to observe the behavior. In real life, at the beginning of stage 3, more current may flow than expected due to the reverse recovery time that some diodes exhibit. It represents a power loss since that current from the supply flows through the diode briefly rather than the inductor. Therefore this testbed can also be used to examine the diode. Incidentally, you could also use the testbed to examine inductor behavior too. It’s a useful circuit.


The AFG31000 DoublePulse application plays a key role by allowing every parameter to be adjusted for tuning the pulses for any current level, and test duration scenario.


Many of the power semiconductor manufacturers offer partially-assembled DPT testbed circuit boards (bring-your-own semiconductor and inductor) however I wanted to build my own, to suit the devices I wished to test, and with probing attachment capability to suit the probes which I had, and to incorporate a current-sense resistor.


To design the circuit, I relied heavily on a document from Cree Semiconductor which describes their DPT testbed board, and pretty much used identical components and circuitry as they show and deviated only slightly. However, I built a cut-down version (their version is more flexible and implements a half-H bridge, whereas my circuit replaces the upper MOSFET with just a diode. Also, I wound an inductor on ferrite, whereas they used a much larger air-core inductor.



The photo below shows the test setup, with the AFG31000 running the DoublePulse software, and the oscilloscope capture.



The oscilloscope trace below shows it more clearly. This is just a prototype circuit until I build it on a circuit board, and so I had to learn how to probe effectively using a standard passive probe for VDS, and a current sense resistor for Id measurement, and shield the sensitive wires. It needs a very high current-capable power supply, which caused difficulties with the bench supply that I tried. I deliberately inserted resistance into the supply wiring for now, to prevent the supply from going into overload. The resistance causes the curve on the current signal, instead of the expected straight-line ramp.



It was exciting to be able to zoom into the detail and see the turn-on time (around 20 nanoseconds) as shown in the screenshot below. There is substantial ringing on the current sensed signal, but this was a very experimental testbed. I need to experiment further.



In summary the AFG31000 behaved very smoothly during this exercise. I liked that the DoublePulse software was easy to use, and it prevents the user from configuring excessively long pulses which could cause damage to the testbed or danger to the user. For power semiconductor testbeds, it’s a great piece of software, and the AFG31000 cost would be just a fraction of the overall cost of the testbed and set-up time. This was my first time working with Silicon Carbide MOSFETs and diodes (SiC MOSFETs were not productized until just ten years ago), they have quite exceptional high-temperature and high-speed and high-voltage capability so they are worth exploring, and the AFG31000 is an excellent instrument in assisting users to work with this technology.



It is nice to report that using the AFG31000 was extremely smooth, and it was possible to accomplish several projects and experiments with it. It was discovered that the instrument has a number of highly useful features. Highlights were the extremely low jitter, excellent DoublePulse functions for enabling power semiconductor testbeds, easy workflows with apps, basic and advanced modes, and comprehensive waveform generation methods. The InstaView worked well with identifying issues with 50 ohm connections, and I particularly liked the Advanced Mode functions which allow users to create sample-perfect waveforms using any tool such as Matlab and build up sequences with logical conditions while maintaining the sample timing precisely.


There’s not much to fault with the AFG31000. There are so many methods to push precise waveforms into the instrument, it will provide immense flexibility for many years to come, as requirements for users continue to evolve. The add-on apps capability in theory allows Tektronix to release new features quicker, without needing to update the firmware. The apps make it easier to use the instrument too because the very first step in the workflow becomes a simple choice of which app to use for the task at hand.


I hope the review was useful, there are hundreds of features and configuration options available within the instrument, so it’s not possible to cover everything. However, a video review will follow shortly so if there’s interest to see any function in action, let me know soon : )


Thanks for reading.

  • Hi Mark,


    I too initially assumed it was a sweep, but it generate simultaneous tones (and by playing with the parameters it's possible to force it to generate only two simultaneous tones at the two desired frequencies). There's no limit that I can see to the amount of tones that should be practically possible.

    Looking at that page 13 you mention, it seems they copy-pasted a waveform and then added it using the Waveform Math option, so they achieved the same result as the 'multitone' method, but in a different way. I didn't realize it's possible to perform math operations on two waveforms using copy-paste with ArbExpress, that could be a handy feature.


    For HF amplifiers, you could use this method to directly generate two tones at the HF frequencies, e.g. spaced 400 Hz apart (I don't know if this is a standard, but this is the value I would choose for reasons below), for instance 5.0 MHz and 5.000400 MHz and feed that to the amplifier, but an easier way is to generate at audio frequencies (e.g. 1.2 kHz and 1.6 kHz) and then feed that into the microphone input of your AM or SSB transceiver, because then you can just tune the transceiver to do your test across the band. In other words, rely on the mixer and local oscillator of your transmitter to shift the signals into the desired transmit band. So, if you wanted to test a 100 MHz amplifier, then tune your transmitter to 100 MHz, and observe the output (you'll see the output at 100.0012 MHz and 100.0016 MHz) so you can use your FPC1500 to observe that and the intermods. (It needs heavy attenuation of course, to protect the FPC1500, unless it's a very low power amplifier). This method only works of course if the selected tones are in the audio bandwidth of the transceiver, hence 1.2 KHz and 1.6 kHz are a safe choice for that.

  • Wow, thanks for all that great info shabaz that will certainly be useful!


    I was not aware of the "multitone" selection in ArbExpress.  Looking at it and the way the frequencies are entered 'start' and  'end' I got the impression it was more like a sweep between the frequencies.    So by entering the tone spacing it will make them run simultaneously?   Is there any limit to how many tones or frequencies can be entered?


    Would that method also work for example to do a third order intermod test on an amplifier at say 100 MHz?


    I was considering using the following method (when I figure out exactly how!) using the math function to add two signals together as described in this Tektronix application note.

    (Please see the table on page 13 of this Tektronix application note.)  Is this the same thing that is being accomplished with the multitone setup?




    I realize this example is for a much more complicated IQ modulator.  I am only wishing to do simple third order IM testing on small signal hf/vhf/uhf amplifiers.



  • Hi Mark,



    You're right, no requirement for a mixer, two frequencies should just be added as you say. I don't recall seeing such a direct capability in the AFG31000 (although I might have missed it), nor in a Rigol signal generator, but it would be possible to create with arbitrary waveform capability, by summing two sinewaves. The AFG31000 has a built-in equation capability which will do it, although to do it at specific frequencies needs some mental effort currently beyond me (it's evening-time for me : ) but Tektronix supply free ArbExpress software which has a multi-tone mode that can be forced into a two-tone just about. Here I chose 1.2 kHz and 1.6 kHz, and since the difference is 400 Hz, I needed to adjust the 'Total Number of points' box until the 'Tone Spacing' box displayed 400 Hz (total points = sample rate / tone spacing = 250M/0.625M), so that only two tones would be generated.


    Then it was fine uploading that into the AFG31k:


    You could use any arb signal generator of course (or could even use two channels of a non-arb signal generator and sum them both with resistors, or even use a sound card).

    Anyway, this is the spectrum of the AFG31k signal shown above (captured on a 'scope since it is low frequency. The markers are positioned slightly to the left of each tone, just for visual clarity):


    The chosen tones should be good for generating intermods, since they can be directly modulated/transmitted, i.e. they will fit within the audio bandwidth (presuming you're doing normal speech bandwidth for AM or SSB). The intermods should appear at 800 Hz and 2 kHz if you observe the RF output spectrum on your FPC1500.

    I don't know of a reference for this unfortunately (and most of the test instrument manufacturers will probably discuss it using a RF signal generator, although that's not necessary since you can just feed it in as audio if you're using AM/SSB).

    The procedure would be to look at the difference in dB between the desired tones and intermods, and then repeat at different transmit frequencies across the range, to see if it improves or gets worse anywhere. Also, you could change the two tone frequencies so that the intermods fall out of the audio bandwidth (while the two tones are still in the audio bandwidth) and repeat the measurements.

  • Hi shabaz,

    So here I find myself again enjoying another one of your fantastic YT and written reviews!   I followed most of that but the advanced mode and double pulse testing is still above my current experience level and will need more study!


    I have a testing question about using the AFG31000 series for dual tone amplifier IMD testing.   I believe this can be done without an external mixer with this unit by using math to add the two frequencies together on one output.  My understanding is it may be possible to create an Arb waveform for this directly on the device as well as using ArbExpress software?    I am new to creating Arb waveforms.  I have read a few articles and reviewed the ArbExpress manual but still confused on how to set this up.   


    Do you have any references or information on this procedure?  Thanks!



  • Hello Shabaz, thanks for checking.


    I hadn't really expected the two channels to be isolated from each other  - would be expensive to do.


    The isolation will be good enough to avoid mains connection earth loops but the 300nF is too much to protect against the HF hash that modern benches with a computer and several digital instruments suffer from.



  • Hi Shabaz,


    Thank you for the info - it's not a huge deal but might have been a nice-to-have feature. It also allows the unit to be placed in a less optimal position on a crowded bench where the user is using their main PC to view the info as well as other applications.


    In terms of creating bespoke waveforms I really like the Matlab approach. Leveraging on all the available functions (and powerful libraries, if you've subscribed to some of those) to be able to make something that would be difficult/laborious to generate otherwise. Also the ability to control the unit via SCPI/Matlab is very powerful, especially when sequencing several pieces of equipment together (i.e. the arb pattern is changed though a sequence, you grab some measurements from an oscilloscope and repeat....). Thanks for the code example.

  • Hi Michael,


    Thanks! The cores are the ones you recommendedcores are the ones you recommended for the low-noise supply, that inductor worked out to about 600 uH, with the 12 turns there are on them.

    The isolation to earth is 1 Mohm (measured, it doesn't seem to be in the datasheet as you say, but I don't know what the capacitance is), capacitance seems to be of the order of 300nF. There's no isolation between the two channels though, in fact all BNCs (front and back) are all sharing the common outer connection. For isolation between the two channels, one of the channels would need a transformer or other circuitry unfortunately. Two single-channel AFG31000 units could be synchronized but external circuitry would be needed to isolate the trigger in/out since those BNCs are connected too.

    The mains earth is connected to the metalwork on the communications ports, and to the USB metal shell, so it leaves Ethernet as the main interface if the remote comms needs to be isolated too (but the metal shell of the Ethernet connector is earthed, so normal unshielded cables might be preferred for that.

  • Very nice review (and nice instrument) -thanks.


    Do I recognise those blue torroidal cores image ?


    And more seriously, are the two channels isolated from each other ?


    I couldn't find a spec for isolation leakge resistance or capacitance in the data sheet. Any isolation is a gain, but it would be nice to know how much.