Bury Lingas

Sprawozdanie z Laboratorium Procesory Sygnałowe 2

Nazwiska i Imiona:

Bury Marcin

Lingas Michał

1.)Cel ćwiczenia

Celem naszego ćwiczenia było uruchomienie i przebadanie algorytmu generacji sinusoid z równania różnicowego. Należało zrealizować procedury z zaokrąglaniem i bez zaokrąglania dla różnych częstotliwości.

2.) Pomiary przy stałym przecinku :

kod programu :

xn2=0;

xn1=sin(2*PI*Fx/Fs);

A=cos(2*PI*Fx/Fs);

IER|=0x2000;

}

void przerwanie_rcv()

{

probka=MCBSP_read(hMcbsp1);

xn=2*A*xn1-xn2;

xn2=xn1;

xn1=xn;

xr=(xn*20000)+0.5;

probka=xr;

MCBSP_write(hmcbsp1,probka);

}

a) A, xn, xn1, xn2 -double, floating point

f1[Hz] F2[Hz] F3[Hz]
1000 1 000 1000
500 500 500
250 249,7 250,4
125 124,5 124,9
65 64,8 65,2
42,5 42,58 42,63
20 20,06 19,99
10 10,01 9,6
5 5,03 5,4
2,5 2,503 3,6

Legenda:

f1 - częstotliwość zadana

f2- częstotliwość odczytana z oscyloskopu z zaokrągleniem

f3- częstotliwość odczytana z oscyloskopu bez zaokrąglenia

b)A, xn, xn1, xn2 -float, floating point,

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1 000 1 000
500 500 499,8
250 249,7 250,2
125 124,9 125,7
65 64,6 65,5
42,5 42,5 42,4
20 19,7 19,7
10 9,8 10,1
5 5,4 5,1
2,5 3,25 2,1

c)A -Q15, xn, xn1, xn2 -Q14 (short),

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1000 1000 1k
500 500 500
250 254,7 253
125 119,3 118,8
50 60,62 60,9
42,5 66,2 66,9

d)A, xn, xn1, xn2 -Q15 (short),

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f1[Hz] F2[Hz]
1000 1000
500 500
250 250,5
125 104,9
65 61,2
42,5 55,7

3.) Pomiary przy zmiennym przecinku :

a) A, xn, xn1, xn2 - double, floating point,

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1001 1 000
500 501 500
250 249,6 249,8
125 124,7 125,3
65 64,9 65,16
42,5 42,56 42,51
20 20 20
10 10 9,95
5 5 4,9
2,5 2,53 2,36

b)A, xn, xn1, xn2 -float, floating point,

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 998,0 1 000
500 501,0 500
250 249,9 250,3
125 124,9 124,8
65 64,94 65,1
42,5 42,5 42,4
20 19,95 19,9
10 6,88 9,8
5 5,96 5,32
2,5 3,12 3,1

c)A -Q15,xn, xn1, xn2 -Q14 (short),

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1 000 1 000
500 501,5 498,5
250 254,3 253,7
125 134,5 119,3
50 84,7 60,5
42,5 66,7 66,6

xn1=roundf(16384*sinf(2*PI*Fx/Fs));

A=roundf(32768*cosf(2*PI*Fx/Fs));

IER|=0x2000;

xn=((2*A*xn1+0x2000)>>15)-xn2;

xn2=xn1;

xn1=xn;

probka=xn;

d) A, xn, xn1, xn2 -Q15 (short) + saturation mode (z wykorzystaniem "if"),

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1 000 1 000
500 502,8 503,0
250 253,0 531
125 133,0 133,1
50 85,0 84,8
42,5 55,6 161,6

Kod programu:

xn1=(32768*sinf(2*PI*Fx/Fs));

A=(32768*cosf(2*PI*Fx/Fs));

IER|=0x2000;

tmp=((2*A*xn1+0x4000)>>15)-xn2;

if (tmp >= 32767){

xn=32767;}

else{

xn=tmp;

} xn2=xn1;

xn1=xn;

e)A -Q15 (short), xn, xn1, xn2 -Q30 (int), czyli zwiększenie dokładności dodawania 16 bit -> 32 bit i pozostawienie mnożenia 16 bit x 16 bit -> 32 bit,

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1007 998
500 104.2 104.4
250 65.39 65.10
125 23.98 23.27
50 24.04 23.97
42,5 100,7 138
20 104.2 104.4
10 65.39 65.10
5 23.98 23.27
2,5 24.04 23.97

f)A -Q15, xn, xn1, xn2 –Q13 -short

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1 000 1 000
500 502,7 503,5
250 254,2 254,4
125 129 128,6
50 93,6 93
42,5 52,8 52,6
20 29,25 29,18

g) A -Q10, xn, xn1, xn2 –Q10 -(short)

f1 –częstotliwość zadana

f2 –częstotliwość odczytana z oscyloskopu z zaokrąglaniem

f3 - częstotliwość odczytana z oscyloskopu bez zaokrąglenia

f1[Hz] F2[Hz] F3[Hz]
1 000 1000 1000
500 585,0 582
250 325 329,1
125 364 371

4.)Wnioski:

W czasie wykonywania pomiarów zmienialiśmy typy zmiennych, które były używane do wygenerowania sinusa. Zauważyliśmy że im mniejsza dokładność zmiennej tym sygnał jest bardziej zniekształcony. Najlepszą zmienna do generacji jest zmienna typu double.


Wyszukiwarka

Podobne podstrony:
Kundel bury, ekologiczne piosenki
Kundel Bury, piosenki i podkłady muzyczne
kundel bury EKJBQHYEGFPXKCKZBLQ6FKIFXSRZNE2KPSSXIRY
Przemyslaw Bury
Romuald Rajs ps Bury NZW
Richard de Bury Histoire de St Louis, Roi de France
Bury Aforyzmy szczęścia i nieszczęścia
Marcin Bury
12 Do You Bury Your Face In the Waterpdf
Lingas Łoniewska Agnieszka Zakręty losu 01 Bracia Borowscy
Lingas Å Â oniewska Å Â atwopalni 03 Wybaczenie
Nie pali się światła wrogowi Romuald Rajs ps Bury
Bury Krakowskie wesele w2
London Jack Bury Wilk
12 BURY trujkąt wypoadków
Bury, czyli znów czarno – biała historia
Kundel bury [Pies na medal] Zygmunt Kęstowicz [z programu tv dla dzieci Pankracy]

więcej podobnych podstron