forked from acco/chti23
asr
This commit is contained in:
parent
3a906d3fcc
commit
a045d8be1e
3 changed files with 25 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue