Biblioteka DSP dla mikrokontrolerów LPC1700 i LPC1300 firmy NXP

Odejmowanie wektorów

Prototyp funkcji VectSub16:

void vF_dspl_vectsub16(int *psi_z, int *psi_x, int *psi_y, int i_VectorLen);

Prototyp funkcji VectSub32:

void vF_dspl_vectsub32(int *pi_z, int *pi_x, int *pi_y, int i_VectorLen);

Wydajność obliczeń przedstawiono w tabeli 4.

 

Tab. 4. Odejmowanie wektorów

  Mnożnik zegara pamięci 1 Mnożnik zegara pamięci 2 Mnożnik zegara pamięci 3
Odejmowanie wektorów (20 MHz maks.) (40 MHz maks.) (60 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 309 15,450 343 7,825 317 5,283
32 bitów 341 17,050 346 8,650 351 5,850
  Mnożnik zegara pamięci 4 Mnożnik zegara pamięci 5 Mnożnik zegara pamięci 6
Odejmowanie wektorów (80 MHz maks.) (100 MHz maks.) (120 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 321 4,013 352 3,260 326 2,717
32 bitów 385 4,475 363 3,630 365 3,042

Dodawanie stałej do wektora

Prototyp funkcji VectAddConst16:

void vF_dspl_vectaddconst16(int *psi_y, int *psi_x, int si_c, int i_VectorLen);

 

Prototyp funkcji VectAddConst32:

void vF_dspl_vectaddconst32(int *pi_y, int *pi_x, int i_c, int i_VectorLen);

Wydajność obliczeń przedstawiono w tabeli 5.

 

Tab. 5. Dodawanie stałej do wektora

  Mnożnik zegara pamięci 1 Mnożnik zegara pamięci 2 Mnożnik zegara pamięci 3
Dodawanie stałej (20 MHz maks.) (40 MHz maks.) (60 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 274 13,700 278 6,950 282 4,700
32 bitów 274 13,700 280 7,000 287 4,783
  Mnożnik zegara pamięci 4 Mnożnik zegara pamięci 5 Mnożnik zegara pamięci 6
Dodawanie stałej (80 MHz maks.) (100 MHz maks.) (120 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 287 3,588 292 2,920 292 2,433
32 bitów 295 3,688 303 3,030 303 2,525

 

Mnożenie wektorów element po elemencie

Prototyp funkcji VectMulElement16:

void vF_dspl_vectaddconst32(int *pi_y, int *pi_x, int i_c, int i_VectorLen);

Prototyp funkcji VectMulElement32:

void vF_dspl_vectmulelement32(int *pi_z, int *pi_x, int *pi_y, int i_VectorLen);

Wydajność obliczeń przedstawiono w tabeli 6.

 

Tab. 6. Mnożenie wektorów

  Mnożnik zegara pamięci 1 Mnożnik zegara pamięci 2 Mnożnik zegara pamięci 3
Mnożenie wektorów (20 MHz maks.) (40 MHz maks.) (60 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 277 13,850 280 7,000 283 4,717
32 bitów 309 15,450 312 7,800 315 5,250
  Mnożnik zegara pamięci 4 Mnożnik zegara pamięci 5 Mnożnik zegara pamięci 6
Mnożenie wektorów (80 MHz maks.) (100 MHz maks.) (120 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
16 bitów 286 3,575 290 2,900 290 2,417
32 bitów 320 4,000 325 3,250 325 2,708

 

Do pobrania

O autorze