High frequency, wide bandwidth (multi-decade) sine-wave generation - Page 1
Forum section: electronics / rf-microwave

author: ezalys
author_rank: Frequent Contributor
timestamp: January 02, 2019, 09:18:36 pm
content: Let us suppose I don't have a DDS available, and instead I have two square wave clocks. I have the impression that creating a wide bandwidth (multi-decade) sine wave could from this signal could be done two ways. In the first way, you use only one square wave clock, and you low pass filter through a switched filter bank, with a cutoffs positioned to deal with the odd harmonics. Alternatively, it seems like you could fix the frequency of one square wave, use a crystal filter to get a pure tone, and then mix it down by driving a mixer using the other square wave as a swept frequency LO. As long as the square wave is of high enough frequency, you only deal with harmonics of the LO, which can be trivially filtered. I also understand that a properly designed mixer will suppress harmonics of the output signal... Marki's mixer have excent n*lo+n*rf figure. This second strategy would seem much easier as it doesn't require a switched filter bank. Have I understood this all correctly?

author: OwO
author_rank: Super Contributor
timestamp: January 03, 2019, 11:00:29 am
content: I ran some numbers through a spurs calculator and it looks like you need a mixer with high IP4 to avoid spurs at the lower output frequencies, and high IP3 to avoid spurs at high output frequency. The output is limited to half the sine frequency unless the mixer has very good IP3.2001MHz square wave2000MHz sine wave2 [1.0, 4000.0, 4001.0, 4002.0, 8002.0, 8005.0, 12004.0, 12005.0, 20010.0]3 [1999.0, 2002.0, 6000.0, 6001.0, 6002.0, 6003.0, 6005.0, 10002.0, 10004.0, 14004.0, 14005.0, 18006.0, 18010.0, 22010.0, 30015.0]4 [2.0, 3999.0, 4003.0, 4005.0, 8000.0, 8001.0, 8002.0, 8003.0, 8004.0, 12002.0, 16004.0, 16005.0, 16006.0, 16010.0, 20006.0, 24008.0, 24010.0, 28015.0, 32015.0, 40020.0]2999MHz square wave2000MHz sine wave2 [999.0, 4000.0, 4999.0, 5998.0, 6997.0, 10997.0, 12995.0, 16995.0, 17994.0, 29990.0]3 [1001.0, 3998.0, 4997.0, 6000.0, 6999.0, 7998.0, 8997.0, 10995.0, 12997.0, 15994.0, 18995.0, 19994.0, 26991.0, 27990.0, 31990.0, 44985.0]4 [1998.0, 2997.0, 3001.0, 6997.0, 8000.0, 8995.0, 8999.0, 9998.0, 10997.0, 11996.0, 13994.0, 14997.0, 20995.0, 21994.0, 24991.0, 25990.0, 28991.0, 33990.0, 35988.0, 42985.0, 46985.0, 59980.0]5 [2.0, 997.0, 4997.0, 5001.0, 6995.0, 9996.0, 10999.0, 11994.0, 11998.0, 12997.0, 13996.0, 16997.0, 22991.0, 22995.0, 23990.0, 23994.0, 30991.0, 33988.0, 35990.0, 37988.0, 40985.0, 48985.0, 57980.0, 61980.0]

author: David Hess
author_rank: Super Contributor
timestamp: January 03, 2019, 09:04:37 pm
content: How high of a frequency are you interested in? One way I would consider at low frequency over many decades is to use a bandpass switched capacitor filter operating off of a high multiple of the signal clock frequency.

author: ezalys
author_rank: Frequent Contributor
timestamp: January 04, 2019, 02:01:01 am
content: 10-20 MHz. What's inspired this question is combing through the service manual of the 4192a impedance analyzer.

author: David Hess
author_rank: Super Contributor
timestamp: January 04, 2019, 02:45:11 am
content: That is too high for switched capacitor filtering unfortunately. But it is just feasible to generate sine waves up through that range with straight analog techniques and diode curve fitting. Check out theTektronix FG504for an example.I think I have seen the mixing method done using a varactor tuned VCO and fixed crystal oscillator. Obviously this should be possible because it is a superheterodyne receiver in reverse. The tricky or perhaps non-obvious part is that if the double balanced mixer on the output is wired to use the IF port as the output, then it can produce signals down to DC.

author: OwO
author_rank: Super Contributor
timestamp: January 04, 2019, 05:52:01 am
content: For 20MHz it doesn't make much sense to dick around with analog techniques when DDS will give you far better and predictable performance, and you can get it done with < $10 in BOM cost.I can imagine the heterodyne technique makes sense in test equipment for e.g. generating sine waves from 1kHz to 3GHz though.

author: Wolfgang
author_rank: Super Contributor
timestamp: January 05, 2019, 01:43:42 pm
content: Hi,an old style solution would be an MAX8038 function generator that could sweep from 0 to 10MHz (in one go, if it must), and then a diode multiplier plus some filter bank.

author: ezalys
author_rank: Frequent Contributor
timestamp: January 06, 2019, 06:01:49 am
content: Ultimately I need analog I and Q, control and frequency control over a signal from 100 kHz to ~20 MHz. I was gonna use a quadrature sampling mixer to make a fixed frequency, IQ modulated thing that I'd filter to a sinusoid using a crystal, and then I figured I'd mix it down.Analog because an analog circuit controls I and Q.

author: Wolfgang
author_rank: Super Contributor
timestamp: January 24, 2019, 09:58:25 pm
content: A Rigol DG1022Z does all what you need. Signal quality is good, it also does arbitrary phase, and it can be modulated.

author: ezalys
author_rank: Frequent Contributor
timestamp: January 25, 2019, 12:14:11 am
content: I'm interested in a circuit, not a box.

author: Wolfgang
author_rank: Super Contributor
timestamp: January 25, 2019, 12:33:26 am
content: OK, sorry. The DG1022Z definitively does it by DDS.

author: cncjerry
author_rank: Unknown
timestamp: January 25, 2019, 03:58:58 am
content: It was a common practice to use a PLL with a divide by N or fractional N to generate the square wave. Then as others mentioned, you follow this up with a switched capacitor filter. But this was only good for low frequencies. I had a setup like this for up to 100Khz years ago. The advantage back then was that you were able to use a presettable divider using switches and it all worked pretty well. I still have the switched cap filter.But for your frequency range up to even 40Mhz, you can just use an AD9854 or AD9954. They have pretty low phase noise and spurs and also output I and Q. You can pickup a board on eBay for cheap but the ones that work with the standard AD eval code only seem to work with XPSP3 or maybe windows 7 or Vista. But they are pretty clean for what you get, have I/Q, cheap, etc. Very flexible, lots of driver code for Arduino, PIC as well as STM32 series. Or just use the AD eval code and rewrite the frontend in C# or VB. I used an AD9854 like this for an SDR for years.Jerry

author: Wolfgang
author_rank: Super Contributor
timestamp: January 27, 2019, 10:39:12 pm
content: Quote from: ezalys on January 25, 2019, 12:14:11 am... something that just got to my mind was an old circuit using two RF-oscillators (one crystal, one tuned), a mixer and a lowpass.The oscillators had to be very well built with regard to temperature compensation, but you could have a sweep from 0 to 30MHz in one go.

author: rfeecs
author_rank: Frequent Contributor
timestamp: January 27, 2019, 11:04:35 pm
content: The old HP3325A Synthesizer/Function Generator had a fixed 30MHz oscillator and a 30MHz to 51MHz VCO, giving 0 to 21MHz frequency range. It used a fractional-N synthesizer with 1 milli-Hz frequency resolution:https://accusrc.com/uploads/datasheets/4080_3325A.pdf

author: duak
author_rank: Super Contributor
timestamp: January 30, 2019, 11:29:03 pm
content: I was looking for a variable phase shifting circuit and found the hp 203a manual somewhere. It generates two 0 to 60 kHz outputs with a variable phase relationship. It doesn't have the 10 to 20 MHz range the OP requested, but the circuit is all analog and the theory of operation is quite clear. It's from 1965 and uses discrete transistors. I imagine some modern technology could easily extend the range and simplify the construction.It's the first time I've seen a goniometer actually used in a product - usually it was from a physics lab demonstration. Goniometer - what a great name.Cheers,