You have no items in your shopping cart.

Subtotal: 0.00

Cross Correlation using TMS320C6745 DSP

Aim

To perform the Cross Correlation of two given discrete sequence in TMS320C6745 KIT.


Requirements

 
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':

continuous functions

where f * denotes the complex conjugate of f.


discrete-functions

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

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 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:


Example :

0xC0001050 – 00000004


0xC0001054 – 00000012


0xC0001058 – 00000020


0xC000105C – 00000030


0xC0001060 – 00000020


0xC0001064 – 00000012


0xC0001068 - 00000004
Program
 
#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).