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
add r4, #1 ; ++n
cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire
blt SumLoop ; if n < 64 refaire
mov r0, r3 ; 5.27
smull r0, r9, r3, r3 ; reel*reel

View file

@ -24,7 +24,7 @@
export DFT_ModuleAuCarre
;for i in 0...63
;signal[i]*Cos[k*i]
;signal[i]*Cos[k*i] +=
DFT_ModuleAuCarre proc
push {r4, r5, r6, r8, r9, r10} ;
@ -36,25 +36,31 @@ DFT_ModuleAuCarre proc
ldr r6, =TabSin ; les adresses du tableau "TabSin"
SumLoop
ldrsh r8, [r0, r4, lsl #1] ; Chargement des éléments du signal d'entrée
ldrsh r9, [r5, r7, lsl #1] ;Cos
ldrsh r10,[r6, r7, lsl #1] ;Sin
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
add r3, r3, r9 ; Mise à jour des parties réelles et imaginaires du résultat.
add r2, r2, r10
ldrsh r8, [r0, r4, lsl #1] ; Chargement des éléments du signal d'entrée 4.12
ldrsh r9, [r5, r7, lsl #1] ;Cos 1.15
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 r10, r8, r10 ;5.27
asr r9, #6
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
and r7, #0x3F ; mod 64
add r4, #1 ; ++n
add r4, r4, #1 ; ++n
cmp r4, #64 ;
bcc SumLoop ; if n < 64 refaire
blt SumLoop ; if n < 64 refaire
mov r0, r3 ; 5.27
smull r0, r9, r3, r3 ; reel*reel
mov r0, r3 ; 5.27 reel
asr r3, #16
mul r9, r3, r3 ; reel*reel
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
;mov r0, r2 ;test im
pop {r4, r5, r6, r8, r9, r10}
bx lr

View file

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