Primer 13 - Generisanje signala
U vektor signal[] smestiti odbirke signala sa slike. Bafer je dužine 40 odbiraka, a signal je 10 bitni bipolarni.
Rešenje
#include <math.h>
#include <stdlib.h>
#define DUZINA 40
int signal[DUZINA];
/*
* Signal rampe - slicna funkcija kao u PDSPlib biblioteci
* smer = -1 - rampa opadajuca
* smer = 1 - rampa rastuca
*/
void ramp_signal(int signal[], int start, int duzina, int amplituda, int smer) {
int i;
float delta, tmp;
delta = (float)amplituda/(float)duzina;
if (smer==1) tmp = 0;
else tmp = amplituda;
for (i=start; i<start+duzina; i++) {
signal[i] = (int)tmp;
tmp += (delta*smer);
}
}
void dodajDC(int buf[], int duz, int dc) {
int i;
for (i=0; i<duz; i++) {
buf[i] += dc;
}
}
int main(void) {
int i;
// Postavim jednosmerne komponente
for (i=0; i<10; i++) {
signal[10+i]=512;
signal[30+i]=512;
}
// Generisem signale rampe
ramp_signal(signal, 0, 10, 1024, 1);
ramp_signal(signal, 20, 10, 1024, 1);
// Spustim signal ispod x ose
dodajDC(signal, DUZINA, -512);
while(1); // mrtva petlja
}