Ćwiczenie 18 & 19 Sprawko doc


Laboratorium Układów Mikroprocesorowych

Rok akademicki

Termin

Rodzaj studiów

Kierunek

Prowadzący

Grupa

Sekcja

2008/2009

Czwartek

18:00-21:00

wieczorowe

INF

GB

2

1

Sprawozdanie z ćwiczenia numer 18-19

Data wykonania ćwiczenia: 2008-10-30

Temat ćwiczenia:

Procesory sygnałowe

Skład podsekcji:

Rafał Pacan

Wojciech Szymoszek

Robert Uszok

Ireneusz Zydroń

1. TEMAT ĆWICZENIA

Tematem ćwiczenia było zaprojektowanie i napisanie programu generującego częstotliwości o zadanym przebiegu oraz nałożenie na ten przebieg obwiedni.

0x08 graphic
0x08 graphic

Wykres funkcji częstotliwości. Obwiednia

2. ROZWIĄZANIE PROBLEMU

Kod programu:


void Process_Data(void)
{

   static
TABLICA[1000];
   static
TABLICA2[1000];
   sta
tic int i=0;             //zmienna statyczna - licznik wywołań przerwania
   
int ampl = 200000;          //amplituda
   
int nuta = 1000*48 ;       //czas trwania 1 nuty w taktach = ([ms]*48)
   
int p;                     //wyliczana wartość próbki
   
   
int tab_cz[8];             //odgrywane częstotliwości
   
tab_cz[0] =  100;
   
tab_cz[1] =  200;
   
tab_cz[2] =  400;
   
tab_cz[3] =  600;
   
tab_cz[4] =  800;
   
tab_cz[5] = 1000;
   
tab_cz[6] = 2000;
   
tab_cz[7] = 3000;


   
//Ustawienie częstotliwości

   
   
int cz = tab_cz[ (i/nuta)%8 ];    //częstotliwość
   
int T = 48000/cz;                 //okres w taktach na pdst. cz
   
int in;                           //zmienna pomocnicza = i % szer_fragmentu_wykresu
   
   
if( In = T/8 ) in = i % in ;     // if - aby nie dzielić przez zero
   
switch( ( i%T ) * 8 / T ) //wybrana ósma część sinusoidy przyjmuje:

//0,1,2,3,4,5,6 lub 7
   
{
       case
0:
           
p = ampl*((in*70*4)/T )/100;
           break;
       case
1:
           
p = 60000;
           break;
       case
2:
           
p = ampl*(((T/8-in)*70*4)/T)/100;
           break;
       case
3:
           
p = 10;
           break;
       case
4:
           
p = ampl*((in*70*4)/T )/100;
           break;
       case
5:
           
p = 70000;
           break;
       case
6:
           
p = ampl*(((T/8-in)*70*4)/T)/100;
           break;
       case
7:
           
p=10;
           break;              
       default:
           
p=10;
   }

   
   
in = i%( nuta/2 );
   
int o = 1000;                                   // obwiednia
   
if( in < nuta/4 ) o = (in * 8000 )/nuta;
   else
o = 4000 - (in * 8000 )/nuta;

   
   
i++;
   
p = (p*o)/1000;
   
   
iChannel0LeftOut = p;
   
iChannel0RightOut = p;
   
iChannel1LeftOut = p;
   
iChannel1RightOut = p;
   if(
i<1000) TABLICA[i] = p;
   if(
i/100<1000) TABLICA2[i/100] = p;
   
}

3. WYNIK DZIAŁANIA KOMPILATORA

Po wielu próbach program wygenerował wyniki zaakceptowane przez prowadzącego, które są przedstawione na poniższych wykresach.

0x08 graphic
Wykres funkcji częstotliwości.

0x08 graphic
Obwiednia

4. WNIOSKI

Początkowo wykonanie zadania przysporzyło trudności z napisaniem funkcji generującej odpowiednie wykresy. Podczas prób poprawnego napisania programu pojawiały się ciekawe oraz zaskakujące wyniki w postaci wykresów oraz dźwięków. Po wielu modyfikacjach programu udało się uzyskać wyniki zaakceptowane przez prowadzącego.

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Ćwiczenie 18 & 19 Procesory Sygnalowe
cwiczenie 18 19
Ćwiczenie nr 19 Grzesiu doc
Ćwiczenie 18 & 19 Procesory Sygnalowe
ĆWICZENIE 18 do druku doc
ćwiczenie 18 (wstęp i wnioski) doc
ćwiczenie 18 sprawko
Ćwiczenie 10 Sprawko doc
Ćwiczenie 19 obliczenia doc
Ćwiczenie 18 doc
Kolejność tematów do przygotowania na ćwiczenia w dniach 18 i 19 marca 2017r
pytania z biotechnologii 18,19,22,23,24 doc
Ćwiczenie 03 Sprawko doc
Ćwiczenie 22 Sprawko doc
18 19
19 sprawkoid362
FINANSE PRZEDSIĘBIORSTW ĆWICZENIA 4 (18 11 2012)
18. 19. Amidy i nitryle(1)
VB cwiczenia v0 19

więcej podobnych podstron