DDS differential filter...

On Mon, 5 Sep 2022 10:00:15 +1000, Clifford Heath <no_spam@please.net>
wrote:

On 4/9/22 06:29, jlarkin@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmiles@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.

It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

Well, 20 cents in quantity for a 0805, 30 cents for the midi springs.
They do great stuff and are generous with samples.

Clifford Heath

There are lowpass filters that are designed around finite-Q parts;
Williams has tables for some. The math is even nastier than ideal
filters.

But a DDS filter doesn\'t need a beautifully flat frequency response
graph. It drives a comparator.
 
On 14/9/22 14:35, Simon S Aysdie wrote:
On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote:
On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmi...@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.
It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

By \"7th order bandpass\" I\'ll guess you mean 7 resonators. BPF are usually even order. Anyway, you\'re right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters.

Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment.

features
* 50 MHz center freq
* 10% nominal BW (b4 non-idealities)
* 20 dB nominal return loss
* all 5 coils coerced to 82 nH
(coercion \"paid for\" with additional caps)
* 5 finite transmission zeros
* Coil Q: guess 80 (midi spring)
* Cap Q: guess 250
* All internal nodes have design capacitance to ground
(enable absorbtion of parasitic capacitance; costs caps)

I didn\'t respond previously because that LTSpice doesn\'t work for me. It
displays and appears to run the sim, but then I can\'t probe anywhere to
view a trace.

Has anyone else seen this behaviour or knows how to fix it?

CH
 
On Sunday, September 18, 2022 at 8:19:42 PM UTC-4, Clifford Heath wrote:
On 14/9/22 14:35, Simon S Aysdie wrote:
On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote:
On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmi...@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.
It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

By \"7th order bandpass\" I\'ll guess you mean 7 resonators. BPF are usually even order. Anyway, you\'re right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters.

Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment.

features
* 50 MHz center freq
* 10% nominal BW (b4 non-idealities)
* 20 dB nominal return loss
* all 5 coils coerced to 82 nH
(coercion \"paid for\" with additional caps)
* 5 finite transmission zeros
* Coil Q: guess 80 (midi spring)
* Cap Q: guess 250
* All internal nodes have design capacitance to ground
(enable absorbtion of parasitic capacitance; costs caps)
I didn\'t respond previously because that LTSpice doesn\'t work for me. It
displays and appears to run the sim, but then I can\'t probe anywhere to
view a trace.

Has anyone else seen this behaviour or knows how to fix it?

Why not use the excellent tool debugging features in LTspice? Oh, that\'s right, they don\'t have any.

--

Rick C.

- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209
 
On Sunday, September 18, 2022 at 5:19:42 PM UTC-7, Clifford Heath wrote:
On 14/9/22 14:35, Simon S Aysdie wrote:
On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote:
On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmi...@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.
It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

By \"7th order bandpass\" I\'ll guess you mean 7 resonators. BPF are usually even order. Anyway, you\'re right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters.

Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment.

features
* 50 MHz center freq
* 10% nominal BW (b4 non-idealities)
* 20 dB nominal return loss
* all 5 coils coerced to 82 nH
(coercion \"paid for\" with additional caps)
* 5 finite transmission zeros
* Coil Q: guess 80 (midi spring)
* Cap Q: guess 250
* All internal nodes have design capacitance to ground
(enable absorbtion of parasitic capacitance; costs caps)
I didn\'t respond previously because that LTSpice doesn\'t work for me. It
displays and appears to run the sim, but then I can\'t probe anywhere to
view a trace.

Has anyone else seen this behaviour or knows how to fix it?

Hi Clifford,

Only s11 and s21 are saved via .SAVE ....

Simply comment it away (or delete) if you want all the nets. I rarely use the rest of the nets for this sort of thing. Sorry--habit!
 
On Sunday, September 18, 2022 at 6:48:38 PM UTC-7, Ricky wrote:
On Sunday, September 18, 2022 at 8:19:42 PM UTC-4, Clifford Heath wrote:

Has anyone else seen this behaviour or knows how to fix it?
Why not use the excellent tool debugging features in LTspice? Oh, that\'s right, they don\'t have any.

It isn\'t a bug--a debugger would not help.
 
On 14/9/22 14:35, Simon S Aysdie wrote:
On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote:
On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmi...@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.
It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

By \"7th order bandpass\" I\'ll guess you mean 7 resonators. BPF are usually even order. Anyway, you\'re right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters.

Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment.

features
* 50 MHz center freq
* 10% nominal BW (b4 non-idealities)
* 20 dB nominal return loss
* all 5 coils coerced to 82 nH
(coercion \"paid for\" with additional caps)
* 5 finite transmission zeros
* Coil Q: guess 80 (midi spring)
* Cap Q: guess 250
* All internal nodes have design capacitance to ground
(enable absorbtion of parasitic capacitance; costs caps)

Just got back to this now. Thanks for pointing out the .SAVE thing I\'d
overlooked. And you\'re right, I meant 7 resonators.

That does work nicely Simon. I haven\'t played with the capacitor
tolerances, to see what standard values (or pairs, paralleled) would be
usable.

I\'m curious what you used to design this?

Clifford Heath.
 
On Wednesday, September 21, 2022 at 4:37:01 PM UTC-7, Clifford Heath wrote:
On 14/9/22 14:35, Simon S Aysdie wrote:
On Sunday, September 4, 2022 at 5:00:24 PM UTC-7, Clifford Heath wrote:
On 4/9/22 06:29, jla...@highlandsniptechnology.com wrote:
On Sat, 3 Sep 2022 12:47:45 -0700 (PDT), \"John Miles, KE5FX\"
jmi...@gmail.com> wrote:
One of the things I\'ve learned fairly recently is that discrete LC filters are a
bag of hurt when it comes to production. I used to use a lot of packaged
Mini-Circuits elliptic filters until the last project, when I got tired of paying
for them. I can run a filter design program just as well as they can, right?

The mini-ckts mlcc flters are great, but start around 1 GHz or so. I
want a 15 MHz filter so I\'ll have to make it.

It\'s strange that nobody makes a series of lp filters aimed at the DDS
market.
It\'s difficult to build good LC filters in SMD for HF. The multi-layer
inductors that work fine at UHF just don\'t have the required Q at lower
frequencies.

I designed a nice-looking 7th order bandpass filter for 50MHz, then
started looking for SMD parts to realise it. Stick the actual Q values
into LTSpice and weep. 1dB pass-band loss turns into 60dB loss really
quickly.

Coilcraft make suitable small inductors that are wound, not multi-layer,
but you pay a lot more for that.

By \"7th order bandpass\" I\'ll guess you mean 7 resonators. BPF are usually even order. Anyway, you\'re right that wirewound CCI will be more expensive than multilayer. Multilyers are rarely good enough for bandpass filters.

Just to experiment, I hacked out a 5-coil 10% 50 MHz BPF using 82 nH MIDI (1812SMS-82NGL_) coils, just to experiment.

features
* 50 MHz center freq
* 10% nominal BW (b4 non-idealities)
* 20 dB nominal return loss
* all 5 coils coerced to 82 nH
(coercion \"paid for\" with additional caps)
* 5 finite transmission zeros
* Coil Q: guess 80 (midi spring)
* Cap Q: guess 250
* All internal nodes have design capacitance to ground
(enable absorbtion of parasitic capacitance; costs caps)
Just got back to this now. Thanks for pointing out the .SAVE thing I\'d
overlooked. And you\'re right, I meant 7 resonators.

That does work nicely Simon. I haven\'t played with the capacitor
tolerances, to see what standard values (or pairs, paralleled) would be
usable.

Yeah, to get serious about it, that would need to be done. But it is doable.

As a play-thing w/ arbitrary specs, I did not do any sensitivity work. A premium was placed on getting all coils identical, and using as few as possible. Caps are the price. Some may need \"doubling,\" as you say.

> I\'m curious what you used to design this?

filsyn

----------------------------
This is the same, but with very hi Q -- the \"native\" design

Version 4
SHEET 1 6120 3588
WIRE 496 -736 432 -736
WIRE 624 -736 560 -736
WIRE 1488 -736 1424 -736
WIRE 1616 -736 1552 -736
WIRE 2352 -736 2288 -736
WIRE 2480 -736 2416 -736
WIRE 208 -672 -240 -672
WIRE 368 -672 272 -672
WIRE 432 -672 432 -736
WIRE 432 -672 368 -672
WIRE 624 -672 624 -736
WIRE 688 -672 624 -672
WIRE 784 -672 688 -672
WIRE 960 -672 848 -672
WIRE 1168 -672 960 -672
WIRE 1232 -672 1168 -672
WIRE 1360 -672 1296 -672
WIRE 1424 -672 1424 -736
WIRE 1424 -672 1360 -672
WIRE 1616 -672 1616 -736
WIRE 1712 -672 1616 -672
WIRE 2032 -672 1712 -672
WIRE 2096 -672 2032 -672
WIRE 2224 -672 2160 -672
WIRE 2288 -672 2288 -736
WIRE 2288 -672 2224 -672
WIRE 2480 -672 2480 -736
WIRE 2544 -672 2480 -672
WIRE 2592 -672 2544 -672
WIRE 3056 -672 2656 -672
WIRE 432 -608 432 -672
WIRE 480 -608 432 -608
WIRE 624 -608 624 -672
WIRE 624 -608 560 -608
WIRE 1424 -608 1424 -672
WIRE 1472 -608 1424 -608
WIRE 1616 -608 1616 -672
WIRE 1616 -608 1552 -608
WIRE 1712 -608 1712 -672
WIRE 2288 -608 2288 -672
WIRE 2336 -608 2288 -608
WIRE 2480 -608 2480 -672
WIRE 2480 -608 2416 -608
WIRE 960 -592 960 -672
WIRE 2032 -560 2032 -672
WIRE -240 -528 -240 -672
WIRE 1168 -528 1168 -672
WIRE 368 -512 368 -672
WIRE 3056 -512 3056 -672
WIRE 1712 -496 1712 -544
WIRE 1808 -496 1712 -496
WIRE 688 -480 688 -672
WIRE 1360 -480 1360 -672
WIRE 2224 -480 2224 -672
WIRE 2544 -480 2544 -672
WIRE 1712 -448 1712 -496
WIRE 1808 -448 1808 -496
WIRE 960 -416 960 -512
WIRE -240 -288 -240 -448
WIRE 368 -288 368 -448
WIRE 368 -288 -240 -288
WIRE 688 -288 688 -416
WIRE 688 -288 368 -288
WIRE 960 -288 960 -352
WIRE 960 -288 688 -288
WIRE 1168 -288 1168 -464
WIRE 1168 -288 960 -288
WIRE 1360 -288 1360 -416
WIRE 1360 -288 1168 -288
WIRE 1712 -288 1712 -368
WIRE 1712 -288 1360 -288
WIRE 1808 -288 1808 -384
WIRE 1808 -288 1712 -288
WIRE 2032 -288 2032 -496
WIRE 2032 -288 1808 -288
WIRE 2224 -288 2224 -416
WIRE 2224 -288 2032 -288
WIRE 2544 -288 2544 -416
WIRE 2544 -288 2224 -288
WIRE 3056 -288 3056 -432
WIRE 3056 -288 2544 -288
WIRE -240 -240 -240 -288
WIRE 3056 -240 3056 -288
FLAG -240 -240 0
FLAG 3056 -240 0
SYMBOL res 3040 -528 R0
SYMATTR InstName R_load00
SYMATTR Value 50
SYMBOL voltage -240 -544 R0
WINDOW 0 25 23 Left 2
WINDOW 3 25 93 Left 2
WINDOW 123 36 64 Left 2
WINDOW 39 27 106 Left 2
SYMATTR InstName Vsrc00
SYMATTR Value \"\"
SYMATTR Value2 AC 2
SYMATTR SpiceLine Rser=50
SYMBOL cap 272 -688 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 343.705540p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 384 -512 M0
SYMATTR InstName C2
SYMATTR Value 28.367562p
SYMATTR SpiceLine Rser=1e-12
SYMBOL ind 576 -624 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 82n
SYMATTR SpiceLine Rser=1e-9
SYMBOL cap 560 -752 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value 75.416515p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 704 -480 M0
SYMATTR InstName C4
SYMATTR Value 14.427057p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 848 -688 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C5
SYMATTR Value 63.512945p
SYMATTR SpiceLine Rser=1e-12
SYMBOL ind 944 -608 R0
SYMATTR InstName L2
SYMATTR Value 82n
SYMATTR SpiceLine Rser=1e-9
SYMBOL cap 976 -416 M0
SYMATTR InstName C6
SYMATTR Value 292.455428p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 1184 -528 M0
SYMATTR InstName C7
SYMATTR Value 196.936941p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 1376 -480 M0
SYMATTR InstName C8
SYMATTR Value 6.183996p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 1296 -688 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C9
SYMATTR Value 29.234988p
SYMATTR SpiceLine Rser=1e-12
SYMBOL ind 1568 -624 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L3
SYMATTR Value 82n
SYMATTR SpiceLine Rser=1e-9
SYMBOL cap 1552 -752 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C10
SYMATTR Value 85.807236p
SYMATTR SpiceLine Rser=1e-12
SYMBOL ind 1696 -464 R0
SYMATTR InstName L4
SYMATTR Value 82n
SYMATTR SpiceLine Rser=1e-9
SYMBOL cap 1696 -608 R0
SYMATTR InstName C11
SYMATTR Value 159.281578p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 1792 -448 R0
SYMATTR InstName C12
SYMATTR Value 43.812471p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 2048 -560 M0
SYMATTR InstName C13
SYMATTR Value 111.772393p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 2240 -480 M0
SYMATTR InstName C14
SYMATTR Value 112.596793p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 2160 -688 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C15
SYMATTR Value 170.870341p
SYMATTR SpiceLine Rser=1e-12
SYMBOL ind 2432 -624 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L5
SYMATTR Value 82n
SYMATTR SpiceLine Rser=1e-9
SYMBOL cap 2416 -752 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C16
SYMATTR Value 45.940816p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 2560 -480 M0
SYMATTR InstName C17
SYMATTR Value 70.752997p
SYMATTR SpiceLine Rser=1e-12
SYMBOL cap 2656 -688 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C18
SYMATTR Value 104.602713p
SYMATTR SpiceLine Rser=1e-12
TEXT -1312 -2784 Left 2 ;o
TEXT 5416 1528 Left 2 ;o
TEXT -232 -856 Left 2 !.net I(R_load00) Vsrc00
TEXT -240 -792 Left 2 !.SAVE S11(vsrc00) S21(vsrc00)
TEXT -216 -912 Left 2 !.ac lin 3801 10e6 200e6
TEXT 448 -1024 Left 2 ;\"10% BW\" 50 MHz BPF\\nQL = very hi\\nQC = very hi
 

Welcome to EDABoard.com

Sponsor

Back
Top