Primer 11 - Generisanje signala

U vektor signal[] smestiti odbirke signala sa slike. Dužina bafera je 100 odbiraka. U pitanju je 10-o bitni unipolarni signal.

Rešenje

#include <math.h>
#include <stdlib.h>

#define DUZINA 100 

int signal[DUZINA];  

/*
 * Funkcija puni bafer sa odredjenim brojem perioda sinusnog signala
 * veoma slicna funkciji sin_sig iz PDSPlib biblioteke
 */
void sin_signal (int s[], int len, int ampl, int offset, float brperioda) {
    int i;
    float x;

    for (i=0; i<len; i++) {
        x = (brperioda * 6.28318 * i) / (float)len;
        s[i] = offset + ampl * sin(x);
    }
}

void dodajDC(int buf[], int duz, int dc) {
    int i;

    for (i=0; i<duz; i++) {
        buf[i] += dc;
    }
}

int main(void) {
    int i;

    // Generisem signal maksimalne amplitude. U nasem slucaju 510
    sin_signal(signal, DUZINA, 512, 0, 2);
    // Invertujem signal u opsegu 50 do DUZINA
    for (i=50; i<DUZINA; i++)
        signal[i] = signal[i] * (-1);
    // Dodaj DC offset
    dodajDC(signal, DUZINA, 512);


    while(1);  // mrtva petlja
}

results matching ""

    No results matching ""