Version 4 SHEET 1 1820 680 WIRE -112 -528 -144 -528 WIRE -144 -512 -144 -528 WIRE 32 -480 -32 -480 WIRE 208 -480 176 -480 WIRE -192 -448 -224 -448 WIRE -144 -416 -144 -432 WIRE 208 -416 176 -416 WIRE 448 -384 432 -384 WIRE 544 -384 528 -384 WIRE 544 -352 544 -384 WIRE 560 -352 544 -352 WIRE 576 -352 560 -352 WIRE 784 -304 752 -304 WIRE 256 -288 192 -288 WIRE 368 -288 256 -288 WIRE 464 -288 432 -288 WIRE 544 -288 528 -288 WIRE 560 -288 544 -288 WIRE 576 -288 560 -288 WIRE -32 -224 -32 -480 WIRE -32 -224 -48 -224 WIRE 32 -224 -32 -224 WIRE 240 -224 192 -224 WIRE 544 -192 544 -288 WIRE 688 -192 544 -192 WIRE 784 -176 752 -176 WIRE 544 -144 544 -192 WIRE 576 -144 544 -144 WIRE 656 -144 640 -144 WIRE 688 -144 656 -144 WIRE -224 -128 -224 -448 WIRE -208 -128 -224 -128 WIRE -32 -128 -32 -224 WIRE -32 -128 -64 -128 WIRE 464 48 448 48 FLAG -48 -224 f FLAG 432 -384 0 FLAG 560 -352 1 FLAG 784 -176 r FLAG 784 -304 THD IOPIN 784 -304 Out FLAG 560 -288 clk FLAG 656 -144 4 FLAG -112 -528 o IOPIN -112 -528 Out FLAG 240 -224 C FLAG 256 -288 S FLAG -144 -336 0 FLAG 368 48 0 FLAG 464 48 per FLAG -192 -496 s SYMBOL Stepped_Sine1 112 -256 R0 WINDOW 39 -121 87 Left 0 WINDOW 40 -76 100 Left 0 SYMATTR SpiceLine f1={f1} f2={f2} cycles={step_cycl} kd={kd} amp={Amp} SYMATTR InstName X1 SYMBOL bv 544 -384 R90 WINDOW 3 -88 -286 VTop 0 WINDOW 0 32 56 VTop 0 WINDOW 123 -60 -115 VTop 0 SYMATTR Value V=100*sqrt((sdt(V(o)**2,0,V(R))*cycles*V(per) - sdt(V(o),0,V(R))**2 - (sdt(V(o)*V(s),0,V(R))**2+sdt(V(o)*V(c),0,V(R))**2)*2)/ SYMATTR InstName B1 SYMATTR Value2 ( ( (sdt(V(o)*V(s),0,V(R))**2 + sdt(V(o)*V(c),0,V(R))**2) )*2 )) SYMBOL SpecialFunctions\\modulate2 32 -480 R0 WINDOW 3 0 112 Left 0 WINDOW 0 0 -46 Left 0 SYMATTR Value space=0 mark={20*f2} SYMATTR InstName A2 SYMBOL Digital\\buf1 368 -352 R0 WINDOW 3 0 96 Left 0 WINDOW 123 0 114 Left 0 WINDOW 0 0 34 Left 0 WINDOW 39 -1 133 Left 0 SYMATTR Value tripdt=1n SYMATTR Value2 ref=0 SYMATTR InstName A4 SYMBOL Digital\\buf1 464 -352 R0 WINDOW 3 -25 121 Left 0 WINDOW 0 0 34 Left 0 WINDOW 38 0 96 Left 0 SYMATTR Value cycles={cycles} SYMATTR InstName A5 SYMATTR SpiceModel counter SYMBOL SpecialFunctions\\sample 656 -320 R0 WINDOW 3 16 80 Center 0 WINDOW 0 8 -48 Center 0 SYMATTR Value tripdt=1n SYMATTR InstName A6 SYMBOL Digital\\inv 576 -208 R0 WINDOW 0 0 34 Left 0 WINDOW 3 0 96 Left 0 WINDOW 123 0 114 Left 0 SYMATTR InstName A7 SYMATTR Value tripdt=1n SYMATTR Value2 Td=4n SYMBOL Digital\\and 720 -224 R0 WINDOW 3 -32 112 Left 0 WINDOW 0 -32 18 Left 0 WINDOW 123 -32 130 Left 0 SYMATTR Value tripdt=0n3 SYMATTR InstName A8 SYMATTR Value2 Td=3n SYMBOL e -144 -528 R0 WINDOW 0 40 47 Left 0 WINDOW 3 37 75 Left 0 SYMATTR InstName E1 SYMATTR Value 1 SYMBOL voltage -144 -432 R0 WINDOW 123 0 0 Left 0 WINDOW 39 24 44 Left 0 SYMATTR InstName Vdc SYMATTR Value 0 SYMBOL bv 464 48 M270 WINDOW 3 -32 56 VBottom 0 WINDOW 0 32 56 VTop 0 SYMATTR Value V=sdt(1,0,V(R))/cycles SYMATTR InstName B2 SYMBOL SpecialFunctions\\modulate2 -64 -128 M0 WINDOW 3 0 112 Left 0 WINDOW 123 0 130 Left 0 WINDOW 39 0 148 Left 0 WINDOW 0 51 29 Left 0 SYMATTR Value space=0 mark={3*f2} SYMATTR Value2 Vhigh={a*Amp} SYMATTR SpiceLine Vlow={-a*Amp} SYMATTR InstName A1 TEXT -32 -96 Left 0 !.param cycles=8 ;integration cycles TEXT 576 -48 Left 0 ;Sweep Parameters:\nf1 = start freq f2= stop freq\nTs = sweep duration TEXT 840 -240 Center 0 ;Delayed\nIntegrator\nReset TEXT 800 -368 Center 0 ;THD output\n(in percent) TEXT 512 -488 Center 0 ;All-in-one THD calculator TEXT 352 -624 Center 0 ;Swept Sine Audio THD Measurement Generator - Rev 1 - Aug 2006 - analogspiceman@yahoo.com TEXT 192 -560 Center 0 ;Swept Sine-Cosine Source\nwith 20x sample forcing TEXT 480 -200 Center 0 ;Divide by 8 TEXT 400 -584 Left 0 !.tran 0 {To} {cycles/f1} uic TEXT -32 -128 Left 0 !.param f1=100 f2=10k TEXT -32 0 Left 0 !.param To=step_cycl*1/f1+kd TEXT -32 -32 Left 0 !.param kd=(step_cycl+0)/f1 ;cycles for 1st frequ-step TEXT -32 -64 Left 0 !.param step_cycl =10 ;cycles / Freq_step TEXT -160 -560 Left 0 !.param a=0 TEXT 240 -128 Left 0 !.param Amp=1 TEXT -32 40 Left 0 !.param sc1=1/cycles\n,param sc2=2/cycles/cycles TEXT 880 -536 Left 0 ;.four {f1} 9 V(o) TEXT -200 120 Left 0 ;V=sdt(V(o)**2,0,V(R))/sc1/V(per) ;power TEXT -192 152 Left 0 ;V=((sdt(V(o)*V(s),0,V(R))**2 + sdt(V(o)*V(c),0,V(R))**2)*sc2/V(per)**2) ;power TEXT -208 192 Left 0 ;V=sdt(V(o),0,V(R))/cycles/V(per) ;DC(Volt) TEXT -160 -584 Left 0 ;3f-Distortion: