0% found this document useful (0 votes)
86 views8 pages

Part B: Experiments Using DSP Processor Procedure For Execution in TMS3206713 Simulator - Open CCS Studio Setup3.1

The document describes procedures for executing DSP programs in the TMS3206713 simulator and DSK6713 development kit. It includes steps to open the CCS Studio, create and configure a project, add source code and support files, build and load the program, and debug run it in the simulator or connect to the DSK board. It then provides examples of C code to implement linear and circular convolution of sequences, compute the DFT of a sequence, and simulate a digital filter.

Uploaded by

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

Part B: Experiments Using DSP Processor Procedure For Execution in TMS3206713 Simulator - Open CCS Studio Setup3.1

The document describes procedures for executing DSP programs in the TMS3206713 simulator and DSK6713 development kit. It includes steps to open the CCS Studio, create and configure a project, add source code and support files, build and load the program, and debug run it in the simulator or connect to the DSK board. It then provides examples of C code to implement linear and circular convolution of sequences, compute the DFT of a sequence, and simulate a digital filter.

Uploaded by

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

Part B: EXPERIMENTS USING DSP PROCESSOR

Procedure for execution in TMS3206713 Simulator


Open CCS Studio Setup3.1

Select Family-----> 67xx

Platform ---------> Simulator

Select 6713 Device cycle accurate simulator

Select Little endian. If little endian is not selected, building/linking error can
occur. Add it to the left panel. Save and quit.

Project--> New--> Project Name----> Location(Location of project) ---> Project


---> type (.out Executable) ---> Target -->(TMS320C67xx)
Write the code in a new source file. Save it in the project folder with .C file
format.

Write the code in a new source file. Save it in the project folder with .C file
format.
Add this to the project. Project will be having .pjt extension. Right click on .pjt
file created, add the .c file you have written.

Two other files are to be added to project. One is library file (*.lib) and other is
Linker command file (*.cmd)
Add rts6713.lib C:\CCStudio_v3.1\C6000\cgtools\librts6700.lib
Add hello.cmd C:\CCStudio_v3.1\tutorial\dsk6713\hello1\hello.cmd
Debug --- > Build
File ---> Load Program(Often this is the most comman mistake to forget this..!)
Load the .out file which is in the DEBUG folder of the project folder. Select this
and open.
Debug --- > Debug Run
Procedure for execution in TMS320DSK6713 kit
CCS Studio Setup v3.1 --> Family (67xx) --- > Platform (dsk) Endianness -->
Little endian ---> Add it to panel. Click on 6713dsk, save and quit.
Connect the power card to the DSP kit.
Connect the data cable ---> USB from PC

After getting the project window, DEBUG--> CONNECT.


Rest of the procedure is same as compared to simulator running.
1. Linear convolution of two given sequences.
/* prg to implement linear convolution */
#include<stdio.h>
#include<math.h>
int y[20];
main()
{ int m=6; /*Lenght of i/p samples sequence*/
int n=6; /*Lenght of impulse response Co-efficients */
int i=0,j;
int x[15]={1,2,3,4,5,6,0,0,0,0,0,0}; /*Input Signal Samples*/
int h[15]={1,2,3,4,5,6,0,0,0,0,0,0}; /*Impulse Response Coefficients*/
for(i=0;i<m+n-1;i++)
{
y[i]=0;
for(j=0;j<=i;j++)
y[i]+=x[j]*h[i-j];
}
printf("Linear Convolution\n");
for(i=0;i<m+n-1;i++)
printf("%d\n",y[i]);
}
2. Circular convolution of two given sequences.
#include<stdio.h>
#include<math.h>
int m,n,x[30],h[30],y[30],i,j,temp[30],k,x2[30],a[30];
void main()
{
printf(" enter the length of the first sequence\n");
scanf("%d",&m);
printf(" enter the length of the second sequence\n");
scanf("%d",&n);
printf(" enter the first sequence\n");
for(i=0;i<m;i++)
scanf("%d",&x[i]);
printf(" enter the second sequence\n");
for(j=0;j<n;j++)
scanf("%d",&h[j]);
if(m-n!=0) /*If length of both sequences are not equal*/
{
if(m>n) /* Pad the smaller sequence with zero*/
{
for(i=n;i<m;i++)
h[i]=0;
n=m;
}
for(i=m;i<n;i++)
x[i]=0;
m=n;

}
y[0]=0;
a[0]=h[0];
for(j=1;j<n;j++) /*folding h(n) to h(-n)*/
a[j]=h[n-j];
/*Circular convolution*/
for(i=0;i<n;i++)
y[0]+=x[i]*a[i];
for(k=1;k<n;k++)
{
y[k]=0;
/*circular shift*/
for(j=1;j<n;j++)
x2[j]=a[j-1];
x2[0]=a[n-1];
for(i=0;i<n;i++)
{
a[i]=x2[i];
y[k]+=x[i]*x2[i];
}
}
/*displaying the result*/
printf(" the circular convolution is\n");
for(i=0;i<n;i++)
printf("%d \t",y[i]);
}

3. Computation of N- Point DFT of a given sequence


#include<stdio.h>
#include<math.h>
void main()
{
short N = 8;
short x[8] = {1,2,3,4,5,6,7,0}; // test data
float pi = 3.1416;
float sumRe = 0, sumIm = 0; // init real/imag components
float cosine = 0, sine = 0; // Initialise cosine/sine components
// Output Real and Imaginary components
float out_real[8] = {0.0}, out_imag[8] = {0.0};
int n = 0, k = 0;
for(k=0 ; k<N ; k++)
{
sumRe = 0;
sumIm = 0;
for (n=0; n<N ; n++)
{
cosine = cos(2*pi*k*n/N);
sine = sin(2*pi*k*n/N);

sumRe = sumRe + x[n] * cosine;


sumIm = sumIm - x[n] * sine;
}
out_real[k] = sumRe;
out_imag[k] = sumIm;
printf("[%d] %7.3f %7.3f \n", k, out_real[k], out_imag[k]);
}
}
/*Impulse response of the system
y[n] + a1 y[n-1] + a2 y[n-2] + .. = b0 x[n] + b1 x[n-1]
+ b2 y[n-2] + ..
Example :
1 y[n] + 1 y[n-1] + 1 y[n-2] = 1 x[n] + 2 x[n-1] + 1 y[n-2]
*/
#include<stdio.h>
#define order 2 /*Order of the system*/
#define len 10 /*Length of the output pulses*/
float y[len]={0,0,0},sum;
main()
{
int j,k;
float a[order+1]={1,1,1};
/* y coefficients may change in accordance with the difference
equation */
float b[order+1]={1,2,1};
/* x coefficients may change in accordance with the difference
equation */
for(j=0;j<len;j++)
{
sum=0;
for(k=1;k<=order;k++)
{
if((j-k)>=0)
sum=sum+(b[k]*y[j-k]);
}
if((j)<=order)
{
y[j]=a[j]-sum;
}
else
{
y[j]=-sum;
}
printf("response[%d]=%f\n",j,y[j]);
}
}

You might also like