Biblioteka DSP dla mikrokontrolerów LPC1700 i LPC1300 firmy NXP

Wydajność kontroli PID przedstawiono w tabeli 11.

 

Tab. 11. Kontrola PID

  Mnożnik zegara pamięci 1 Mnożnik zegara pamięci 2 Mnożnik zegara pamięci 3
  (20 MHz maks.) (40 MHz maks.) (60 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
PID 47 2,350 49 1,225 52 0,867
  Mnożnik zegara pamięci 4 Mnożnik zegara pamięci 5 Mnożnik zegara pamięci 6
  (80 MHz maks.) (100 MHz maks.) (120 MHz maks.)
  Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
PID 56 0,700 60 0,600 60 0,500

 

Generator liczb losowych

W bibliotece zaimplementowano asemblerową wersję generatora ciągu losowego „ Linear Congruential ”. Jeśli potrzebny jest wynik krótszy, niż 32-bitowy, lepiej wybrać starsze bity zwróconego słowa, ponieważ są one „bardziej losowe” od bitów młodszych.

Wzór opisujący liczbę losową:

 

 

 

 

Gdzie:

Yn jest nową liczbą w generowanym ciągu

Xn jest wartością ziarna

c jest odpowiednio dobraną stałą

a jest odpowiednio dobranym stałym mnożnikiem

m jest odpowiednio dobranym dzielnikiem modulo

W naszej implementacji m = 2^32, zatem wykorzystaliśmy tylko podstawowa arytmetykę

c = 32767

a = 16644525

Prototyp funkcji generatora liczb losowych:

int iF_RandomNumber(int i_Seed);

Wskazówka: aby utworzyć ciąg liczb losowych, należy wykorzystać poprzedni wynik jako ziarno dla następnego wywołania.

Wydajność generatora liczb losowych przedstawiono w tabeli 12.

 

Tab. 12. Generator liczb losowych

  Mnożnik zegara pamięci 1 Mnożnik zegara pamięci 2 Mnożnik zegara pamięci 3
Generator (20 MHz maks.) (40 MHz maks.) (60 MHz maks.)
liczb losowych Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
  23 1,150 26 0,650 30 0,500
  Mnożnik zegara pamięci 4 Mnożnik zegara pamięci 5 Mnożnik zegara pamięci 6
Generator (80 MHz maks.) (100 MHz maks.) (120 MHz maks.)
liczb losowych Cykle Czas (μs) Cykle Czas (μs) Cykle Czas (μs)
  34 0,425 38 0,380 38 0,317

 

Opracowanie wykonane na podstawie noty aplikacyjnej NXP AN1091:3 DSP library for LPC1700 and LPC1300 ; Rev. 3 — czerwiec 2010.

Bibliografia

[1]Knuth, The Art of Computer Programming Vol. 2, Semi-numerical Algorithms, Chapter 3 – Random Numbers
[2]Rabiner and Gold, Theory & Application of Digital Signal Processing
[3]Proakis and Manolakis, Digital Signal Processing, Principles, Algorithms, and Applications

Do pobrania

O autorze