Quelltext ist noch mit dem Programm DEMOGRAF verbunden.
Man kann es mit DELETE 10,450 löschen und anschließend das
Hauptprogramm mit RUN 10 starten.
Beschreibung FOURIER
Dieses Programm dient der Untersuchung von oszillografierten Signalen
auf ihre harmonischen Frequenzanteile hin.
Die Ein-und Ausgaben sind BS-Skalen-orientiert, bis auf das Diagramm,
es ist %-ual, der max. analysierte Anteil ist 100%. Die geforderten
Eingaben beziehen sich relativ auf den betrachteten Nulldurchgang, ab
dann eine ganze Periode
Die Startzeile ist 10 .
Viel Erfolg ! M.Voigt,Magdeburg
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
10 GOTO 130
20 POKE 16378,Z:POKE 16379,S:CALL 16224
30 RETURN
40 FOR L=0 TO 2*PI STEP .04:S=XA+INT(COS(L)*XE+.5):Z=YA+INT(SIN(L)*XE+.5)
50 GOSUB 20
60 NEXT L
70 RETURN
80 IF XE=XA THEN XE=XE+.1
82 TS=XE-XA:T=(YE-YA)/TS:TS=ABS(TS/80)
83 IF XA>XE THEN TS=-TS
85 FOR L=XA TO XE STEP TS
90 Z=INT(T*(L-XA)+YA+.5):S=INT(L+.5)
100 GOSUB 20
110 NEXT L
120 RETURN
130 CLS
140 PRINT:PRINT " DEMONSTRATION ZUM HC-BASIC+PSET"
150 PRINT:PRINT "Dieses BASIC ist das normale":PRINT
160 PRINT "robotron-HC-BASIC mit den Funk-":PRINT
170 PRINT "tionstasten S4+":PRINT
180 PRINT "A-AUTO":PRINT "C-CONTINUE":PRINT "D-DELETE":PRINT "I-INSERT":PRINT "J-CLEARLINE"
190 PRINT "K-STOP":PRINT "L-LIST":PRINT "N-RENUMBER":PRINT "P-PAUSE"
200 PRINT "R-RUN":PRINT "V-KURSOR an den Zeilenanfang"
210 PRINT "W-KURSOR an das Zeilenende":PRINT:PRINT "-alles ohne Parameter."
220 PRINT:PRINT:PRINT:PRINT TAB(15);:INPUT "<ENTER>";L:CLS
230 PRINT:PRINT "An dieses BASIC wurden zwei":PRINT:PRINT "Routinen angehaengt,welche"
235 PRINT
240 PRINT "im Textpuffer stehen und beim":PRINT:PRINT "ersten Kaltstart aktiviert"
250 PRINT:PRINT "und dann abgehaengt werden.":PRINT
255 PRINT "Die NMI-TASTE wird auf BRK pro-":PRINT
260 PRINT "grammiert und das PSET-Programm":PRINT
270 PRINT "am oberen RAM-Ende installiert.":PRINT
280 PRINT "Das UP ist A0H lang woraus sich":PRINT
290 PRINT "fuer 16k RAM ein MEMORYSIZE von":PRINT
300 PRINT "16222 ergibt.Benutzt wird":PRINT
310 PRINT "der 4. Quadrant,also 1,1 ist":PRINT
320 PRINT "links oben (wie PRINTAT),die":PRINT
330 PRINT "Aufteilung 63x63 Punkte.":PRINT
340 PRINT TAB(15);:INPUT "<ENTER>";L:CLS
350 PRINT:PRINT "Die Zeile wird in 16378 ge-":PRINT
360 PRINT "pokt,die Spalte in 16379.":PRINT:PRINT "Aufruf dann mit CALL 16224.":PRINT
370 PRINT "Fuer Erweiterte:Das UP steht":PRINT
380 PRINT "dann in 3F60-3FFF,das NWT ist":PRINT
390 PRINT "nicht aenderbar,das HWT ist in":PRINT
400 PRINT "folgende Zellen einzutragen:":PRINT
410 PRINT "(vor erstem BASIC-Kaltstart":PRINT:PRINT "nach dem Laden!)":PRINT
420 PRINT "2B0D,-2B,-34,-76 .":PRINT
430 PRINT "Die UPs in Basic sind":PRINT:PRINT "PSET (Z,S Start Z.20)":PRINT
435 PRINT "LINE (XA,XE,YA,YE Start Z.40)":PRINT
440 PRINT "CIRCLE (XA,YA,XE>r Start Z.80)":PRINT
450 PRINT "Viel Erfolg M.Voigt,Magdeburg":PRINT
5 GOTO 460
10 WINDOW:DIM S(3,38):DIM T(3,38):CLS:PRINT
20 PRINT "FOURIER-ANALYSE de Y39QG":PRINT "---------------":PRINT
30 PRINT "ISME-SOFTWARE":PRINT:PRINT
40 PRINT AT (7,3);"MOMENT..."
50 FOR L=0 TO 360 STEP 10:P=L/10:Q=2*PI*L/360
60 S(1,P)=SIN(Q):T(1,P)=COS(Q):NEXT L
70 FOR L=0 TO 360 STEP 15:P=INT(L/10):Q=2*PI*L/360
80 S(2,P)=SIN(Q):T(2,P)=COS(Q):NEXT L
90 DIM Y(37):DIM P(37):DIM A(20):DIM B(20):DIM C(20)
100 CALL-2376:INPUT "GRUNDFREQUENZ? (ZAHL) ";F
110 CALL-2363:INPUT "GRUNDFREQUENZEINHEIT ";E$
120 CALL-2376:INPUT "PERIODENDAUER in Skt ";ST
130 INPUT "SEHR GENAU ? x1,2,3 ";G
140 IF G=2 THEN W=2 :ELSE W=1
150 G=G*12:N=G/2
160 CLS:PRINT:PRINT "EINGABE DER KURVE:"
170 FOR L=1 TO G
180 P=ST*L/G+.05:P1=INT(10*(P-INT(P))):P=INT(P)+P1/10
190 PRINT "Y-Skt BEI"P;:PRINT TAB(16);"Skt";:INPUT Y(L)
200 A0=A0+Y(L):NEXT L
210 A0=A0/G:Q=INT(100*(A0-INT(A0))):A0=INT(A0)+Q/100
220 CLS:PRINT:PRINT "VORSPANNUNG:"A0 "Skt":PRINT
230 FOR L=1 TO N
240 FOR P=1 TO G
250 X=INT((L*P/N-2*INT(L*P/G))*18)
260 A(L)=A(L)+T(W,X)*Y(P):B(L)=B(L)+S(W,X)*Y(P):NEXT P
270 C(L)=SQR(A(L)*A(L)/(N*N)+B(L)*B(L)/(N*N)):Q=INT(100*(C(L)-INT(C(L))))
280 C(L)=(INT(C(L))+Q/100):PRINT L*F;:PRINT TAB(9);E$ " mit";
290 PRINT TAB(19);C(L);:PRINT TAB(28);"Skt":IF C(L)>H THEN H=C(L)
300 NEXT L
310 INPUT L
320 WINDOW 2,31,0,18:CLS:FOR L=1 TO N
330 Q=INT(30.5-C(L)*28/H)
340 FOR P=30 TO Q STEP -1
350 PRINT AT (P,L);"#":GOTO 360:""
360 NEXT P
370 NEXT L
380 PRINT AT (31,1);"G23456789012345678"
390 FOR L=(N+1) TO 20
400 PRINT AT (31,L);" "
410 NEXT L
420 PRINT AT (31,20);"HARMONISCHE":CALL-2363
430 WINDOW 22,24,20,31:INPUT "WEITER ? W";E$
440 IF E$="W" THEN WINDOW:CLS:RUN 100:ELSE GOTO 450
450 WINDOW:CLS:END
460 CLS:PRINT:PRINT " Beschreibung FOURIER":PRINT
470 PRINT "Dieses Programm dient der":PRINT
490 PRINT "Untersuchung von oszillogra-":PRINT
500 PRINT "fierten Signalen auf ihre":PRINT
510 PRINT "harmonischen Frequenzanteile":PRINT
520 PRINT "hin.Die Ein-und Ausgaben sind":PRINT
530 PRINT "BS-Skalen-orientiert , bis auf":PRINT
540 PRINT "das Diagramm , es ist %-ual,":PRINT
550 PRINT "der max. analysierte Anteil":PRINT
560 PRINT "ist 100% . Die geforderten":PRINT
570 PRINT "Eingaben beziehen sich relativ":PRINT
580 PRINT "auf den betrachteten Nulldurch-":PRINT
590 PRINT "gang,ab dann eine ganze Periode":PRINT
600 PRINT "Die Startzeile ist 10 .":PRINT
610 PRINT "Viel Erfolg ! M.Voigt,Magdeburg":PRINT