|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2496 (0x9c0)
Types: TextFile
Notes: Mikados_K
Names: »FFT2.K«
└─⟦d110b5765⟧ Bits:30005308 Eksamensopgave i dynamiske systemer med FFT
└─⟦this⟧ »FFT2.K«
SEGMENT PROCEDURE FFT2(VAR XR,XI:VEKTOR;
N,GAM:INTEGER);
(* HER FORETAGES FFT'EN
XR ER REALDELEN AF SIGNALET.
XI ER IMAGINAERDELEN
N ER ANTALLET AF SAMPLES
GAM 2 OPLOEFTET TIL GAM ER LIGMED N *)
CONST TOPI=6.2831853072;
TYPE INDEX= 1..256;
VAR N2,NHALV,K,L,I:INTEGER;
HELPINDEX:INDEX;
C,CDP,S,SDP,CGL,SGL,TR,TI,XRN2,XIN2,XRK,XIK,DP:REAL;
FUNCTION BITREV(J,GAM:INTEGER):INTEGER;
VAR I,J1,J2,K:INTEGER;
BEGIN
J1:=J;
K:=0;
FOR I:=1 TO GAM DO
BEGIN
J2:=J1 DIV 2;
K:=K*2+ (J1-2*J2);
J1:=J2;
END;
BITREV:=K;
END;
(* BIT REVERSERING AF DATA *)
BEGIN
CLEARSCREEN;
WRITELN('Bit reversering af data');
WRITE('Punkt nr.');
FOR K:=0 TO N-1 DO
BEGIN
GOTOXY(10,2);
WRITE(K);
I:=BITREV(K,GAM);
IF I>K THEN
BEGIN
TR:=XR(K);
TI:=XI(K);
XR(K):=XR(I);
XI(K):=XI(I);
XR(I):=TR;
XI(I):=TI;
END;
END;
IF TEST THEN
BEGIN
FOR I:=0 TO 15 DO WRITELN('XR(',I,')= ',XR(I));
READLN;
END;
(* START PAA SELVE(STE) FFT'EN *)
N2:=1;
K:=0;
NHALV:=N;
WRITELN;
WRITELN('SELVE FFT''EN STARTER');
WRITE('Trin nr.');
FOR L:=1 TO GAM DO
BEGIN
GOTOXY(10,4);
WRITE(L);
NHALV:=NHALV DIV 2;
DP:=TOPI*NHALV/N;
CDP:=COS(DP);
SDP:=SIN(DP);
IF TEST THEN
BEGIN
WRITELN('DP=',DP,' CDP= ',CDP,' SDP= ',SDP);
READLN;
END;
WHILE (K<N) DO
BEGIN
S:=0.0;
C:=1.0;
FOR I:=1 TO N2 DO
BEGIN
IF TEST THEN
BEGIN
WRITELN('S= ',S,' C= ',C,' I = ',I);
WRITELN('K= ',K,'N2= ',N2);
END;
HELPINDEX:=K+N2;
XRN2:=XR(HELPINDEX);
XIN2:=XI(HELPINDEX);
TR:=C*XRN2 - S*XIN2;
TI:=C*XIN2 + S*XRN2;
XRK:=XR(K);
XIK:=XI(K);
XR(HELPINDEX):=XRK - TR;
XI(HELPINDEX):=XIK - TI;
XR(K):=XRK + TR;
XI(K):=XIK + TI;
SGL:=S;
CGL:=C;
C:=CGL*CDP - SGL*SDP;
S:=CGL*SDP + SGL*CDP;
K:=K+1;
END;
IF TEST THEN
BEGIN
WRITELN('I L0KKE SLUT');
READLN;
END;
K:=K+N2;
END;
K:=0;
N2:=2*N2;
END;
WRITELN;
END;
0x000…02a Line {l1=0x28, l2=»SEGMENT PROCEDURE FFT2(VAR XR,XI:VEKTOR;«, l3=0x28}
0x02a…052 Line {l1=0x26, l2=» N,GAM:INTEGER);«, l3=0x26}
0x052…06d Line {l1=0x19, l2=» (* HER FORETAGES FFT'EN«, l3=0x19}
0x06d…090 Line {l1=0x21, l2=» XR ER REALDELEN AF SIGNALET.«, l3=0x21}
0x090…0ab Line {l1=0x19, l2=» XI ER IMAGINAERDELEN«, l3=0x19}
0x0ab…0ca Line {l1=0x1d, l2=» N ER ANTALLET AF SAMPLES«, l3=0x1d}
0x0ca…0fa Line {l1=0x2e, l2=» GAM 2 OPLOEFTET TIL GAM ER LIGMED N *)«, l3=0x2e}
0x0fa…114 Line {l1=0x18, l2=»CONST TOPI=6.2831853072;«, l3=0x18}
0x114…129 Line {l1=0x13, l2=»TYPE INDEX= 1..256;«, l3=0x13}
0x129…146 Line {l1=0x1b, l2=»VAR N2,NHALV,K,L,I:INTEGER;«, l3=0x1b}
0x146…15c Line {l1=0x14, l2=» HELPINDEX:INDEX;«, l3=0x14}
0x15c…196 Line {l1=0x38, l2=» C,CDP,S,SDP,CGL,SGL,TR,TI,XRN2,XIN2,XRK,XIK,DP:REAL;«, l3=0x38}
0x196…199 Line {l1=0x01, l2=» «, l3=0x01}
0x199…1c4 Line {l1=0x29, l2=» FUNCTION BITREV(J,GAM:INTEGER):INTEGER;«, l3=0x29}
0x1c4…1de Line {l1=0x18, l2=» VAR I,J1,J2,K:INTEGER;«, l3=0x18}
0x1de…1e7 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x1e7…1f3 Line {l1=0x0a, l2=» J1:=J;«, l3=0x0a}
0x1f3…1fe Line {l1=0x09, l2=» K:=0;«, l3=0x09}
0x1fe…216 Line {l1=0x16, l2=» FOR I:=1 TO GAM DO«, l3=0x16}
0x216…223 Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x223…238 Line {l1=0x13, l2=» J2:=J1 DIV 2;«, l3=0x13}
0x238…252 Line {l1=0x18, l2=» K:=K*2+ (J1-2*J2);«, l3=0x18}
0x252…261 Line {l1=0x0d, l2=» J1:=J2;«, l3=0x0d}
0x261…26d Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x26d…27b Line {l1=0x0c, l2=» BITREV:=K;«, l3=0x0c}
0x27b…283 Line {l1=0x06, l2=» END;«, l3=0x06}
0x283…287 Line {l1=0x02, l2=» «, l3=0x02}
0x287…2a9 Line {l1=0x20, l2=» (* BIT REVERSERING AF DATA *)«, l3=0x20}
0x2a9…2b2 Line {l1=0x07, l2=» BEGIN«, l3=0x07}
0x2b2…2c2 Line {l1=0x0e, l2=» CLEARSCREEN;«, l3=0x0e}
0x2c2…2e9 Line {l1=0x25, l2=» WRITELN('Bit reversering af data');«, l3=0x25}
0x2e9…300 Line {l1=0x15, l2=» WRITE('Punkt nr.');«, l3=0x15}
0x300…316 Line {l1=0x14, l2=» FOR K:=0 TO N-1 DO«, l3=0x14}
0x316…321 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x321…334 Line {l1=0x11, l2=» GOTOXY(10,2);«, l3=0x11}
0x334…343 Line {l1=0x0d, l2=» WRITE(K);«, l3=0x0d}
0x343…35a Line {l1=0x15, l2=» I:=BITREV(K,GAM);«, l3=0x15}
0x35a…36b Line {l1=0x0f, l2=» IF I>K THEN«, l3=0x0f}
0x36b…378 Line {l1=0x0b, l2=» BEGIN«, l3=0x0b}
0x378…38a Line {l1=0x10, l2=» TR:=XR(K);«, l3=0x10}
0x38a…39c Line {l1=0x10, l2=» TI:=XI(K);«, l3=0x10}
0x39c…3b1 Line {l1=0x13, l2=» XR(K):=XR(I);«, l3=0x13}
0x3b1…3c6 Line {l1=0x13, l2=» XI(K):=XI(I);«, l3=0x13}
0x3c6…3d8 Line {l1=0x10, l2=» XR(I):=TR;«, l3=0x10}
0x3d8…3ea Line {l1=0x10, l2=» XI(I):=TI;«, l3=0x10}
0x3ea…3f6 Line {l1=0x0a, l2=» END;«, l3=0x0a}
0x3f6…400 Line {l1=0x08, l2=» END;«, l3=0x08}
0x400…40e Line {l1=0x0c, l2=»IF TEST THEN«, l3=0x0c}
0x40e…415 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x415…446 Line {l1=0x2f, l2=»FOR I:=0 TO 15 DO WRITELN('XR(',I,')= ',XR(I));«, l3=0x2f}
0x446…44f Line {l1=0x07, l2=»READLN;«, l3=0x07}
0x44f…455 Line {l1=0x04, l2=»END;«, l3=0x04}
0x455…47b Line {l1=0x24, l2=» (* START PAA SELVE(STE) FFT'EN *)«, l3=0x24}
0x47b…485 Line {l1=0x08, l2=» N2:=1;«, l3=0x08}
0x485…48e Line {l1=0x07, l2=» K:=0;«, l3=0x07}
0x48e…49b Line {l1=0x0b, l2=» NHALV:=N;«, l3=0x0b}
0x49b…4a7 Line {l1=0x0a, l2=» WRITELN;«, l3=0x0a}
0x4a7…4cc Line {l1=0x23, l2=» WRITELN('SELVE FFT''EN STARTER');«, l3=0x23}
0x4cc…4e2 Line {l1=0x14, l2=» WRITE('Trin nr.');«, l3=0x14}
0x4e2…4f8 Line {l1=0x14, l2=» FOR L:=1 TO GAM DO«, l3=0x14}
0x4f8…503 Line {l1=0x09, l2=» BEGIN«, l3=0x09}
0x503…516 Line {l1=0x11, l2=» GOTOXY(10,4);«, l3=0x11}
0x516…525 Line {l1=0x0d, l2=» WRITE(L);«, l3=0x0d}
0x525…53e Line {l1=0x17, l2=» NHALV:=NHALV DIV 2;«, l3=0x17}
0x53e…555 Line {l1=0x15, l2=» DP:=TOPI*NHALV/N;«, l3=0x15}
0x555…568 Line {l1=0x11, l2=» CDP:=COS(DP);«, l3=0x11}
0x568…57b Line {l1=0x11, l2=» SDP:=SIN(DP);«, l3=0x11}
0x57b…589 Line {l1=0x0c, l2=»IF TEST THEN«, l3=0x0c}
0x589…590 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x590…5be Line {l1=0x2c, l2=»WRITELN('DP=',DP,' CDP= ',CDP,' SDP= ',SDP);«, l3=0x2c}
0x5be…5c7 Line {l1=0x07, l2=»READLN;«, l3=0x07}
0x5c7…5cd Line {l1=0x04, l2=»END;«, l3=0x04}
0x5cd…5df Line {l1=0x10, l2=» WHILE (K<N) DO«, l3=0x10}
0x5df…5ed Line {l1=0x0c, l2=» BEGIN«, l3=0x0c}
0x5ed…5fe Line {l1=0x0f, l2=» S:=0.0;«, l3=0x0f}
0x5fe…60f Line {l1=0x0f, l2=» C:=1.0;«, l3=0x0f}
0x60f…62a Line {l1=0x19, l2=» FOR I:=1 TO N2 DO«, l3=0x19}
0x62a…63b Line {l1=0x0f, l2=» BEGIN«, l3=0x0f}
0x63b…649 Line {l1=0x0c, l2=»IF TEST THEN«, l3=0x0c}
0x649…650 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x650…676 Line {l1=0x24, l2=»WRITELN('S= ',S,' C= ',C,' I = ',I);«, l3=0x24}
0x676…695 Line {l1=0x1d, l2=»WRITELN('K= ',K,'N2= ',N2);«, l3=0x1d}
0x695…69b Line {l1=0x04, l2=»END;«, l3=0x04}
0x69b…6b7 Line {l1=0x1a, l2=» HELPINDEX:=K+N2;«, l3=0x1a}
0x6b7…6d7 Line {l1=0x1e, l2=» XRN2:=XR(HELPINDEX);«, l3=0x1e}
0x6d7…6f7 Line {l1=0x1e, l2=» XIN2:=XI(HELPINDEX);«, l3=0x1e}
0x6f7…717 Line {l1=0x1e, l2=» TR:=C*XRN2 - S*XIN2;«, l3=0x1e}
0x717…737 Line {l1=0x1e, l2=» TI:=C*XIN2 + S*XRN2;«, l3=0x1e}
0x737…74e Line {l1=0x15, l2=» XRK:=XR(K);«, l3=0x15}
0x74e…765 Line {l1=0x15, l2=» XIK:=XI(K);«, l3=0x15}
0x765…789 Line {l1=0x22, l2=» XR(HELPINDEX):=XRK - TR;«, l3=0x22}
0x789…7ad Line {l1=0x22, l2=» XI(HELPINDEX):=XIK - TI;«, l3=0x22}
0x7ad…7c9 Line {l1=0x1a, l2=» XR(K):=XRK + TR;«, l3=0x1a}
0x7c9…7e5 Line {l1=0x1a, l2=» XI(K):=XIK + TI;«, l3=0x1a}
0x7e5…7f8 Line {l1=0x11, l2=» SGL:=S;«, l3=0x11}
0x7f8…80b Line {l1=0x11, l2=» CGL:=C;«, l3=0x11}
0x80b…82c Line {l1=0x1f, l2=» C:=CGL*CDP - SGL*SDP;«, l3=0x1f}
0x82c…84d Line {l1=0x1f, l2=» S:=CGL*SDP + SGL*CDP;«, l3=0x1f}
0x84d…860 Line {l1=0x11, l2=» K:=K+1;«, l3=0x11}
0x860…870 Line {l1=0x0e, l2=» END;«, l3=0x0e}
0x870…87e Line {l1=0x0c, l2=»IF TEST THEN«, l3=0x0c}
0x87e…885 Line {l1=0x05, l2=»BEGIN«, l3=0x05}
0x885…89f Line {l1=0x18, l2=»WRITELN('I L0KKE SLUT');«, l3=0x18}
0x89f…8a8 Line {l1=0x07, l2=»READLN;«, l3=0x07}
0x8a8…8ae Line {l1=0x04, l2=»END;«, l3=0x04}
0x8ae…8c0 Line {l1=0x10, l2=» K:=K+N2;«, l3=0x10}
0x8c0…8ce Line {l1=0x0c, l2=» END;«, l3=0x0c}
0x8ce…8d9 Line {l1=0x09, l2=» K:=0;«, l3=0x09}
0x8d9…8e8 Line {l1=0x0d, l2=» N2:=2*N2;«, l3=0x0d}
0x8e8…8f2 Line {l1=0x08, l2=» END;«, l3=0x08}
0x8f2…8fe Line {l1=0x0a, l2=» WRITELN;«, l3=0x0a}
0x8fe…906 Line {l1=0x06, l2=» END;«, l3=0x06}
0x906…90c Line {l1=0x04, l2=» «, l3=0x04}
0x90c…920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆
0x920…940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆
[…0x4…]