Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
AM31Tone.GEN Setup File - Multiple Tone Creation via AM
When you want to create multiple simultaneous tones, the obvious way is to use one Stream for each tone. This limits you to 4 tones per channel, although it does give complete control over the details of each tone.
But some applications like system response testing may require many equal-amplitude Sine waves, spread uniformly across a spectral region of interest. In this case, you can employ AM to get high tone density per Stream used.
The basic idea is based upon the fact that AM produces upper and lower sidebands that are mirrored about the main carrier frequency, with spacing set by the modulator frequency. For example, if the carrier is 2000 hertz and the modulator is 1000 hertz, the result is 3 tones at 1000, 2000, and 3000 Hz.
But using Stream Modulation, this 3-tone complex can itself be used as the modulator of a second stream, and be mirrored about that stream's main frequency. If that stream is (using our example) at 4000 hertz, the result is 7 tones in 1000 Hz steps from 1000 to 7000 Hz. This process may be repeated to modulate yet another stream for 15 tones total, and repeated yet again for 31 tones total.
Note that there a few tricks to getting this to work out properly. To see a working example, load the AM31Tone.GEN setup included with Daqarta. This produces 31 equal-spaced tones from about 517 Hz to 16021 Hz.
For best results, at least if monitoring your progress using the Spectrum display (ALT+S), your own setup should have the frequency entry mode set to Step Lines = 1.000 to make sure all frequencies land exactly on spectral lines of the display. The AM31Tone setup uses 516.79688 Hz spacing, which is 12 spectral lines at a 44100 Hz sample rate. (One spectral line width is the sample rate divided by the number of samples used in the FFT spectrum computation, which for Daqarta is 1024. The spectrum shows half as many lines as the samples used, or 512 here.)
If you need to use other spacing frequencies, be sure to activate the Spectrum Window with the window function set to Flat Top. Otherwise, small differences between the actual frequencies of the signal and the response frequencies of the Spectrum display will cause peak heights to appear to vary.
The first step is to decide on the frequency spacing you want. (We are assuming here that you want equal spacing, but after you are familiar with the principles you may want to try your hand at other configurations. Note, however, that this method forces internal symmetries that will become obvious when you start adjusting things.)
Bring up the Amplitude Modulator dialog for Stream 0, toggle AM on, and set AM Depth to the desired spacing frequency. Set the Main Freq to twice the spacing frequency. The spectrum will show 3 lines with the desired spacing, but the default 100% AM Depth will give the center (carrier) line twice the amplitude of the flanking lines. In fact, the carrier peak will be at 50% of full scale, and each of the sidebands will be at 25%.
Note that for amplitude modulation, the peaks always sum to the original 100% amplitude of an unmodulated Sine wave. Since we want all peaks to be equal, each must thus be 33.3333%. As noted in the AM Depth topic, the amplitude of each sideband is (AM Depth) / 4, so we must set AM Depth = 4 * 33.3333 or 133.3333%.
This signal will be the building block for the final spectrum. For now, don't worry about the fact that the frequencies may not be in the desired final positions; only the spacing matters here.
Now we will proceed to use this Stream 0 signal as a modulator for AM on Stream 1. Go to the AM dialog for that Stream (ALT+1) and toggle AM on. (Note that the spectrum will be unchanged since the Stream On button is still inactive for Stream 1.) Set AM Source to Stream 0, then exit and toggle Stream 1 to On. You will probably see a really messy spectrum.
Now go back to the AM dialog and adjust Main Freq to twice the Stream 0 Main Freq. You will see equally spaced spectral lines, but the carrier will be much too big. We need to adjust AM Depth, but what value do we need? We now have 7 spectral peaks (the carrier plus two 3-component sidebands), so each must be 1/7 of the full-scale value. Rather than try to deal with the sidebands, just consider the carrier, and the sidebands will go to their proper values. From the discussion in the AM Depth topic,
Carrier Amplitude = 100% - (AM Depth) / 2
So by rearranging terms:
AM Depth = 200% - 2 * Carrier Amplitude AM Depth = 200% - 2 * (100% / 7) AM Depth = 171.4286%
To extend this to 15 frequencies, use a similar procedure with Stream 2; set AM Source to Stream 1, set Main Freq to twice the Stream 1 value, and set AM Depth such that the carrier (and hence all the other components) will be 1/15 of full scale:
AM Depth = 200% - 2 * (100% / 15) AM Depth = 186.6667%
Likewise to get 31 frequencies, use Stream 3 with AM Source set to Stream 2, Main Freq to twice the Stream 2 value, and AM Depth set to
AM Depth = 200% - 2 * (100% / 31) AM Depth = 193.5484%
Finally, use the Stream 3 Main Freq control to adjust the frequency range of the overall series as desired. The whole spectrum will slide up and down as you change this control, maintaining the frequency spacing you have set. Make sure you don't let the highest sidebands move beyond the right end of the spectrum (the Nyquist frequency at half the sample rate), nor let the lowest sidebands go below 0 at the left end. If you do, they will "fold" back into the spectrum and give unexpected peak spacings or amplitudes.
If you only need 15 or 7 frequencies, you do not need to use all 4 streams. The overall frequency adjustment is done with the highest stream used, as above.
Questions? Comments? Contact us!We respond to ALL inquiries, typically within 24 hrs.
Over 30 Years of Innovative Instrumentation
© Copyright 2007 - 2013 by Interstellar Research
All rights reserved