Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "math.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include "dsk6713_aic23.h"
- #include <dsk6713_dip.h>
- #include <dsk6713_led.h>
- #define DSK6713_AIC23_INPUT 0x0011
- #define LEFT 0
- #define RIGHT 1
- #define SAMPLES 8
- union AIC_data{
- Uint32 uint;
- short channel[2];
- };
- float *repmat(float *pDouble, int rep, int i);
- Uint32 fs=DSK6713_AIC23_FREQ_44KHZ;
- Uint16 inputsource=DSK6713_AIC23_INPUT; // select input
- void main()
- {
- union AIC_data aicSample;
- float low_n, high_n, delay_1, delay_2, delay_step, *delay;
- int delay_vary_p, n_rep, no_points, i=0, j=0;
- double *x, *f;
- int input;
- float delta, Fc[7000000], Fs;
- short i;
- float Fw = 2000.0;
- float damp = 0.05;
- short minF = 300;
- short maxF = 2000;
- short a = 0;
- delta = Fw/Fs;
- for(i=minF;i<maxF; i=i+delta){
- Fc[a]= Fc[a]+i;
- a++;
- }
- comm_poll();
- DSK6713_DIP_init();
- DSK6713_LED_init();
- while(1)
- {
- if(DSK6713_DIP_get(0)==1)
- {
- low_n = round(0.01*fs);
- high_n = round(0.4*fs);
- delay_vary_p = 8;
- delay_step = (delay_vary_p/4)/(1/fs);
- x = (double) malloc(delay_step * sizeof(double*));
- for(i = low_n; i < delay_step; i++) {
- x[i] = double(i) / (delay_step - high_n);
- }
- f = (double) malloc(delay_step * sizeof(double*));
- for(i = high_n; i< delay_step; i++)
- {
- f[i] = double(i) / (delay_step - low_n);
- }
- delay_1= round(x);
- delay_2= round(input);
- delay = (double) malloc(delay_1+delay_2 * sizeof(double*));
- for(i= 0; i<sizeof(delay_1); i++){
- delay[i] = delay_1[i];
- }
- for(i= 0; i<sizeof(delay_2); i++){
- delay[sizeof(delay_1) + i] = delay_2[i];
- }
- no_points = sizeof(input)/2; //pogleaj
- n_rep = round(no_points/sizeof(delay));
- delay = repmat(delay, n_rep, 1);
- delay = (double) malloc(delay + delay * sizeof(double*));
- for(i= 0; i<sizeof(delay); i++){
- delay[i] = delay[i];
- }
- for(i= sizeof(delay); i<no_points; i++){
- delay[sizeof(delay) + i] = delay[sizeof(delay) + i]+0.25; //matleb
- }
- for(i=0; i< no_points; i++){
- for (j = 0; j< 2; j++){
- output_signal[i, j] = 0;
- }
- }
- for(i=0; i< no_points; i++){
- n = i-delay(j);
- if(n>0){
- output_signal[i, 1] = input_signal[i,1] + input_signal[n,1]
- }
- else{
- output_signal[i,1] = y[i, 1];
- }
- }
- //sad kps samo output_signal na izlaz
- DSK6713_LED_on(0);
- aicSample.uint = input_sample();
- output_sample(aicSample.uint);
- }
- else
- DSK6713_LED_off(0);
- }
- }
- float *repmat(float *source, int count, int expand) {
- int i, j;
- float* target = (float*)malloc(sizeof(float)*count * expand);
- for (i = 0; i < count; ++i) {
- for (j = 0; j < expand; ++j) {
- target[i * expand + j] = source[i];
- }
- }
- return target;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement