1. 1 Unit Komputer
2. Software Visual DSP++ 5.1.2
Amati terdapat code tertulis sebagai
Untuk menjalankan program yang telah di-build, pada berikut:
menu bar klik Debug Run. Atau dapat pula dilakukan
dengan cara menekan tombol F5 pada keyboard.
iChannel0LeftOut =iChannel0LeftIn;
iChannel0RightOut = iChannel0RightIn;
iChannel1LeftOut = iChannel1LeftIn;
Lakukan pengamatan pada sinyal masukan iChannel1RightOut =iChannel1RightIn;
dan keluaran. Akan terdengar bahwa sinyal Keempat baris kode diatas menunjukkan bahwa setiap sinyal
keluaran sama sepertisinyal masukan / masukan diteruskan begitu saja sebagai sinyal keluaran. Baris
sinyal keluaran merupakan sinyal masukan pertama menunjukkan bahwa kanal 0 kiri masukan diteruskan
yang diteruskan saja. pada kanal 0 kiri keluaran. Baris kedua menunjukkan bahwa
kanal 0 kanan diteruskan pada kanal 0 kanan keluaran, dan
seterusnya.
Percobaan meneruskan sinyal keluaran sebagai hasil Ubah baris pertama dan kedua menjadi
amplifikasi sinyal masukan. seperti berikut :
Analisis Frekuensi
//--------------------------------------------------------------------------//
// Function: Process_Data() //
// //
// Description: This function is called from inside the SPORT0 ISR every //
// time a complete audio frame has been received. The new //
// input samples can be found in the variables iChannel0LeftIn,//
// iChannel0RightIn, iChannel1LeftIn and iChannel1RightIn //
// respectively. The processed data should be stored in //
// iChannel0LeftOut, iChannel0RightOut, iChannel1LeftOut, //
// iChannel1RightOut, iChannel2LeftOut and iChannel2RightOut //
// respectively. //
//--------------------------------------------------------------------------//
#define BUFFERLENGTH 32
int bufferLeft[BUFFERLENGTH],bufferRight[BUFFERLENGTH]={0,0,0};
int tempLeft, tempRight = 0;
int i,j=0;
//////////////////////////////////////////////////////////
//Filter Coefficients (from MATLAB):
int filter[BUFFERLENGTH]={ -4.0920e+006,
-4.8192e+006, -6.0388e+006, -7.0440e+006,
-6.5343e+006, -2.8071e+006, 5.9122e+006,
2.1061e+007, 4.3334e+007, 7.2381e+007,
1.0666e+008, 1.4354e+008, 1.7958e+008,
2.1099e+008, 2.3425e+008, 2.4663e+008,
2.4663e+008, 2.3425e+008, 2.1099e+008,
1.7958e+008, 1.4354e+008, 1.0666e+008,
7.2381e+007, 4.3334e+007, 2.1061e+007,
5.9122e+006, -2.8071e+006, -6.5343e+006,
-7.0440e+006, -6.0388e+006, -4.8192e+006,
-4.0920e+006};
//////////////////////////////////////////////////////////
void Process_Data(void)
{
///////////////////////////////////////////////////////////////
//channel0
//////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////
//
//
//Left
//////////////////////////////////////////////////
//
//
//Buffering input
bufferLeft[i] = iChannel0LeftIn;
//convolution with circular buffer
tempLeft=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
}
//Output
iChannel0LeftOut = tempLeft;
////////////////////////////////////////////////////////
// //Right
////////////////////////////////////////////////////////
//
//Buffering input
bufferRight[i]= iChannel0RightIn;
//convolution with circular buffer
tempRight=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
tempRight += (filter[j] >> 16) * (bufferRight[(i + j)
% BUFFERLENGTH] >> 15);
}
//Output
iChannel0RightOut=tempRight;
////////////////////////////////////////////////////////
//
//decreasing i (circular)
////////////////////////////////////////////////////////
i=(i+BUFFERLENGTH-1)%BUFFERLENGTH;
////////////////////////////////////////////////////////
//
//channel1
////////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//Left
//////////////////////////////////////////////////////
iChannel1LeftOut = iChannel1LeftIn;
//////////////////////////////////////////////////////
//right
//////////////////////////////////////////////////////
iChannel1RightOut = iChannel1RightIn;
}