Zadatak 1

Napraviti funkciju u C-u koristeći CCS v5, kojia će generisati sve DTMF tonove za numeričke tastere. Prototip funkcije treba da bude:

#define SR  // Vi odabirate sample rate prema Nyquist-Shannon-ovoj teoremi
#define T 45  // Trajanje signala u ms: 40ms signal + 5ms pauza = 45ms
#define PI 3.141592
#define BR_ODBIRAKA
/* 
 * BR_ODBIRAKA Vi odabirate tako da odgovara:
 *    - raspolozivoj memoriji
 *    - trajanju signala - T
 *    - Sample rate-u (brzina odabiranja) - SR
 */

// Struktura signala
typedef struct signal_s {
    int duzina;
    int odbirci[MAX_DUZ];
} signal_t;

signal_t generisiDTMF(int taster);
// Parametar:
//   taster - odgovara broju tastera od 0 do 9
// Funkcija vraca strukturu tipa signal_t

Funkcija za generisanje tonova treba da smesti u lookup tabelu potrebne dužine, odbirke izabranog tona i pauze, tako da tonovi traju po 40ms, a pauza između njih 5ms. Odbirke treba pripremiti za izbacivanje na 16-bitni unipolarni DAC u Q15 formatu. Voditi računa o brzini odabiranja, pogledati Nikistovu teoremu.


Zadatak 2

Realizovati funkciju koja za zadati signal računa njegov spektar. Na DTMF signalima iz zadatka 1 proveriti ispravnost rada funkcije.


Zadatak 3

Napraviti funkciju u C-u koristeći CCS v5, koji će dekodovati sve DTMF tonove. Prototip ove funkcije treba da bude:

int dekodujDTMF(signal_t signal);
// Parametri:
// signal - struktura/tip u kojoj se nalazi signal generisan funkcijom generisiDTMF().
// Signal je odredjen brojem odbiraka i njihovom pojedinacnov mrednoscu.
// Funkcija vraca broj koji odgovara tasteru koji je pritisnut.

Funkcija za dekodovanje DTMF-a treba, uz pomoć FFT-a ili DFT-a da odredi koji ton je generisan. Ton “čita” iz lookup tabele koju je generisala funkcija za generisanje DTMF (Zadatak 1).

results matching ""

    No results matching ""