Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////////////////////////////////////////////////////////////////////
- // *
- // * Predmetni projekat iz predmeta OAiS DSP 1
- // * Godina: 2015
- // *
- // * Zadatak: Prijemnik DTMF signala
- // * Autor:
- // *
- // *
- //////////////////////////////////////////////////////////////////////////////
- #include "stdio.h"
- #include "ezdsp5535.h"
- #include "ezdsp5535_i2c.h"
- #include "aic3204.h"
- #include "ezdsp5535_aic3204_dma.h"
- #include "ezdsp5535_i2s.h"
- #include "print_number.h"
- #include "math.h"
- #include "Dsplib.h"
- /* Frekvencija odabiranja */
- #define SAMPLE_RATE 8000L
- #define PI 3.14159265
- /* Velicina prozora za racunanje FFT-a */
- #define FFT_SIZE AUDIO_IO_SIZE
- /* Granica definisana od strane korisnika */
- /* TODO Dodeliti vrednost */
- #define TRESHOLD 0L
- /* Niz za smestanje odbiraka ulaznog signala */
- #pragma DATA_ALIGN(InputBufferL,4)
- Int16 InputBufferL[AUDIO_IO_SIZE];
- #pragma DATA_ALIGN(InputBufferR,4)
- Int16 InputBufferR[AUDIO_IO_SIZE];
- //-----------------------------------------------
- #pragma DATA_ALIGN(InputBufferFFT,4)
- Int32 InputBufferFFT[AUDIO_IO_SIZE];
- //--------------------------------------------
- void main( void )
- {
- int i;
- /* Inicijalizaija razvojne ploce */
- EZDSP5535_init( );
- /* Inicijalizacija LCD kontrolera */
- initPrintNumber();
- printf("\n DTMF Prijemnik\n");
- /* Inicijalizacija veze sa AIC3204 kodekom (AD/DA) */
- aic3204_hardware_init();
- /* Inicijalizacija AIC3204 kodeka */
- aic3204_init();
- aic3204_dma_init();
- /* Postavljanje vrednosti frekvencije odabiranja i pojacanja na kodeku */
- set_sampling_frequency_and_gain(SAMPLE_RATE, 0);
- Int32 THRESHOLD = 10000000;
- while(1)
- {
- aic3204_read_block(InputBufferL, InputBufferR);
- rfft(InputBufferL, AUDIO_IO_SIZE , SCALE);
- for(i = 0; i < AUDIO_IO_SIZE; i +=2){
- InputBufferFFT[i/2] = (Int32)InputBufferL[i]*(Int32)InputBufferL[i] + (Int32)InputBufferL[i+1]*(Int32)InputBufferL[i+1];
- }
- if((InputBufferFFT[6]+InputBufferFFT[7]) > THRESHOLD && (InputBufferFFT[22]) > THRESHOLD)printChar('1');
- else if((InputBufferFFT[6]+InputBufferFFT[7]) > THRESHOLD && ((InputBufferFFT[25]) > THRESHOLD))printChar('2');
- else if((InputBufferFFT[6]+InputBufferFFT[7]) > THRESHOLD && ((InputBufferFFT[27]) > THRESHOLD))printChar('3');
- else if((InputBufferFFT[6]+InputBufferFFT[7]) > THRESHOLD && ((InputBufferFFT[29] + InputBufferFFT[30]) > THRESHOLD))printChar('A');
- else if((InputBufferFFT[9]) > THRESHOLD && ((InputBufferFFT[22]) > THRESHOLD))printChar('4');
- else if((InputBufferFFT[9]) > THRESHOLD && ((InputBufferFFT[25]) > THRESHOLD))printChar('5');
- else if((InputBufferFFT[9]) > THRESHOLD && ((InputBufferFFT[27]) > THRESHOLD))printChar('6');
- else if((InputBufferFFT[9]) > THRESHOLD && ((InputBufferFFT[29] + InputBufferFFT[30]) > THRESHOLD))printChar('B');
- else if((InputBufferFFT[11]) > THRESHOLD && ((InputBufferFFT[22]) > THRESHOLD))printChar('7');
- else if((InputBufferFFT[11]) > THRESHOLD && ((InputBufferFFT[25]) > THRESHOLD))printChar('8');
- else if((InputBufferFFT[11]) > THRESHOLD && ((InputBufferFFT[27]) > THRESHOLD))printChar('9');
- else if((InputBufferFFT[11]) > THRESHOLD && ((InputBufferFFT[29] + InputBufferFFT[30]) > THRESHOLD))printChar('C');
- else if((InputBufferFFT[13]+InputBufferFFT[14]) && ((InputBufferFFT[22]) > THRESHOLD))printChar('*');
- else if((InputBufferFFT[13]+InputBufferFFT[14]) && ((InputBufferFFT[25]) > THRESHOLD))printChar('0');
- else if((InputBufferFFT[13]+InputBufferFFT[14]) && ((InputBufferFFT[27]) > THRESHOLD))printChar('#');
- else if((InputBufferFFT[13]+InputBufferFFT[14]) && ((InputBufferFFT[29] + InputBufferFFT[30]) > THRESHOLD))printChar('D');
- else printChar(' ');
- }
- /* Prekid veze sa AIC3204 kodekom */
- aic3204_disable();
- printf( "\n***Kraj programa***\n" );
- SW_BREAKPOINT;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement