Just a little oscillator; reflections on filter design - Page 1
Forum section: electronics / rf-microwave

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 19, 2017, 06:41:01 pm
content: Oscillator part not shown, it's ordinary varactor tuned anyway. The fiddly-bit is the distortion filter and buffer following it:Doesn't really follow any standard filter prototype, does it? Well, with 11 variables in the network, there's a lot of space to do many things...- Goal: 100-130MHz bandpass. Lower cutoff doesn't need to be sharp. Stop band should be -60dB by 200MHz (lowest 2nd harmonic). Pass band should be fairly flat (+/-1dB or better). -3dB should land a bit outside of passband (say 95 and 135MHz).- Input port: high impedance (about 10kohms || 1pF). Reflected resistance should be modest (250-1000 ohms).- Input port needs a parallel inductor, to supply DC bias.- Intermediate impedance should be low to modest (~100 ohms?), so as to avoid very small capacitors or very large inductors.- Output port matches to 450 ohm || 5.1pF (give or take).So what ends up happening is a couple of things:1. If you started with an ordinary (equal matched) filter, it would be 5th order Cheb. lowpass.2. This is transformed, with an exponential taper (i.e., each component is adjusted by a ratio, so the impedance of the network varies geometrically between the two ports). Alternately, one of these filter designs can be found in tabulated form. The aim of this transform is not to achieve a power match (that's impossible -- it won't work at DC, at least, and could only be peaked near the transition region, which is dumb), but rather, to keep the filter response constantdespitehaving one port mismatched.Indeed, for a suitable transform, you can have one port wired to a fully open circuit (stipulation: that port must have a parallel element across it), or a fully shorted circuit (requires series element). This doesn't mean that no power can come in or out of that port (a CV or CC source still delivers power, as long as the load has finite/nonzero impedance), just that the filter's damping must come entirely from the other port.Which is interesting, because if you think of a filter as a specially shaped transmission line, you'd like to think that a wave must travel the full length, and then either be absorbed or reflected; but indeed, that's the point: a filter is N reflections (for Nth order), and the energy rattles around within the structure, often much longer than one straight-line path length would require! So it's quite possible to arrange the filter so that all the reflected energy comes back to the source, for any design load impedance, including zero or infinity.3. To account for the range of impedances, matching networks are used.If the bandwidth isn't very large, then you can do a handy transformation: the series-parallel transform.If you start with a parallel circuit (say, a resonator: a parallel L and C to ground), it has some impedance Z = R + X at a given frequency. That is, if you took a resistor and a reactance and connected themin series, you'd get the same impedance. That's all the transform is. Now, in general, that transform depends sharply on frequency (for an R||C <--> R+C network, the dependency goes like f^2), but if you aren't interested in a wide range, the dependency can be waved off!A classic example is the crystal filter. A traditional bandpass filter has parallel L||C and series L+C elements. Crystals, internally, only act like L+C elements, though. Aha, so what if we transform them, by connecting a crystal between two capacitors to ground? Voila! That's fundamentally why microcontroller oscillators use two capacitors and a crystal (bet you weren't expecting to see digital circuitry pop up here, huh?).It also works if you have L||C resonators (helical, cavity, whatever; the "transforming" or linking impedance is usually a common winding, or proximity, or capacitance), or even just C and C, or L and L together. (Of course, inductors in series have the wonderful additional feature that you can couple them, so you can get direct transformer action, too!)In this circuit, two all-capacitor matching networks provide the required matching. They are (C6 || Q1 Ccb), C2 and C5 on the left, and C3 and Q2 Cin on the right.The high impedance thus presented to Q1 gives high gain (Q1 is basically a constant current output, so power gain of the matching network goes as sqrt(Rin/Rout)), while the middle of the network has a lower impedance (for example, C4 sees L2 and L3, which is roughly an impedance around sqrt(0.47uH / 0.000012uF) = 200 ohms).C3 isn't really a matching network, since you can view Q2 as a parallel equivalent; but it also works as a series equivalent with a matching network (using only two capacitors: the transistor input capacitance and C3). In this way, the network is matched back up to ~450 ohms. (Or down to ~120 ohms, parallel equivalent. Same thing!)4. Once the filter prototype is figured out, we can add fixin's. L1 is added, to supply bias to Q1, and filter LF while we're at it. This can be chosen, for starters, by picking a value that's resonant with the existing capacitance at that node (i.e., about 1pF), which is about 2uH (note the center frequency is 115MHz). C6 gets increased a little bit to compensate.C1 and C17 are optional, more or less: they add an elliptical flavor (i.e., zeroes in the stop band). The zero frequencies are near (C1, L2) and (C17, L3). When you add these capacitors, you must reduce the others by half the value, i.e., C5 <= C5(initial value) - C1 / 2.5. Adjustment. Since this isn't generated (and, I doubt tables exist for this particular case, with this many input variables), it takes a lot of fiddling.I first started with a constant impedance filter network, with the matching networks tacked on. I soon realized I could improve it by tapering the filter, so the required matching ratio is smaller, and allowing the Q1 load impedance to be even higher (obtaining a few more dB in overall gain).I do suggest fudging around with component values, and figuring out which parts have what effect on the result. (For example, C4 kind of has the effect of varying the amplitude of the middle peak.) If you'll be hand adjusting this later, it will be helpful experience, so you'll know which way to change values as you go. (If you don't have time for that, you can write an optimizing script, or buy a more full-featured tool, like Nuhertz filter designer, which I understand has oodles of options, including building filters like this, and optimizing them.)Okay, so how does it look after all that adjustment? Pretty good:Well within 1dB, nicely centered, and steep enough skirts. (And, yes, the BJT SPICE models seem to be accurate enough.)Here's the wide view. (I'm not quite sure what's responsible for the sort of hump on the left side, but that's fine.) On the right side, the first notch was chosen to land at 230MHz (twice the center frequency), to maximize attenuation at the 2nd harmonic. This also has the effect of steepening the cutoff: without C1 and C17, it would only be about -50dB at 200MHz. The second notch was adjusted for maximum stopband attenuation (i.e., adjusting C17 until the hump at 260MHz has the same amplitude as the hump at 560MHz). (These small changes, in turn, cause small changes in the other capacitors, but that's easily adjusted out once things are very close to optimal already.)How's it look? Let's build it and try;(The buffer and filter circuit starts at the 1/4W 10k resistor. Speaking of, yes, the base bypass cap is grounded through a via.)The curved metal bits, and Kapton tape, are "gimmick" capacitors, since I don't have any trimmers quite that small. For low and fractional pF values, it's a pretty good way to go. (They will act like stubs somewhere in the GHz, but these 1GHz transistors shouldn't be able to feel that at all, so the response < 1GHz should hopefully be close to the prediction.)There are also bits of PCB, used as capacitance (not obvious, because they're seen edge-on in this picture). 0.8mm PCB stock is roughly 0.2pF/mm^2, so it's pretty easy to use. The exact value of such a capacitor is hard to adjust, but it can be trimmed down by cutting off more length, and it can be increased somewhat by adding gimmick wires to them.Note that there's a (proper) variable capacitor, C4, but apparently no C3 at all. What gives? I adjusted R13 to compensate!How does that work? Well, Q2 is just a common emitter amplifier, so it is prone to Miller effect. This magnifies Ccb by the voltage gain (plus one). And the gain is proportional to R13 and all that. So changing resistance in the emitter circuit of Q2, changes the resistance and capacitance equivalent going into Q2!(Dirty quirk: Q2's gain also depends upon its load, and the only thing setting that is the terminated 50 ohm output connection (L5 has a high impedance -- it's just an RFC here). Indeed, Q2 oscillates when unloaded. This subcircuit isn't intended for general use: it will be carefully matched in its intended application.)Here's the measured spectrum. Kind of awkward, not at all a pretty analyzer output! Well, some explanation:a. The oscillator is being swept (by function generator).b. Sweep voltage is being measured (Ch1, horizontal axis, 10x probe).c. RF amplitude is being measured (Ch2, vertical axis; peak detect mode allows display of the envelope).d. It wouldn't make much sense to do this on the spec an, not without a way to precisely relate control voltage to frequency. (It's actually pretty linear (V to F), as it turns out, at least until 4 or 5V on the varactor.)e. The oscillator doesn't go much above 135MHz, so it just kind of saturates on the right hand side. For the same reason, I can't really test the full response of this filter, unfortunately.The exact spectrum varies with bias on the oscillator, because of quirks in its own frequency response (which isn't quite flat), and because of quenching at very low bias, and because of saturation / distortion / compression (in the oscillator and/or amplifier) at high bias. This was chosen as a bit of a compromise between the options. And, hey, about +/-8% is +/- 0.7dB, not bad at all.Tim