0% found this document useful (0 votes)
5 views2 pages

Primer Proyecto

This document outlines a project for digital signal processing using the DSK6713 platform with a focus on audio input and output. It includes definitions for filter coefficients and an interrupt service routine for processing audio samples. The main function initializes the codec and waits for interrupts to handle audio processing continuously.

Uploaded by

bmedinav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views2 pages

Primer Proyecto

This document outlines a project for digital signal processing using the DSK6713 platform with a focus on audio input and output. It includes definitions for filter coefficients and an interrupt service routine for processing audio samples. The main function initializes the codec and waits for interrupts to handle audio processing continuously.

Uploaded by

bmedinav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

primer proyecto

// This project uses support files generated by Rulph Chassaing


// Comm routines included in C6xdskinit.c

#include "DSK6713_AIC23.h" //codec support


Uint32 fs=DSK6713_AIC23_FREQ_32KHZ; //set sampling rate

#define DSK6713_AIC23_INPUT_MIC 0x0015


#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_LINE;
//#include "impinv.cof"
#define NUM_SECTIONS 1
float b[NUM_SECTIONS][9] = { //numerador
0.00659120519580073341986414803272964491 ,
0.030214534833728844132050284088109037839 ,
0.075118915311778430843325793375697685406 ,
0.123483021097718873027027086664020316675 ,
0.144887051152322088309887249124585650861 ,
0.123483021097718873027027086664020316675 ,
0.07511891531177841696553798556124093011 ,
0.030214534833728844132050284088109037839 ,
0.00659120519580073341986414803272964491
};
float a[NUM_SECTIONS][9] = { //denominador
1 ,
-2.250519798585577824212577979778870940208 ,
4.513982248963650967255034629488363862038 ,
-5.797816453336070097179799631703644990921 ,
6.064237916061777866616466781124472618103 ,
-4.763935498954285030492883379338309168816 ,
2.894981991689346223495249432744458317757 ,
-1.223002904056729622794819078990258276463 ,
0.337195900754488020467647402256261557341
};

float w[NUM_SECTIONS][7] = {0};

interrupt void c_int11() //interrupt service routine


{
int section; //index for section
number
float input; //input to each section
float yn; //intermediate and output
//values in each
stage

input = ((float)input_left_sample());

for (section=0 ; section< NUM_SECTIONS ; section++)


{
yn = b[section][0] * input + w[section][0];
w[section][0] = b[section][1] * input + w[section][1] - a[section][1] *
yn;
w[section][1] = b[section][2] * input + w[section][2] - a[section][2] *
yn;
w[section][2] = b[section][3] * input + w[section][3] - a[section][3] *
yn;
w[section][3] = b[section][4] * input + w[section][4] - a[section][4] *
yn;
w[section][4] = b[section][5] * input + w[section][5] - a[section][5] *
yn;
w[section][5] = b[section][6] * input - a[section][6] * yn;
input = yn;
}
output_left_sample((short)(yn)); //before writing to codec
return;
}
void main()
{
comm_intr(); // Iniciar DSK, codec, McBSP
while(1); // Esperar que ocurra una interrupci�n
}

You might also like