Version 4 SHEET 1 2244 2664 WIRE 544 -208 416 -208 WIRE -64 -144 -96 -144 WIRE 48 -144 -64 -144 WIRE -64 -128 -64 -144 WIRE 48 -112 48 -144 WIRE 176 -112 48 -112 WIRE 368 -64 352 -64 WIRE 1120 -48 688 -48 WIRE 176 -16 160 -16 WIRE 688 -16 688 -48 WIRE -464 0 -544 0 WIRE -464 16 -464 0 WIRE -48 16 -64 16 WIRE -288 32 -288 16 WIRE -64 32 -64 16 WIRE -464 112 -464 96 WIRE -464 160 -544 160 WIRE 720 160 704 160 WIRE 384 176 384 160 WIRE 544 176 544 -208 WIRE 544 176 448 176 WIRE 704 192 704 160 WIRE -464 208 -464 160 WIRE 176 272 128 272 WIRE -464 304 -464 288 WIRE 288 336 288 320 WIRE 288 336 256 336 WIRE -160 432 -160 208 WIRE 128 432 128 272 WIRE 128 432 112 432 WIRE -64 480 -80 480 WIRE 400 496 160 496 WIRE 160 528 160 496 WIRE 160 528 112 528 WIRE 208 528 160 528 FLAG -288 16 x_m FLAG -160 208 H_m FLAG -160 512 0 FLAG 368 -64 U_m FLAG 448 176 b_m FLAG -80 480 e_m FLAG 416 -128 0 FLAG -288 112 0 FLAG 384 80 0 FLAG -544 160 Sig IOPIN -544 160 In FLAG 1120 -48 PDM IOPIN 1120 -48 Out FLAG 208 528 CLK FLAG 704 272 0 FLAG 720 160 b_m-buf FLAG -544 0 Start IOPIN -544 0 In FLAG -464 112 0 FLAG 160 -16 CLK FLAG -64 -48 0 FLAG -96 -144 sum1 FLAG -64 112 0 FLAG -48 16 carry1 FLAG 288 240 0 FLAG 256 336 sum2 FLAG 384 176 ERR FLAG 176 272 sum2 FLAG 480 496 0 FLAG 688 64 0 FLAG -464 304 0 SYMBOL bv -160 528 M180 WINDOW 0 -53 18 VRight 0 WINDOW 3 -168 -32 Left 0 SYMATTR InstName BuffError SYMATTR Value V=delay(V(e_m),{Tbuf}) SYMBOL bv 416 -224 R0 WINDOW 3 148 411 VLeft 0 WINDOW 0 -39 -11 Left 0 SYMATTR Value V=if( V(U_m)>50&V(Carry1)>0,100,0 ) SYMATTR InstName BComparator SYMBOL bv -288 16 R0 WINDOW 3 -47 218 VLeft 0 SYMATTR Value V=(if( V(Start)>0.5,{LEVEL},0 )) SYMATTR InstName BLevel SYMBOL bv 384 64 M0 WINDOW 3 -156 -17 Left 0 WINDOW 0 -98 53 Left 0 SYMATTR Value V=if( V(Carry1)>0,V(U_m),0 ) SYMATTR InstName BError SYMBOL bv 704 176 R0 WINDOW 3 -54 137 Left 0 WINDOW 0 37 48 Left 0 SYMATTR Value V=if( V(U_m)>50&V(Carry1)>0,100,0 ) SYMATTR InstName Bout SYMBOL res -480 0 R0 SYMATTR InstName R1 SYMATTR Value 1G SYMBOL SpecialFunctions\\sample 256 -80 R0 WINDOW 3 -124 -105 Invisible 0 SYMATTR Value Vhigh=100 Vlow=-100 SYMATTR InstName A3 SYMBOL SpecialFunctions\\sample 32 464 M0 WINDOW 3 -89 -103 Invisible 0 SYMATTR Value Vhigh=100 Vlow=-100 SYMATTR InstName A6 SYMBOL bv -64 -144 R0 WINDOW 3 -105 132 Left 0 SYMATTR Value V=V(x_m)+V(H_m) SYMATTR InstName B5 SYMBOL bv -64 16 R0 WINDOW 0 30 39 Left 0 WINDOW 3 -127 125 Left 0 SYMATTR InstName B7 SYMATTR Value V=abs( V(x_m)+V(H_m) ) SYMBOL bv 288 336 M180 WINDOW 0 24 104 Left 0 WINDOW 3 -107 -32 Left 0 SYMATTR InstName B8 SYMATTR Value V=V(ERR)+V(b_m) SYMBOL bv 384 496 M90 WINDOW 0 -32 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName B_ddt_front SYMATTR Value V=IF( ddt( v(sig) ) >0, 1, 0 ) SYMBOL bv 688 -32 R0 WINDOW 3 -50 -45 Left 0 WINDOW 0 37 48 Left 0 SYMATTR Value V=if( V(sig)>0.5&V(b_m-buf)>50,V(sig),0 ) SYMATTR InstName BCompBuff1 SYMBOL res -480 304 M180 WINDOW 0 36 76 Left 0 WINDOW 3 36 40 Left 0 SYMATTR InstName R2 SYMATTR Value 1g TEXT -696 -88 Left 0 !.param LEVEL=95 Tbuf=2500n TEXT 896 104 Left 0 ;OUTPUT STAGE TEXT -64 -296 Left 0 ;THE ERROR DIFFUSION ALGORITM USED AS\n PULSE DENSITY MODULATION ALGO TEXT -104 -160 Left 0 ;ADDER BLOCK#1 TEXT 176 184 Left 0 ;ADDER BLOCK#2 TEXT -56 376 Left 0 ;Memory#2 TEXT 224 -184 Left 0 ;Memory#1 TEXT -696 -128 Left 0 ;SET LEVEL OF MODULATION TEXT -520 -40 Left 0 ;INPUT STAGE TEXT -320 -344 Left 0 ;Se for algo example http://www.ssau.ru/files/resources/npk2011.pdf p.250 Fig.1 RECTANGLE Normal 112 208 -192 -176 RECTANGLE Normal 464 160 160 400 RECTANGLE Normal 1072 352 640 -112 RECTANGLE Normal 128 576 -64 352 RECTANGLE Normal 352 16 160 -208 RECTANGLE Normal -368 320 -528 -64 RECTANGLE Normal 608 592 -352 -320