Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <dsplib.h>
- #define NUM_SAMPLES 5000
- #define N 57
- #define krok 137
- const short filtr_fir[] = {-30, -32, -36, -41, -46, -51, -53, -50, -41,
- -23, 6, 49, 106, 178, 267,372, 492, 624, 766, 914, 1064, 1212, 1353,
- 1482, 1594, 1687, 1755, 1797, 1811, 1797, 1755, 1687, 1594, 1482, 1353,
- 1212, 1064, 914, 766, 624, 492, 372, 267, 178, 106,49, 6, -23, -41
- , -50, -53, -51, -46, -41, -36, -32, -30};
- short white_noise[NUM_SAMPLES];
- short pila[NUM_SAMPLES];
- short wynik[NUM_SAMPLES];
- short bufor[N + 2];
- short probka = 0;
- short obliczona = 0;
- int k;
- void saw(short* tablica, unsigned int dl_tablicy, unsigned int step){
- int amplituda = 0;
- int i;
- tablica[0] = 0;
- for(i = 1; i < dl_tablicy; i++){
- amplituda = amplituda + step;
- tablica[i] = amplituda;
- }
- }
- void blockfir(short* input, const short* filter, short* output, int numSamples, int numFilter){
- int j;
- int i;
- for(j = 0; j < numSamples; j++){
- long y = 0;
- for(i = 0; i < N; i++){
- if(i > j || i == j){break;}
- y = _smaci(y, input[j-i], filter[i]);
- }
- output[j] = (short)(_sround(y) >> 15);
- }
- }
- void main(void) {
- rand16init();
- rand16((DATA*)white_noise, NUM_SAMPLES);
- saw(pila, NUM_SAMPLES, krok);
- //blockfir(white_noise, filtr_fir, wynik, NUM_SAMPLES, N);
- //blockfir(pila, filtr_fir, wynik, NUM_SAMPLES, N);
- //fir((DATA*)white_noise, (DATA*)filtr_fir, (DATA*)wynik, bufor, NUM_SAMPLES, N);
- //fir((DATA*)pila, (DATA*)filtr_fir, (DATA*)wynik, bufor, NUM_SAMPLES, N);
- for(k = 0; k < NUM_SAMPLES; k++){
- //probka = white_noise[k];
- probka = pila[k];
- fir((DATA*)&probka, (DATA*)filtr_fir, (DATA*)&obliczona, bufor, 1, N);
- wynik[k] = obliczona;
- }
- while (1); // do not exit
- }
Add Comment
Please, Sign In to add comment