This commit is contained in:
Boyu Fu 2023-05-16 18:23:47 +02:00
parent 3a906d3fcc
commit a045d8be1e
3 changed files with 25 additions and 14 deletions

View file

@ -48,7 +48,7 @@ SumLoop
and r7, #0x3F ; mod 64 and r7, #0x3F ; mod 64
add r4, #1 ; ++n add r4, #1 ; ++n
cmp r4, #64 ; cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire blt SumLoop ; if n < 64 refaire
mov r0, r3 ; 5.27 mov r0, r3 ; 5.27
smull r0, r9, r3, r3 ; reel*reel smull r0, r9, r3, r3 ; reel*reel

View file

@ -24,7 +24,7 @@
export DFT_ModuleAuCarre export DFT_ModuleAuCarre
;for i in 0...63 ;for i in 0...63
;signal[i]*Cos[k*i] ;signal[i]*Cos[k*i] +=
DFT_ModuleAuCarre proc DFT_ModuleAuCarre proc
push {r4, r5, r6, r8, r9, r10} ; push {r4, r5, r6, r8, r9, r10} ;
@ -36,25 +36,31 @@ DFT_ModuleAuCarre proc
ldr r6, =TabSin ; les adresses du tableau "TabSin" ldr r6, =TabSin ; les adresses du tableau "TabSin"
SumLoop SumLoop
ldrsh r8, [r0, r4, lsl #1] ; Chargement des éléments du signal d'entrée ldrsh r8, [r0, r4, lsl #1] ; Chargement des éléments du signal d'entrée 4.12
ldrsh r9, [r5, r7, lsl #1] ;Cos ldrsh r9, [r5, r7, lsl #1] ;Cos 1.15
ldrsh r10,[r6, r7, lsl #1] ;Sin ldrsh r10,[r6, r7, lsl #1] ;Sin 1.15
mul r9, r8, r9 ; Multiplication de l'élément du signal d'entrée avec l'élément correspondant des tableaux "TabCos" et "TabSin" (en utilisant une multiplication longue pour éviter la saturation). mul r9, r8, r9 ;* Multiplication de l'élément du signal d'entrée avec l'élément correspondant des tableaux "TabCos" et "TabSin" (en utilisant une multiplication longue pour éviter la saturation).
mul r10, r8, r10 mul r10, r8, r10 ;5.27
add r3, r3, r9 ; Mise à jour des parties réelles et imaginaires du résultat. asr r9, #6
add r2, r2, r10 asr r10, #6
add r3, r3, r9 ; +=Mise à jour des parties réelles et imaginaires du résultat.
add r2, r2, r10 ;5+6 11.21
mul r7, r4, r1 ; i*k mul r7, r4, r1 ; i*k
and r7, #0x3F ; mod 64 and r7, #0x3F ; mod 64
add r4, #1 ; ++n add r4, r4, #1 ; ++n
cmp r4, #64 ; cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire blt SumLoop ; if n < 64 refaire
mov r0, r3 ; 5.27 mov r0, r3 ; 5.27 reel
smull r0, r9, r3, r3 ; reel*reel asr r3, #16
mul r9, r3, r3 ; reel*reel
mov r0, r9 mov r0, r9
smull r0, r10, r2, r2 ; im*im asr r2, #16
mul r10, r2, r2 ; im*im
add r0, r9, r10 ; 10.22 add r0, r9, r10 ; 10.22
;mov r0, r2 ;test im
pop {r4, r5, r6, r8, r9, r10} pop {r4, r5, r6, r8, r9, r10}
bx lr bx lr

View file

@ -165,6 +165,11 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>test[k]</ItemText> <ItemText>test[k]</ItemText>
</Ww> </Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>\\StepDFT\Src/principal.c\test[32]</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>