You have no items in your shopping cart.

Subtotal: 0.00

Aim

To Implement the IIR High pass filter using TMS320C5505 KIT.

Requirements

  • CCS v4
  • TMS320C5505 KIT
  • USB Cable
  • 5V Adapter

Theory

Infinite impulse response (IIR) is a property of signal processing systems. Systems with this property are known as IIR systems or, when dealing with filter systems, as IIR filters. IIR systems have an impulse response function that is non-zero over an infinite length of time. This is in contrast to finite impulse response (FIR) filters, which have fixed-duration impulse responses. The simplest analog IIR filter is an RC filter made up of a single resistor (R) feeding into a node shared with a single capacitor (C). This filter has an exponential impulse response characterized by an RC time constant. Because the exponential function is asymptotic to a limit, and thus never settles at a fixed value, the response is considered infinite.

IIR filters may be implemented as either analog or digital filters. In digital IIR filters, the output feedback is immediately apparent in the equations defining the output. Note that unlike FIR filters, in designing IIR filters it is necessary to carefully consider the "time zero" case in which the outputs of the filter have not yet been clearly defined.

Example IIR filters include the Chebyshev filter, Butterworth filter, and the Bessel filter.

Digital filters are often described and implemented in terms of the difference equation that defines how the output signal is related to the input signal:





where:

P is the feedforward filter order

bi are the feedforward filter coefficients

Q is the feedback filter order

ai are the feedback filter coefficients

x[n] is the input signal

y [n] is the output signal.

After derived the above equation , finally

Considering that in most IIR filter designs coefficient is 1, the IIR filter transfer function takes the more traditional form:





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: C5500.
  • Tick Debug And Release. → NEXT → NEXT.
  • Output type: Executable.
  • Device Variant : TMS320C55XX - TMS320C5505.
  • Device Endianness : big
  • Code Generation Tools: TI v4.3.5.
  • 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.

  • include 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) : 5505 OK.

8. FILE ⇒ NEW ⇒ TARGET CONFIGURATION FILE

  • file name: projectname. ccxml (.ccxml extension is must)
  • Connection: Texas Instrument XDS100 v1 USB Emulator.
  • Device: TMS320C5505. (Tick the TMS320C5505)→ SAVE → TARTGET CONFIGURATION →C55XX_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 TMS320C5505 KIT.
  • Connect the 5v adapter.
  • Power on the kit.

11. TARGET ⇒ DEBUG ACTIVE PROJECT.

12. TARGET ⇒ RUN.(wait few seconds)

13. Output is displayed at Console Window.

  • Enter order of IIR HP Filter: 2 (Enter)
  • Enter the Cutoff Freq: 100 (Enter)

14. TARGET ⇒ HALT.

Program

#include "stdio.h" #include<math.h> int i,w,wc,c,N; float H[100]; float mul(float, int); void main() { printf("\n Enter order of IIR HP Filter: "); scanf("%d",&N); printf("\n Enter the Cutoff Freq: "); scanf("%d",&wc); for(w=0;w<=100;w++) { H[w]=1/sqrt(1+mul((float)wc/w,2*N)); printf("H[%d]=%f\n",w,H[w]); } } float mul(float a,int x) { for(i=0;i<x-1;i++) a*=a; return(a); }

Result

Thus, the IIR High pass filter was Implemented and displayed the results in console window.