Correction du format + ajout de la constante N
This commit is contained in:
parent
4b88d9e615
commit
181edb6831
1 changed files with 13 additions and 12 deletions
|
@ -1,20 +1,20 @@
|
|||
thumb
|
||||
AREA moncode, code, readonly
|
||||
export dft
|
||||
extern N
|
||||
N equ 64
|
||||
|
||||
dft proc
|
||||
push {lr, r4, r5, r0} ; empilage de l'adresse de retour
|
||||
ldr r2, =TabCos ; on met l'addr de TabCos
|
||||
bl cal_comp ; on calcule Re(k)
|
||||
smull r4, r5, r0, r0 ; r4r5 = Re(k)² | format : 2.30
|
||||
bl cal_comp ; on calcule Re(k) | format : 5.28
|
||||
smull r4, r5, r0, r0 ; (r4,r5) = Re(k)² | format : 10.54
|
||||
|
||||
pop {r0}
|
||||
ldr r2, =TabSin ; on met l'addr de TabSin
|
||||
bl cal_comp ; on calcule -Im(k)
|
||||
smlal r4, r5, r0, r0 ; r4r5 = Re(k)² + Im(k)² | format : 2.30
|
||||
bl cal_comp ; on calcule -Im(k) | format : 5.28
|
||||
smlal r4, r5, r0, r0 ; (r4,r5) = Re(k)² + Im(k)² | format : 10.54
|
||||
|
||||
mov r0, r5 ; On prend les 32 bits de poids fort pour revenir au format 1.15
|
||||
mov r0, r5 ; On prend les 32 bits de poids fort pour convertir au format 10.22/3.29 ?
|
||||
|
||||
pop {pc, r4, r5} ; dépilage de l'adresse de retour
|
||||
endp
|
||||
|
@ -26,18 +26,18 @@ cal_comp proc ; r0 = x (signal), r1 = k, r2 = sin ou cos
|
|||
mov r5, #0 ; r5 = ik
|
||||
mov r7, #0 ; r7 = 0
|
||||
|
||||
deb_somme ldrh r4, [r0, r3, LSL #1] ; r4 = x[i], LSL #1 pour faire ×2 car chaque valeur est sur 2 octets
|
||||
ldrsh r6, [r2, r5, LSL #1] ; r6 = cos ou sin [ik%N]
|
||||
mla r7, r4, r6, r7 ; r7 += x[i] * cos/sin[ik%n]
|
||||
deb_somme ldrh r4, [r0, r3, LSL #1] ; r4 = x[i], LSL #1 pour faire ×2 car chaque valeur est sur 2 octets | format 4.12
|
||||
ldrsh r6, [r2, r5, LSL #1] ; r6 = cos ou sin [ik%N] | format 1.15
|
||||
mla r7, r4, r6, r7 ; r7 += x[i] * cos|sin[ik%n] | format 5.27
|
||||
|
||||
add r5, r1 ; r5 = (i-1)k + k
|
||||
and r5, #63 ; r5 = r5 % 64
|
||||
and r5, #N-1 ; r5 = r5 % 64
|
||||
add r3, #1 ; on incrémente i
|
||||
cmp r3, #64 ; on harcode la valeur ou on utilise N ?
|
||||
cmp r3, #N ;
|
||||
bne deb_somme
|
||||
|
||||
mov r0, r7
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r4, r5, r6, r7}¿¿
|
||||
bx lr
|
||||
endp
|
||||
|
||||
|
@ -65,6 +65,7 @@ deb_somme ldrh r4, [r0, r3, LSL #1] ; r4 = x[i], LSL #1 pour faire
|
|||
; pour les autres valeurs de k sauf les alias de 23 et 24 :
|
||||
; M2 < 0x0000000F
|
||||
|
||||
|
||||
TabSig
|
||||
DCW 1646 ; 0 0x066e 0.40186
|
||||
DCW 3006 ; 1 0x0bbe 0.73389
|
||||
|
|
Loading…
Reference in a new issue