forked from acco/chti23
Update 'soft/PjtKEIL_StepDFT/Src/DFT.s'
This commit is contained in:
parent
a289b39dab
commit
4d5df875ef
1 changed files with 16 additions and 16 deletions
|
@ -23,7 +23,7 @@ PRESERVE8
|
||||||
|
|
||||||
export DFT_ModuleAuCarre
|
export DFT_ModuleAuCarre
|
||||||
DFT_ModuleAuCarre proc
|
DFT_ModuleAuCarre proc
|
||||||
push{r4-r10}; sauvegarde des registres dans la pile
|
push{r4-r10}; Sauvegarde des registres r4 à r10 dans la pile
|
||||||
mov r2, #0 ;initialisation de la partie imaginaire à zero
|
mov r2, #0 ;initialisation de la partie imaginaire à zero
|
||||||
mov r3, #0 ;initialisation de la partie relle à zero
|
mov r3, #0 ;initialisation de la partie relle à zero
|
||||||
mov r7 ,#0 ;initialisation de p(=n*k) à zero
|
mov r7 ,#0 ;initialisation de p(=n*k) à zero
|
||||||
|
@ -37,25 +37,25 @@ Sommation
|
||||||
ldrsh r8,[r0, r4, lsl#1] ; chargement du LeSignal[n] dans r8
|
ldrsh r8,[r0, r4, lsl#1] ; chargement du LeSignal[n] dans r8
|
||||||
ldrsh r9,[r5, r7, lsl #1] ; chargement de TabCos[p] dans r9
|
ldrsh r9,[r5, r7, lsl #1] ; chargement de TabCos[p] dans r9
|
||||||
ldrsh r10,[r6, r7, lsl #1] ; chargement de TabSin[p] dans r10
|
ldrsh r10,[r6, r7, lsl #1] ; chargement de TabSin[p] dans r10
|
||||||
mul r9, r8, r9 ; multiplication de LeSignal[n] par TabCos[n*k]-->5.27
|
mul r9, r8, r9 ; multiplication de LeSignal[n] par TabCos[n*k]--> Format 5.27
|
||||||
mul r10, r8, r10 ; multiplication de LeSignal[n] par TabSin[n*k] -->5.27
|
mul r10, r8, r10 ; multiplication de LeSignal[n] par TabSin[n*k] --> Format 5.27
|
||||||
asr r9, #16 ; -->format 5.11 me probleme de debordement
|
asr r9, #16 ; Réduction du format pour éviter le débordement
|
||||||
asr r10,#16 ;-->format 5.11
|
asr r10,#16 ; Réduction du format pour éviter le débordement
|
||||||
add r3,r3, r9 ;ajout de la partie réelle au résultat (conservation du format) -->11.11
|
add r3,r3, r9 ; ajout de la partie réelle au résultat (conservation du format) --> Format 11.11
|
||||||
add r2,r2, r10 ;ajout de la partie imaginaire au résultat (conservation du format) -->11.11 a cause de 64 additions
|
add r2,r2, r10 ; ajout de la partie imaginaire au résultat (conservation du format) --> Format 11.11
|
||||||
|
|
||||||
add r7, r1 ; ajout de k à n*k ce qui fait p= (n+1)*k
|
add r7, r1 ; Calcul de p = (n+1) * k
|
||||||
and r7, 63 ;modulo 64 pour ne pas depasser la taille du tableau
|
and r7, 63 ; modulo 64 pour ne pas depasser la taille du tableau
|
||||||
add r4, r4, #1 ; incrémentation de l'indice n
|
add r4, r4, #1 ; incrémentation de l'indice n
|
||||||
cmp r4 ,#64 ; comparaison de n à 64
|
cmp r4 ,#64 ; comparaison de n à 64
|
||||||
blt Sommation ; si n<64 on recommence la boucle
|
blt Sommation ; si n<64 on continue la boucle
|
||||||
|
|
||||||
asr r3, #6 ; décalage de 10 bits vers la droite pour rétablir le format --> 11.5
|
asr r3, #6 ; Réduction du format de la partie réelle pour le calcul au carré --> Format 11.5 (décalage 10 bits)
|
||||||
mul r3, r3, r3 ; la partie relle au carre -->10.22
|
mul r3, r3, r3 ; Calcul du carré de la partie réelle --> Format 10.22
|
||||||
asr r2, #6 ; décalage de 10 bits vers la droite pour rétablir le format -->11.5
|
asr r2, #6 ; Réduction du format de la partie imaginaire pour le calcul au carré --> Format 11.5 (décalage 10 bits)
|
||||||
mul r2, r2, r2 ; la partie imaginaire au carre -->22.10
|
mul r2, r2, r2 ; Calcul du carré de la partie réelle --> Format 22.10
|
||||||
mov r0, r3 ; copie de la partie rélle dans r0
|
mov r0, r3 ; Copie de la partie réelle dans le registre r0
|
||||||
add r0, r0, r2 ; addition de la partie imaginaire dans r0 forme final--> 22.10
|
add r0, r0, r2 ; Addition de la partie imaginaire dans r0 (résultat final) --> Format 22.10
|
||||||
|
|
||||||
pop{r4-r10} ; restauration des registres depuis la pile
|
pop{r4-r10} ; restauration des registres depuis la pile
|
||||||
bx lr
|
bx lr
|
||||||
|
|
Loading…
Reference in a new issue