You have no items in your shopping cart.

Subtotal: 0.00

Linear Convolution using TMS320F2812 DSP



To perform the Linear Convolution of two given discrete sequence in TMS320F2812 KIT.



Convolution is a formal mathematical operation, just as multiplication, addition, and integration. Addition takes two numbers and produces a third number, while convolution takes two signals and produces a third signal. Convolution is used in the mathematics of many fields, such as probability and statistics. In linear systems, convolution is used to describe the relationship between three signals of interest: the input signal, the impulse response, and the output signal.

If the input and impulse response of a system are x[n] and h[n] respectively, the convolution is given by the expression,

x[n] * h[n] = ε x[k] h[n-k]

Where k ranges between -∞ and ∞


x(n) is a M- point sequence
h(n) is a N – point sequence
then, y(n) is a (M+N-1) – point sequence.

In this equation, x(k), h(n-k) and y(n) represent the input to and output from the system at time n. Here we could see that one of the inputs is shifted in time by a value every time it is multiplied with the other input signal. Linear Convolution is quite often used as a method of implementing filters of various types.


1.Open Setup Code Composer Studio v3.3.

2.In System Configuration, select the board then >> Remove all >> yes.

a.In family, select C28xx.

b.In platform, select xds100 usb emulator.

c.In Endianness, select little.

d.Select F2812 XDS100 USB Emulator >> add >> save & quit >>no.

Note: The above two steps only for first time to setup the processor in CCS.

3.Open Code Composer Studio v3.3.

4.Project >> New.

a.Project name: type the project name.

b.Location: Browse, select the project location.

c.Project Type: Executable(.out)

d.Target: TMS320C28XX. >> Finish.

5. File >> New >> Source file.

a.Type the program in untitled window.

6. File >> Save.

a. Browse our project location then type our project name.c ( .c extension is must) >>save.

7. Paste the following two cmd files in our project folder.




8. Project >> Add files to project.

a. In file of type : All files

  • Ctrl + Select the following files
  • projectname.c
  • DSP281x_GlobalVariableDefs.c
  • F2812_EzDSP_RAM_lnk.cmd
  • DSP281x_Headers_nonBIOS.cmd >> open.

9.Project >> Build Option.

a.In compiler tab, select Preprocessor

>>Include search path(-i): C:\tidcs\c28\DSP281x\v120\DSP281x_headers\include

b.In linker tab, select libraries

>>Search path(-i): C:\CCStudio_v3.3\C2000\cgtools\lib

>>Incl libraries (-l): rts2800_ml.lib.

c.In linker tab, select Basic

>>Stack Size (-stack): 0x400 >> ok.

10.Project >> Build (or) Rebuild all.

11.Connections for TMS320F2812 KIT:

a.Connect 5v adapter to TMS320F2812 KIT.

b.Connect usb cable to TMS320F2812 KIT from pc.

c.Power on the TMS320F2812 KIT

12.Debug >> connect.

13.File >> Load Program >> Browse and select the projectname.out file >> open

14.Debug >> Go main.

15.View >> memory

a.Enter an Address: 0x3F9100 >> Enter.

b.Type the input.

>>For example:

1.0x3F9100 – 0x0001

2.0x3F9101 – 0x0001

3.0x3F9102 – 0x0001

4.0x3F9103 – 0x0001

16.View >> memory

a.Enter an Address: 0x3F9200 >> Enter.

>>For example:

1.0x3F9200 – 0x0001

2.0x3F9201 – 0x0001

3.0x3F9202 – 0x0001

4.0x3F9203 – 0x0001

17.View >> memory

a.Enter an Address: 0x3F9300 >> Enter.

18.Debug >> Run.

19.Debug >> Halt.

20.See the output at following location,

>>For example:

1.0x3F9300 – 0x0001

2.0x3F9301 – 0x0002

3.0x3F9302 – 0x0003

4.0x3F9303 – 0x0004

5.0x3F9304 – 0x0003

6.0x3F9305 – 0x0002

7.0x3F9306 – 0x0001

#define xn 4
#define hn 4
void main()
        int *x,*h,*y,i,n,k;
        x = (int *)0x003F9100;
        h = (int *)0x003F9200;
        y = (int *)0x003F9300;
                        y[n] = (y[n]) + ((x[k])*(h[n-k]));
        while (1);

Thus, the Linear Convolution of two given discrete sequence has performed and the result is stored at memory location (0x3F9300).