I found this ring modulator circuit on the internet

enter image description here

I tried to simulate this circuit on LTspice, but it doesn't work. Here is the LTspice circuit:

enter image description here

And these are the simulation results: (Green: message signal, Blue: carrier, Red: DSB-SC output)

enter image description here

enter image description here

I probed the carrier voltage source to see the current flowing through it, and this is what I found:

enter image description here

The current goes to 16A!

Edit: A user pointed out that my carrier signal was incorrect and that it was keeping 2 diodes permanently on. After changing the carrier signal for a 0-5V pulse to a -2.5V to +2.5V pulse, the high current draw problem has been solved, but I'm still not getting any output. Also, I noticed that there is current flowing through L4 and L5, but not L6. Are they not coupled even though there is a .s command?

enter image description here

I tried simulating this on EveryCircuit, but it didn't work there either.

I'd like to know what I'm doing wrong. Or is the circuit itself wrong?

V1: 2Vpp 1kHz
V2: 5Vpp 10kHz
All coils have an inductance of 1mH and resistance of 50mOhms.


"ExpressPCB Netlist"
"LTspice XVII"
"Part IDs Table"
"L1" "1m" ""
"L2" "1m" ""
"L3" "1m" ""
"V1" "SINE(0 1 1k)" ""
"L4" "1m" ""
"L5" "1m" ""
"L6" "1m" ""
"D1" "1N5817" ""
"D2" "1N5817" ""
"D4" "1N5817" ""
"D3" "1N5817" ""
"V2" "PULSE(-2.5 2.5 0 1n 1n 50u 100u)" ""
"R1" "1k" ""

"Net Names Table"
"N006" 1
"N001" 4
"N005" 7
"0" 10
"N003" 17
"N007" 19
"N002" 22
"N004" 25

"Net Connections Table"
1 1 1 2
1 2 2 3
1 12 1 0
2 1 2 5
2 8 1 6
2 10 2 0
3 2 1 8
3 9 1 9
3 11 2 0
4 3 1 11
4 4 2 12
4 6 1 13
4 7 1 14
4 9 2 15
4 10 1 16
4 13 2 0
5 3 2 18
5 4 1 0
6 5 1 20
6 6 2 21
6 12 2 0
7 5 2 23
7 8 2 24
7 11 1 0
8 7 2 26
8 13 1 0

Thankyou for the answers. The circuit is now working.

enter image description here


Ok, it looks like I have to justify my choice of answer. I never thought I'd have to do this, because its up to me to choose which answer helped me the most, but a user has been very unhappy with my choice, so here it goes. The reason why I choose user287001's answer is because it is what helped me the most. They pointed out to me that my carrier signal was incorrect, which resulted in me not getting any output on LTspice and EveryCircuit. But in addition to the incorrect carrier signal, I also incorrectly typed a .s command in LTspice, which resulted in zero transformer coupling, which the user rdtsc pointed out to me. But I did not select their answer because the error in the .s command was a syntax error and did not explain what was wrong with my circuit or why did didn't work in either of the two simulators, which is why I didn't select it as the answer which helped me. Of course, correcting the .s command made the transformer in LTspice work properly, but it doesn't explain why the EveryCircuit simulation didn't work, as EveryCircuit has in-built transformers and doesn't require a .s command. But the incorrect carrier signal was a problem that was common to both simulations, which is why I selected user287001's answer.

I am the author of this post and I was well within my rights to choose user287001's answer because I felt that their answer helped me the most. I didn't choose their answer because I like them or because I dislike rdtsc, in which case it would be ok if a user had a problem with the answer that I selected, but I chose their answer because it helped me the most. If I could, I would've chosen both answers as correct, but I can't, so I'm forced to choose the most helpful answer only, even if one or more answers have helped me.


Your carrier has DC. It should be symmetric around zero to change which diodes conduct. The circuit is intended to make the carrier to alter the polarity of the input signal. Have one of the carrier source terminals = GND to see if the carrier source outputs what's needed.

  • \$\begingroup\$ I tried making the carrier symmetric about the x-axis and it solved the excessive current draw problem, but I am still not getting any output voltage. PS Moving the ground around didn't make any difference, as I expected. \$\endgroup\$ – Prathik Prashanth 2 days ago
  • \$\begingroup\$ Moving the ground doesn't change the function, it only makes possible to show the carrier as a single node voltage. Some simulators can show right it as a property of voltage source, no matter where the GND is and some need to make a formula like v(7)-v(8) where 7 and 8 are the (non-GND) poles of the voltage source. \$\endgroup\$ – user287001 2 days ago

Your K statements have a coupling coefficient of .0.98 - try changing that to 0.98.

  • \$\begingroup\$ Thank you, I always make that mistake! It works now. \$\endgroup\$ – Prathik Prashanth 2 days ago

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.