Aim
To perform the Cross Correlation of two given discrete sequence in TMS320C6745 KIT.
Requirements
☞CCS v4
☞USB Cable
☞5V Adapter
Theory
In signal processing, cross-correlation is a measure of similarity of two waveforms as a function of a time-lag applied to one of them.The cross-correlation is similar in nature to the convolution of two functions.
In signal processing, cross-correlation is a measure of similarity of two waveforms as a function of a time-lag applied to one of them. This is also known as a sliding dot product or sliding inner-product. It is commonly used for searching a long-duration signal for a shorter, known feature. It also has applications in pattern recognition, single particle analysis, electron tomographic averaging, cryptanalysis, and neurophysiology.
For continuous functions, f and g, the cross-correlation is defined as’:
where f * denotes the complex conjugate of f.
Similarly, for discrete functions, the cross-correlation is defined as:
The cross-correlation is similar in nature to the convolution of two functions.
In an autocorrelation, which is the cross-correlation of a signal with itself, there will always be a peak at a lag of zero unless the signal is a trivial zero signal.
Procedure to build a project on Cross Correlation using TMS320C6745 DSP
1. Open Code Composer Studio v4 .
2. In WorkSpace Launcher.
☞BROWSE → Select the project location and make one new folder, MAKE NEW FOLDER → Type the Workspace name, OK → OK.
3. FILE ⇒ NEW ⇒ CCS PROJECT
☞Project name: Type your project name.
☞Tick use default location. → NEXT
☞Project type C6000.
☞Tick Debug And Release. → NEXT → NEXT.
☞Output type: Executable.
☞Device Variant : generic – TMS320C6745.
☞Device Endianness : little
☞Code Generation Tools: TI v6.1.12.
☞Run time support library: automatic.
☞Target content: none. →FINISH
4.FILE ⇒ NEW ⇒ SOURCE FILE
☞Source file: Type your projectname.c( .c extension is must ).
☞Type the program.
☞FILE → SAVE.
5. Paste the following board library files in workspace location.
☞Common folder (contains header files)
☞Gel folder (contains gel file)
☞Library folder(contains library files)
6. Paste the Linker file in the project location.(linker file is available in cd)
Note: Those folders and linker file are availble at cd.
7. PROJECT ⇒ PROPERTIES ⇒ C/C++ BUILD → BASIC OPTION
☞Target processor version(–silicon version, -mv) : 6400+ OK.
☞IN C/C++ BUILD, → INCLUDE OPTIONS (Add dir to #include search path(–include_path,-I)) select this add icon and add the following three path by indivdually – “${Diag}../../common/header” – “${XDAIS_CG_ROOT}/packages/ti/xdais” – “${C6000_CSL_CG_ROOT}/include”
8. FILE ⇒ NEW ⇒ TARGET CONFIGURATION FILE
☞file name: projectname. ccxml (.ccxml extension is must)
☞Connection: Texas Instrument XDS100 v1 USB Emulator.
☞Device: TMS320C6745. (Tick the TMS320C6745)→ SAVE → TARTGET CONFIGURATION → C674X_0 → BROWSE, browse the workspace location, open the gel folder and select the GEL file. → OPEN → SAVE.
9. In C/C++ Project window, Right click the project ⇒ REBUILD PROJECT.
10. Connections
☞Connect the usb cable, PC to TMS320C6745 KIT.
☞Connect the 5v adapter.
☞Power on the kit.
11. TARGET ⇒ DEBUG ACTIVE PROJECT.
12. VIEW ⇒ MEMORY
13. In right side, memory window will open. Type the address and give the input at particular location.
Give the input as follow:
X(n)
0xC0001000 – 00000001
0xC0001004 – 00000002
0xC0001008 – 00000003
0xC000100C – 00000004
14. TARGET ⇒ RUN.
15. TARGET ⇒ HALT.
See the Output at Particular location:
0xC0001050 – 00000004
0xC0001054 – 00000012
0xC0001058 – 00000020
0xC000105C – 00000030
0xC0001060 – 00000020
0xC0001064 – 00000012
0xC0001068 – 00000004
Program for Cross Correlation using TMS320C6745 DSP
#define xn 4
#define hn 4
void main()
{
int *xval,*hval,*outval,*temp,j;
int n,k,i;
xval = (int *)0xc0001000;
hval = (int *)0xc0001030;
outval = (int *)0xc0001050;
temp = (int *)0xc0001070;
for(i=0;i<(xn+hn-1);i++)
{
temp[i]=0;
outval[i] = 0;
xval[xn+i]=0;
hval[hn+i]=0;
}
for(i=0,j=(hn-1);i<(hn);i++,j--) // making x2n(n-L)
temp[j] = hval[i];
for(n=0;n<(xn+hn-1);n++)
{
for(k=0;k<=n;k++)
outval[n] = (outval[n])+((xval[k])*(temp[n-k]));
}
Result
Thus, the Cross Correlation of two given discrete sequence has performed and the result is stored at memory location (0xC0001050).