Step_DFT - fini et testé avec signal test de k=5, A=1/2, M=64

This commit is contained in:
Marie Brunetto 2023-05-22 11:47:17 +02:00
parent e6a35c8006
commit 017d1129dc
4 changed files with 129 additions and 78 deletions

View file

@ -23,18 +23,20 @@
DFT_ModuleAuCarre proc DFT_ModuleAuCarre proc
push {lr} push {lr}
;partie reelle ;partie reelle
;push {r0} push {r0}
ldr r2,=TabCos ldr r2,=TabCos
bl DFT_Partie bl DFT_Partie
;mov r3 ,r0 mov r3 ,r0
;partie imaginaire ;partie imaginaire
;pop {r0} pop {r0}
;ldr r2,=TabSin ldr r2,=TabSin
;bl DFT_Partie bl DFT_Partie
; calcul dft ; calcul dft
;mul r0, r0 asr r0, #16 ; 7.9
;mul r3, r3 mul r0, r0 ; 14.18
;add r0, r3 asr r3, #16 ; 7.9
mul r3, r3 ; 14.18
add r0, r3 ; 13.19
pop {pc} pop {pc}
endp endp

View file

@ -1,68 +1,68 @@
AREA Signal, DATA, READONLY AREA Signal, DATA, READONLY
export LeSignal export LeSignal
LeSignal LeSignal
DCW 0x0fff ; 0 4095 0.99976 DCW 0x0800 ; 0 2048 0.50000
DCW 0x0ff6 ; 1 4086 0.99756 DCW 0x043b ; 1 1083 0.26440
DCW 0x0fd9 ; 2 4057 0.99048 DCW 0x0159 ; 2 345 0.08423
DCW 0x0fa8 ; 3 4008 0.97852 DCW 0x000a ; 3 10 0.00244
DCW 0x0f64 ; 4 3940 0.96191 DCW 0x009c ; 4 156 0.03809
DCW 0x0f0e ; 5 3854 0.94092 DCW 0x02ed ; 5 749 0.18286
DCW 0x0ea7 ; 6 3751 0.91577 DCW 0x0670 ; 6 1648 0.40234
DCW 0x0e2f ; 7 3631 0.88647 DCW 0x0a53 ; 7 2643 0.64526
DCW 0x0da8 ; 8 3496 0.85352 DCW 0x0da8 ; 8 3496 0.85352
DCW 0x0d13 ; 9 3347 0.81714 DCW 0x0fa8 ; 9 4008 0.97852
DCW 0x0c72 ; 10 3186 0.77783 DCW 0x0fd9 ; 10 4057 0.99048
DCW 0x0bc5 ; 11 3013 0.73560 DCW 0x0e2f ; 11 3631 0.88647
DCW 0x0b10 ; 12 2832 0.69141 DCW 0x0b10 ; 12 2832 0.69141
DCW 0x0a53 ; 13 2643 0.64526 DCW 0x0737 ; 13 1847 0.45093
DCW 0x0990 ; 14 2448 0.59766 DCW 0x038e ; 14 910 0.22217
DCW 0x08c9 ; 15 2249 0.54907 DCW 0x00f2 ; 15 242 0.05908
DCW 0x0800 ; 16 2048 0.50000 DCW 0x0000 ; 16 0 0.00000
DCW 0x0737 ; 17 1847 0.45093 DCW 0x00f2 ; 17 242 0.05908
DCW 0x0670 ; 18 1648 0.40234 DCW 0x038e ; 18 910 0.22217
DCW 0x05ad ; 19 1453 0.35474 DCW 0x0737 ; 19 1847 0.45093
DCW 0x04f0 ; 20 1264 0.30859 DCW 0x0b10 ; 20 2832 0.69141
DCW 0x043b ; 21 1083 0.26440 DCW 0x0e2f ; 21 3631 0.88647
DCW 0x038e ; 22 910 0.22217 DCW 0x0fd9 ; 22 4057 0.99048
DCW 0x02ed ; 23 749 0.18286 DCW 0x0fa8 ; 23 4008 0.97852
DCW 0x0258 ; 24 600 0.14648 DCW 0x0da8 ; 24 3496 0.85352
DCW 0x01d1 ; 25 465 0.11353 DCW 0x0a53 ; 25 2643 0.64526
DCW 0x0159 ; 26 345 0.08423 DCW 0x0670 ; 26 1648 0.40234
DCW 0x00f2 ; 27 242 0.05908 DCW 0x02ed ; 27 749 0.18286
DCW 0x009c ; 28 156 0.03809 DCW 0x009c ; 28 156 0.03809
DCW 0x0058 ; 29 88 0.02148 DCW 0x000a ; 29 10 0.00244
DCW 0x0027 ; 30 39 0.00952 DCW 0x0159 ; 30 345 0.08423
DCW 0x000a ; 31 10 0.00244 DCW 0x043b ; 31 1083 0.26440
DCW 0x0000 ; 32 0 0.00000 DCW 0x0800 ; 32 2048 0.50000
DCW 0x000a ; 33 10 0.00244 DCW 0x0bc5 ; 33 3013 0.73560
DCW 0x0027 ; 34 39 0.00952 DCW 0x0ea7 ; 34 3751 0.91577
DCW 0x0058 ; 35 88 0.02148 DCW 0x0ff6 ; 35 4086 0.99756
DCW 0x009c ; 36 156 0.03809 DCW 0x0f64 ; 36 3940 0.96191
DCW 0x00f2 ; 37 242 0.05908 DCW 0x0d13 ; 37 3347 0.81714
DCW 0x0159 ; 38 345 0.08423 DCW 0x0990 ; 38 2448 0.59766
DCW 0x01d1 ; 39 465 0.11353 DCW 0x05ad ; 39 1453 0.35474
DCW 0x0258 ; 40 600 0.14648 DCW 0x0258 ; 40 600 0.14648
DCW 0x02ed ; 41 749 0.18286 DCW 0x0058 ; 41 88 0.02148
DCW 0x038e ; 42 910 0.22217 DCW 0x0027 ; 42 39 0.00952
DCW 0x043b ; 43 1083 0.26440 DCW 0x01d1 ; 43 465 0.11353
DCW 0x04f0 ; 44 1264 0.30859 DCW 0x04f0 ; 44 1264 0.30859
DCW 0x05ad ; 45 1453 0.35474 DCW 0x08c9 ; 45 2249 0.54907
DCW 0x0670 ; 46 1648 0.40234 DCW 0x0c72 ; 46 3186 0.77783
DCW 0x0737 ; 47 1847 0.45093 DCW 0x0f0e ; 47 3854 0.94092
DCW 0x0800 ; 48 2048 0.50000 DCW 0x0fff ; 48 4095 0.99976
DCW 0x08c9 ; 49 2249 0.54907 DCW 0x0f0e ; 49 3854 0.94092
DCW 0x0990 ; 50 2448 0.59766 DCW 0x0c72 ; 50 3186 0.77783
DCW 0x0a53 ; 51 2643 0.64526 DCW 0x08c9 ; 51 2249 0.54907
DCW 0x0b10 ; 52 2832 0.69141 DCW 0x04f0 ; 52 1264 0.30859
DCW 0x0bc5 ; 53 3013 0.73560 DCW 0x01d1 ; 53 465 0.11353
DCW 0x0c72 ; 54 3186 0.77783 DCW 0x0027 ; 54 39 0.00952
DCW 0x0d13 ; 55 3347 0.81714 DCW 0x0058 ; 55 88 0.02148
DCW 0x0da8 ; 56 3496 0.85352 DCW 0x0258 ; 56 600 0.14648
DCW 0x0e2f ; 57 3631 0.88647 DCW 0x05ad ; 57 1453 0.35474
DCW 0x0ea7 ; 58 3751 0.91577 DCW 0x0990 ; 58 2448 0.59766
DCW 0x0f0e ; 59 3854 0.94092 DCW 0x0d13 ; 59 3347 0.81714
DCW 0x0f64 ; 60 3940 0.96191 DCW 0x0f64 ; 60 3940 0.96191
DCW 0x0fa8 ; 61 4008 0.97852 DCW 0x0ff6 ; 61 4086 0.99756
DCW 0x0fd9 ; 62 4057 0.99048 DCW 0x0ea7 ; 62 3751 0.91577
DCW 0x0ff6 ; 63 4086 0.99756 DCW 0x0bc5 ; 63 3013 0.73560
END END

View file

@ -1,12 +1,13 @@
#define MSURDEUX 32
#include "DriverJeuLaser.h" #include "DriverJeuLaser.h"
#include <stdio.h>
int DFT_ModuleAuCarre( short int * Signal64ech, char k); int DFT_ModuleAuCarre( short int * Signal64ech, char k);
extern short int LeSignal; extern short int LeSignal;
int tab [64]; int tab [MSURDEUX];
int main(void) int main(void)
{ {
@ -20,10 +21,11 @@ int main(void)
//============================================================================ //============================================================================
for (int i=0;i<64;i++) for (int i=0;i<MSURDEUX-1;i++)
{ {
char k = (char)i; char k = (char)i+1;
tab[i]= DFT_ModuleAuCarre( &LeSignal, k); tab[i]= DFT_ModuleAuCarre( &LeSignal, k);
//printf("k=%d : %d \n",i,tab[i]);
} }
while (1) while (1)

View file

@ -157,9 +157,9 @@
<Bp> <Bp>
<Number>0</Number> <Number>0</Number>
<Type>0</Type> <Type>0</Type>
<LineNumber>29</LineNumber> <LineNumber>31</LineNumber>
<EnabledFlag>1</EnabledFlag> <EnabledFlag>1</EnabledFlag>
<Address>134218158</Address> <Address>134218160</Address>
<ByteObject>0</ByteObject> <ByteObject>0</ByteObject>
<HtxType>0</HtxType> <HtxType>0</HtxType>
<ManyObjects>0</ManyObjects> <ManyObjects>0</ManyObjects>
@ -168,7 +168,39 @@
<BreakIfRCount>1</BreakIfRCount> <BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\principal.c</Filename> <Filename>.\Src\principal.c</Filename>
<ExecCommand></ExecCommand> <ExecCommand></ExecCommand>
<Expression>\\\Src/principal.c\29</Expression> <Expression>\\\Src/principal.c\31</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>24</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134218172</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\Src\DFT.s</Filename>
<ExecCommand></ExecCommand>
<Expression>\\StepDFT\Src/DFT.s\24</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>28</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\Src\principal.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp> </Bp>
</Breakpoint> </Breakpoint>
<WatchWindow1> <WatchWindow1>
@ -185,24 +217,39 @@
<Ww> <Ww>
<count>2</count> <count>2</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>r0,0x0A</ItemText> <ItemText>r0,0x10</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>3</count> <count>3</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>i,0x0A</ItemText> <ItemText>r3,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>4</count> <count>4</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>k,0x0A</ItemText> <ItemText>r5,0x0A</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>signal[0]</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>tab[0]</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>tab[1]</ItemText>
</Ww> </Ww>
</WatchWindow1> </WatchWindow1>
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<SubType>0</SubType> <SubType>0</SubType>
<ItemText>tab</ItemText> <ItemText>r0</ItemText>
<AccSizeX>0</AccSizeX> <AccSizeX>0</AccSizeX>
</Mm> </Mm>
</MemoryWindow1> </MemoryWindow1>
@ -226,7 +273,7 @@
<AscS3>0</AscS3> <AscS3>0</AscS3>
<aSer3>0</aSer3> <aSer3>0</aSer3>
<eProf>0</eProf> <eProf>0</eProf>
<aLa>1</aLa> <aLa>0</aLa>
<aPa1>0</aPa1> <aPa1>0</aPa1>
<AscS4>0</AscS4> <AscS4>0</AscS4>
<aSer4>0</aSer4> <aSer4>0</aSer4>