From 33e17fa96932fc26c6dad6ec5e5c9fd1ddfceb54 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 2 Apr 2023 22:56:49 +0200 Subject: [PATCH] noise simulation examples --- examples/noise/baker-252-gain.cir | 25 ++++++++++++++++ examples/noise/resdiv.cir | 41 ++++++++++++++++++++++++++ examples/noise/resdiv_gain.cir | 48 +++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 examples/noise/baker-252-gain.cir create mode 100644 examples/noise/resdiv.cir create mode 100644 examples/noise/resdiv_gain.cir diff --git a/examples/noise/baker-252-gain.cir b/examples/noise/baker-252-gain.cir new file mode 100644 index 000000000..f35002dba --- /dev/null +++ b/examples/noise/baker-252-gain.cir @@ -0,0 +1,25 @@ +baker-252 enhanced +* simple noiseless opamp with RC feedback +* compare E source and code model gain stage +* ngspice-40+ required + +.control +set sqrnoise +noise V(vout) Vplus dec 100 1 1000G +print all +noise V(vouta) Vplusa dec 100 1 1000G +print all +.endc + +Vplus Vplus 0 dc 0 ac 1 +Rf vout vminus 100k +Cf vout vminus 1000p +Eopamp vout 0 vplus vminus 100Meg + +Vplusa Vplusa 0 dc 0 ac 1 +Rfa vouta vminusa 100k +Cfa vouta vminusa 1000p +a1 %vd(vplusa, vminusa) vouta amp +.model amp gain(gain=1e8) + +.end diff --git a/examples/noise/resdiv.cir b/examples/noise/resdiv.cir new file mode 100644 index 000000000..1ba3ec9e1 --- /dev/null +++ b/examples/noise/resdiv.cir @@ -0,0 +1,41 @@ +* noise of a resistive divider +* noise of a resistive divider, lower resistor noiseless +* noise of a resistive divider with filter +* 'set behavior = lta' is required + +V1 1 0 dc 0 ac 1 +R1 1 2 10k +R2 2 0 10k + +V11 11 0 dc 0 ac 1 +R11 11 12 10k +R12 12 0 10k noiseless + +V21 21 0 dc 0 ac 1 +R21 21 22 10k +R22 22 0 10k +C22 22 0 1u + +.control +noise v(2) V1 dec 10 1 100k +echo **resistive divider** +print onoise_total inoise_total +setplot noise1 +print onoise_spectrum[0] inoise_spectrum[0] +noise v(12) V11 dec 10 1 100k +echo **resistive divider, lower resistor noiseless** +print onoise_total inoise_total +setplot noise3 +print onoise_spectrum[0] inoise_spectrum[0] +noise v(22) V21 dec 10 1 100k +echo **resistive divider with filter** +print onoise_total inoise_total +setplot noise5 +print onoise_spectrum[0] inoise_spectrum[0] +set xbrushwidth=2 +plot onoise_spectrum inoise_spectrum xlimit 1 1e5 +.endc + +.end + + diff --git a/examples/noise/resdiv_gain.cir b/examples/noise/resdiv_gain.cir new file mode 100644 index 000000000..7ccb978e9 --- /dev/null +++ b/examples/noise/resdiv_gain.cir @@ -0,0 +1,48 @@ +*noise of a resistive divider +*noise of a resistive divider with filter +*noise as above after a noiseless amplifier with gain 5 + +V1 1 0 dc 0 ac 1 +R1 1 2 10k +R2 2 0 10k + +V21 21 0 dc 0 ac 1 +R21 21 22 10k +R22 22 0 10k +C22 22 0 1u + +a1 2 3 amp +.model amp gain(in_offset = 0 gain = 5.0 ++ out_offset = 0) + +a2 22 23 amp + +.control + +noise v(2) V1 dec 10 1 100k +print onoise_total inoise_total +setplot noise1 +print onoise_spectrum[0] inoise_spectrum[0] + +noise v(3) V1 dec 10 1 100k +print onoise_total inoise_total +setplot noise3 +print onoise_spectrum[0] inoise_spectrum[0] + +noise v(22) V21 dec 10 1 100k +print onoise_total inoise_total +setplot noise5 +print onoise_spectrum[0] inoise_spectrum[0] + +noise v(23) V21 dec 10 1 100k +print onoise_total inoise_total +setplot noise7 +print onoise_spectrum[0] inoise_spectrum[0] +set xbrushwidth = 2 +plot onoise_spectrum noise5.onoise_spectrum inoise_spectrum xlimit 1 1e5 + +.endc + +.end + +