SPURS Software - RF Design Magazine Software Contest Winner
Way...... back in 1992, RF Design magazine ran a software contest. Those were the days when most engineers and hobbyists wrote software in either Basic or Fortran. I happened to use Turbo Pascal, by Borland. At the time, I was working as an RF engineer for Comsat, in Germantown, Maryland. Having done a lot of frequency conversion designs in my previous work at General Electric, and even more there at Comsat, I had already written a crude program to calculate mixer spurious products, so this challenge gave me the excuse I needed to refine the user interface and add some creature comfort features like loadable mixer spur files and detection of spectral inversion if present.|
Although I did not win the grand prize, I did win the runner-up prize (along with, I think, a couple other people). The prizes included having the following article published in the November 1992 edition of the magazine, a couple experimenter kits of surface mount inductors and resistors, a T-shirt (which I still have), and a couple other items. Of course, the greatest prize as far was I was concerned was having an article published in a major magazine.
Sadly, I do not even own a copy of the program any more, or I would make it available for download. RF Design distributed it, so if anyone happens to have a copy and would send it to me, I will post it for download.
Here is a scanned and OCRed version of the article that appeared in the November 1992 edition of "RF Design."
SPURS Calculates Direct and Intermodulation Products
By Kirt Blattenberger
COMSAT, Systems Division
|SPURS is the evolution of a program written originally to provide a simple means of determining spur products. However, as the program was used both by the author and his fellow engineers, it became clear that some user-friendliness would be a nice addition. Over the years much has been incorporated in the form of error trapping, input and output display screen format, file handling, and on-line help screens.|
Basic system requirements to run SPURS v1.01 are an IBM-compatible computer with 125 kBytes of free RAM, and a text screen. Color is nice but not necessary. Running from either a hard or a floppy drive is possible. As can be seen on the input screen block diagram (see Figure 1), the system is modeled as a cascaded ideal input filter, a mixer, and an ideal output filter. The operator can select either a fixed local oscillator (LO) or a variable LO. Both up and down conversions can
|be analyzed. SPURS performs a single-conversion, single-tone analysis of mixer spurious products using parameters entered in the input parameter screen. Spurious products will be calculated according to jLO ± kRF and kRF ± jLO, where j and k are integers for harmonics entered in the Highest Harmonic input lines. Spurs that fall within the specified output filter bandwidth will be displayed and recorded. In order to facilitate choosing a fixed LO frequency or variable frequency range, SPURS calculates the low-side and high-side LO center frequencies that translate the center of the input frequency range to the center of the output frequency range. |
Input and Output Frequencies
Input and output frequencies describe the cutoff points for ideal bandpass filters at the input and output of the mixer. Two forms are possible to specify the
|cutoff frequencies of the filters, center frequency and bandwidth or low and high cutoff frequencies. Figure 1 shows the input parameter screen when the center frequency and bandwidth input format is used along with a fixed frequency LO. Input Frequency and RF are used interchangeably throughout this document. The use of the term RF is avoided for the input frequency since in the case of an up converter the output may be considered the RF. However, in the output spur table and in the mixer spur level files, RF is used to designate the harmonic number since doing so conforms to industry standards. Frequency units (Hz, kHz, MHz, etc.) must be kept constant. Six places are provided for frequency inputs in order to allow a span of nine decades between the lowermost and uppermost frequencies with at least a two place accuracy. |
Frequency inversion occurs when high frequencies at the input of the conversion process are translated to low frequencies at the output, and vice versa (Figure 2). In general, a high-side LO on either an up or a down conversion will result in a frequency inversion at the
Figure 2. Examples of mixers exhibiting inversion and no inversion.
Figure 1. SPURS input screen. Center frequency/BW and fixed LO specifications have been made.
|output. In the case of a dual conversion, two inversions will result in a non-inverted output. Some applications can tolerate frequency inversion; however, voice systems with an inversion result in unintelligible information. SPURS tests for inversion and reports the result to the screen and, if selected, to the printer or disk file. |
Two types of local oscillators (LO) may be chosen: fixed and variable. If a fixed LO is chosen, that LO frequency will remain fixed while the input frequency is swept in accordance with the chosen number of steps. If a variable LO is chosen, the variable LO will step from the low frequency to the high frequency using a number of steps designated by the user. Computation time increases over the fixed LO case by a factor equal to the number of LO steps + 1. Spurious products will be calculated according to jLO ± kRF and kRF ± jLO, where j and k are integers for harmonics entered in the Highest Harmonic input lines. Spurs that fall within the specified output filter band will be displayed and recorded. In order to avoid an unnecessarily long list of inband spur products, the 1 xi spurs are not recorded. If at least one occurrence is encountered, then the appropriate "X", "Y", or "Z" is displayed in the output spur table and a note is made in the output file. Frequency inversion must be considered when choosing the LO frequency.
Highest RF and LO Harmonics
Enter values for the highest harmonics to be used when calculating the spurious product frequencies. The largest spur order to be calculated will equal the highest RF harmonic added to the highest LO harmonic. Separate values are allowed for the two highest harmonics since computation time and the size of the spur product file are highly dependent on both values. Many times high order LO harmonics are more important due to leakage of the usually higher input power of the LO (+13 dB or more greater than maximum RF, typically). The output spur table will display those products which are generated by the mixing process from 0 to the highest harmonic values entered. The zeroth harmonic represents the DC (direct current) component, if any. Calculation time and the output spur list can be shortened by choosing the lowest harmonic necessary to achieve the required mixer spurious suppression.
Figure 3. SPURS output screen.
|For instance, if all RF harmonic spurs above the 5th and all LO harmonic spurs above the 7th are suppressed below the system requirement, then test only for up through the 5th RF harmonic and the 7th LO harmonic. |
Steps for Input Frequency
The input frequency is stepped through the range entered in the Input Frequency line. Entering a number of steps of 1 would include the low and high frequencies only. Be sure to include enough steps to assure all of the possible inband spur occurrences. For example, to include a specific frequency point of, say, 70 MHz, when the low frequency is 10 MHz and the high frequency is 100 MHz, enter 9 for the number Input Frequency Steps. The sixth step will be at exactly 70 MHz. The frequency step size can be calculated thusly:
Frequency = (fHIGH - fLOW) / Steps for
= Bandwidth / Steps for
Frequency steps are usually easier to visualize without a calculator when the input and output frequencies are entered in the center frequency and bandwidth form. For example, a bandwidth of 9 MHz (see above example) with a number of steps of 9 results in a 1 MHz step size.
|Steps for LO Frequency|
The LO frequency is stepped through the range entered in the LO Frequency line. Entering a number of steps of 1 would include the low and high frequencies only. Be sure to include enough steps to insure all of the possible in band spur occurrences are found. Typically, the LO will not need to be stepped in as small of a frequency increment as will the input. Three or four points within the narrowest passband should suffice. For example, if the input has a BW of 20 MHz and the output has a BW of 60 MHz, then four steps in each 20 MHz band would result in:
60/20 = 3 bands → 3x4 = 12 LO steps
Spur Table Output Screen
Inband spurious mixer products which fall within the output filter band are represented in the spur table by an "X" if the spur was created by a jLO ± kRF product, by a "Y" if created by a kRF ± jLO product, or by a "Z" if created by . both an "X" and a "Y" type product. A "-" occurs in each harmonic location not taken by "X", "Y", or "Z", and indicates the highest harmonic tested per the input parameter screen. If CURRENT.MXR, the mixer spur level file, was successfully read in during program start-up, pressing F9 will display the corresponding power level (-dBc) relative to the 1 xi product. Also displayed will be the mixer model number and the RF and LO input power for
|which the levels are valid, as specified in CURRENT.MXR. Conversion loss is not accounted for in the level unless accounted for in CURRENT.MXR. |
Figure 3 is the output screen spur table in the X, Y, and Z format. Upon quitting the program you may review the results with a standard text editor or viewer.
Along with the spurious information, at the beginning of the file the file name, time, and date plus all of the input parameter data is saved. The desired spurious product usually occurs for j = 1 and k = 1; therefore, since it occurs most often it is not included in the output spur list. However, if it does occur at least one time, the appropriate "X", "Y", or "Z" is displayed in the output screen spur table and a statement is inserted into the output hard copy or disk file. Figure 4 shows the format.
The output file format is convenient for importing into other programs for post-processing such as graphing.
Assume the following system specifications:
Center Frequency: 150 MHz
Bandwidth (0.1 dB) : 20 MHz
(3.0 dB) : 25 MHz
(40 dB) : 40 MHz
Max Power: -10 dBm
LO Power: +10 dBm
Center Frequency: 500 MHz
Bandwidth (0.1 dB) : 20 MHz
(3.0 dB) : 25 MHz
(50 dB) : 40 MHz
Inband Spurious: -60 dBc
No Frequency Inversion
Looking at the mixer spur level data for EXAMPLE.MXR in Figure 5 shows that the 5RF x 7LO spur is the highest order spur in the matrix to have less than 65 dB of rejection; therefore, the
|highest RF harmonic tested will be the 5th and the highest LO harmonic tested will be the 7th. |
Figure 1 shows the input screen format for the ripple (0.1 dB) bandwidth of the filters to be used on the input and output. Recommended LO frequencies are displayed at the bottom right-hand side of the input screen. Since no frequency inversion can be tolerated, the low-side (LS) LO frequency of 350.00 is selected. The No Frequency Inversion message assures that part of the output specification will be met. Figure 4 represents what the output disk file would look like if printed or saved to disk. Figure 3 shows the output spur table. Choosing the save file option and naming the file "2020" (the BW's) would result in the following information being stored on the logged on drive and directory (Figure 4):
Relative spur power levels can be displayed in the spur table by pressing F9. Those levels correspond to the levels
Figure 4. SPURS output file format.
Figure 5. An example mixer spur level file.
|entered in CURRENT.MXR. As can be seen in Figure 3, only the 3l0-4RF spur falls inband with a level of -66 dBc. This selection of LO frequency and the mixer selection appears fine. A basic requirement is that no intolerable spurs be generated from within the input frequency band since no amount of filtering can get rid of them. However, since the real-life filters are not ideal, further investigation must be made to assure that out-of-band RF input signals cannot generate intolerable spurs within the IF output ripple bandwidth and that inband RF input signals cannot generate intolerable spurs in the IF output outside of the specified ripple bandwidth. The system specification calls out maximum sigal powers for bandwidths out to 40 MHz. By widening the input filter to a 25 MHz bandwidth and re-running SPURS, it will be found that no new spurs fall inband. It will be noted, however, that the out-of-band input frequencies cause the same 3l0-4RF spurs. Since out-of-band input signals experience additional attenuation by the real-world input filter, there is no cause for concern about I those spurs (provided that the out-of-band signal is no higher in amplitude than the input signal). Next, we widen the input filter further to 40 MHz and re-run SPURS. The output spur table now reveals the additional presence of 0LO x 3RF (-51 dBc) and 5RF-1LO (-59 dBc) spurs. Pressing F8 displays the spur list. From here, we can determine at which frequencies the new spurs are caused and, knowing the real-world filter rejection at those frequencies, determine whether or not a problem exists. The 0LO x 3RF spurs occur for input frequencies ranging from 164.00 MHz to 170.00 MHz. 164.00 MHz corresponds to the 28.0 MHz bandwidth. Although 164.00 MHz is presented as the lowest input frequency for which 0LO x 3RF spur falls inband, in reality the lowest input frequency would be 490/3 = 163.33 MHz. Using a larger number of steps would have included 163.33 MHz in the output spur list. The important point is that the number of steps chosen did indicate all possible types of inband spurious products. If the real-world input filter provides at least (60 - 51) dB = 9 dB of rejection at 163.33 MHz, then no problem exists. Input frequencies above 163.33 MHz will be attenuated even more if the filter is monotonic (no inflection) in that region of the stopband. The 5RF-1 LO spurs are generated at ||input frequencies from 168.00 MHz to 170.00 MHz. 168.00 MHz corresponds to the 36.0 MHz bandwidth. Similarly, if the input filter provides at least (60 - 59) dB = 1 dB of attenuation at 168.00 MHz, then all is fine. In fact, if the filter passes for the criterion of the previous paragraph, then it automatically passes for this criterion since 168.00 MHz is deeper into the stopband. Spurious product levels must now be checked throughout the full specified output band. To do so, SPURS is run again with the input filter set to a 40 MHz bandwidth while the output filter is first set for 480 MHz to 490 MHz, and then for 510 MHz to 520 MHz. Since the output inband spurs have already been to be of no consequence, including the center 20 MHz frequencies in the final analysis would only make the output spur list longer and more difficult to interpret. Running SPURS once for the lower band and once for the upper band makes more sense. Running SPURS for the lower side of the output band to the 40 MHz bandwidth results in the 0LO x 3RF (-51 dBc), 5RF-1 LO (-59 dBc), and the 310 - 4RF (-66 dBc) spurs showing up. Since they all are less than the required -50 dBc, output filtering for the low side is good regardless of the input filter rejection. Finally, running SPURS for the upper side of the output band to the 40 MHz bandwidth results in the 0LO x 3RF (-51 dBc), 0LO x 4RF (-73 dBc), and the 3l0-4RF (-66 dBc) spurs showing up. Since they all are less than the required -50 dBc, output filtering for the high side is good also. This example is a recommended procedure for efficiently using SPURS, but experience has proven that someone ||else will almost assuredly find a more sensible way to utilize the features of this program. If you discover that better way, the author would appreciate a note, so that your discovery can be passed on. RF |
|About the Author|
Kirt Blattenberger entered electronics as an Air Force traffic control radar repairman. He mixed work as an electronics technician and school for several years, receiving his BSEE from the University of Vermont in 1989. He can be reached at 13446 Greensburg Road, Smithsburg, MD 21783, or by phone at (301) 824- 2505.