You are on page 1of 19

I HC QUC GIA TP.

HCM
TRNG I HC BCH KHOA
KHOA IN IN T
________________

P. F. I. E. V

BO CO
X L CC TN HIU
TNG T V S
ti: Vit chng trnh thc hin cc bin i
DTFT, DFT/FFT dng TMS320C5515
GVBM: PGS.TS L Tin Thng
Lp : VP2008
Thc hin:
Hong Gia Minh
20801248
V Hi Qun
50801722
Trn H Minh Quyn
90801746

Tp.H Ch Minh, 6/2012

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

MC LC
MC CH BI TH NGHIM .................................................................................. 2

I.

II. GII THIU ................................................................................................................. 2


III.

CNG C YU CU CHO BI TH NGHIM .................................................... 2

A. Phn mm v phn cng ........................................................................................... 2


B. Gii thiu b KIT TMS320C5515 eZdsp USB Stick Development Tool ............ 3
IV.

TIN HNH TH NGHIM..................................................................................... 4

A. Phn DTFT ................................................................................................................ 5


1. Thc hin bin i DTFT trn MATLAB ............................................................. 5
2. Chng trnh vit bng ngn ng C cho KIT TMS320C5515 .............................. 7
B. Phn FFT ................................................................................................................... 8
1. M hnh l thuyt ................................................................................................... 8
2. M hnh th nghim ................................................................................................ 8
3. Phn thc hnh ....................................................................................................... 9
V.

KT LUN ............................................................................................................... 18

VI. TI LIU THAM KHO ......................................................................................... 18

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

I.

MC CH BI TH NGHIM
n tp cc kin thc v cc php bin i DTFT, DFT v FFT
Cung cp ci nhn thc t v kho st tn hiu trn min tn s qua vic hin thc
cc php bin i trn phn cng v kim nghim so vi l thuyt

II.

GII THIU
Vic phn tch ph tn hiu l mt trong nhng lnh vc quan trng ca x l s tn
hiu. Do , bi th nghim ny cp n cc php bin i tn hiu ri rc
kho st trn min tn s gm Discrete Time Fourier Transform (DTFT), Discrete
Fourier Transform (DFT) v Fast Fourier Transform (FFT) thc hin trn phn
cng TMS320C5515 ca Texas Instrument (TI). Mc d, DTFT l c s l thuyt
ton hc v DFT t c s dng trong thc t, chng ta cng xem xt chng nhm
2 mc ch chnh. Th nht, DTFT v DFT l c s cho FFT. Th hai, trong khi
hin thc FFT chng ta c th d dng theo di cc qu trnh tnh ton trn mch.

III. CNG C YU CU CHO BI TH NGHIM


A.

Phn mm v phn cng


Cc phn cng v phn mm cn thit cho bi th nghim bao gm
B TMS320C5515 eZdsp USB Stick Development Tool do TI sn xut.
Phn mm giao tip gia PC vi b KIT Code Composer Studio version
4.0
Phn mm tnh ton MATLAB
My PC cu hnh Intel Pentium hay tng ng tr ln

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

B.

Gii thiu b KIT TMS320C5515 eZdsp USB Stick Development


Tool

Hnh 1 B Kit TMs320C5515

Cc thnh phn chnh ca b KIT


C55x CPU v cc b nh lin quan
Phn cng tng tc FFT
Bn b iu khin DMA v giao din b nh bn ngoi
Module qun l in
Cc thit b ngoi vi I/O bao gm I2S, I2C, SPI, UART, Timers, EMIF, 10bit SAR ADC, iu khin LCD, USB 2.0

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 2 S khi chc nng b kit

IV. TIN HNH TH NGHIM


To 2 tn hiu ng vo, 2 tn hiu ny s c dng thc hin trong sut bi th
nghim.

Thc hin ly mu tn hiu x1, x2 trn vi tn s ly mu fS = 1000 Hz v ly 128


mu u tin, trong MATLAB chng ta c th c c iu ny bng cc dng lnh
sau:
(Chng ta m hnh ha nhiu tn hiu trong thc t bng hm rand trong MATLAB
cng vo tn hiu gc)
fs=1000;
t=0:1/fs:(128-1)/fs;
x1 = 3*sin(300*pi*t)+5*sin(600*pi*t)+1*rand(size(t));
x2 = 2*sin(600*pi*t)+5*sin(400*pi*t)+4*sin(200*pi*t)+1*rand(size(t));
subplot(1,2,1);
stem(x1);
ylabel('x1(k)');

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515


xlabel('k');
subplot(1,2,2);
stem(x1);
ylabel('x2(k)');
xlabel('k');

Hnh 3 M hnh ho tn hiu x1 v x2

A.

Phn DTFT
1.

Thc hin bin i DTFT trn MATLAB

clear all;
fs=1000;
n = 0:127;
x1 = 3*sin(300*pi*n/fs)+5*sin(600*pi*n/fs)+1*rand(size(n));
x2 = ...
2*sin(600*pi*n/fs)+5*sin(400*pi*n/fs)+4*sin(200*pi*n/fs)+1*rand(size(n));
k = -127:127; w = (pi/127)*k;
% frequency between -pi and +pi
X1 = x1*(exp(-1i*pi/127)).^(n'*k);
% DTFT of x1
%
X2 = x2*(exp(-1i*pi/127)).^(n'*k);
% DTFT of x2
% Graphical verification
subplot(2,2,1); plot(w/pi,abs(X1)); grid;
xlabel('frequency in pi unit'); ylabel('|X1|');
title('Magnitude of X1');
subplot(2,2,2); plot(w/pi,angle(X1)); grid;
xlabel('frequency in pi unit'); ylabel('radiants/pi');
title('Angle of X1');
subplot(2,2,3); plot(w/pi,abs(X2)); grid;
xlabel('frequency in pi unit'); ylabel('|X1|');
title('Magnitude of X2');

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515


subplot(2,2,4); plot(w/pi,angle(X2)); grid;
xlabel('frequency in pi unit'); ylabel('radiants/pi');
title('Angle of X2');

Hnh 4 Bin v gc pha tn hiu (c xt nhiu)

Nhn thy khi chng ta m hnh ha nhiu tn hiu trong thc t bng
lm rand trong MATLAB cng vo tn hiu gc, ph thu c s xut
hin bp tn s DC. y l iu khng mong mun nhng v tng
qut, chng ta nn xt ti s xut hin ca nhiu m c th l thng qua
s xut hin ca hm rand.
i vi trng hp l tng l tn hiu hon ton khng b nhiu cng
vo, chng ta c kt qu sau. Tuy nhin, y l iu kh c th tn ti
trong thc t.

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 5 Bin v gc pha tn hiu (khng nhiu)

2.

Chng trnh vit bng ngn ng C cho KIT TMS320C5515

/* dtft.c - DTFT of length-L signal at a single frequency w */


#include <cmplx.h>

/* complex arithmetic */

complex dtft(L, x, w)
w); */
double *x, w;
dimensional */
int L;
{
complex z, X;
int n;

/* usage: X=dtft(L, x,
/* \(x\) is \(L\)-

z = cexp(cmplx(0, -w));

/* set \(z=e\sp{-j\om}\)

X = cmplx(0,0);

/* initialize \(X=0\) */

*/

for (n=L-1; n>=0; n--)


X = cadd(cmplx(x[n], 0), cmul(z, X));
return X;
}

7
/* dtftr.c - N DTFT values over frequency range [wa, wb) */
#include <cmplx.h>

/* complex arithmetic */

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515


complex dtft();
*/

/* DTFT at one frequency

void dtftr(L, x, N, X, wa, wb)


X, wa, wb); */
double *x, wa, wb;
dimensional real */
complex *X;
dimensional complex */
int L, N;
{
int k;
double dw = (wb-wa)/N;

/* usage: dtftr(L, x, N,
/* \(x\) is \(L\)/* \(X\) is \(N\)-

/* frequency bin width */

for (k=0; k<N; k++)


X[k] = dtft(L, x, wa + k*dw);
\(X(\om\sb{k})\) */
}

B.

/* \(k\)th DTFT value

Phn FFT
1.

M HNH L THUYT
Gii thiu gii thut thc hin trong th nghim
Trong phn th nghim thc hin gii thut FFT trn phn cng l b
KIT TMS320C5515, chng ta s dng gii thut tnh FFT chia tr
loi c s 2 (FFT Algorithm with Radix-2). Gii thut ny l mt loi
bin i DFT nhng c u im l gim phc tp tnh ton cho N
im t
xung
.
y l loi gii thut rt c bn v ph bin nn trong khun kh bi bo
co th nghim hn hp ny, chng ti xin c khng trnh by. Ni
dung thut ton ny c th c tm thy d dng trong cc ti liu tham
kho c lit k cui bi cng nh cc ti liu khc v x l s tn
hiu.

2.

M HNH TH NGHIM

To tn hiu
bng
MATLAB

Thc hin
FFT trn
MATLAB

V th
trn min
tn s

Thc hin
FFT trn
b KIT

V th
trn min
tn s

So snh v
nhn xt

Hnh 6 M hnh thc hin th nghim

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

3.

PHN THC HNH


a)

To tn hiu u vo v thc hin gii thut FFT bng MATLAB

fs = 1000;
t = 0:1/fs:(128-1)/fs;
x1 = 3*sin(2*pi*150.*t)+5*sin(2*pi*300.*t)+1*rand(size(t));
figure
stem(x1);
ylabel('Bien do cua tin hieu');
xlabel('Mau cua tin hieu');
title('Tin hieu x1 sau khi lay mau voi tan so fs = 1000');
m = length(x1) ;
n = pow2(nextpow2(m)) ;
X1 = fft(x1,n);
magX1 = abs(X1);
f = (-n/2:n/2-1)*(fs/n);
figure
stem(f,magX1);
xlabel('Tan so (Hz)');
ylabel('Bien do cua tin hieu');
title('FFT su dung MATLAB');

Kt qu hin th trn MATLAB sau khi chy chng trnh trn.

Hnh 7 Tn hiu sau khi ly mu vi tn s fs = 1000 Hz

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 9 Ph tn s tn hiu sau php bin i FFT trn MATLAB

Chng ta cng c th v li ph tn s ca tn hiu di dng th


ni im nh hnh sau

10

Hnh 8 th ni im ca ph tn s tn hiu

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

n bc ny, chng ta thc hin xong nhnh trn ca s th


nghim hnh 6.
b)

To file ng vo cho b KIT


on chng trnh sau dng to file ng vo cho b KIT do cc
mu ca tn hiu kho st c to ra bng chng trnh MATLAB
nn cc mu ny s c lu di dng bin ma trn 1x128.
KIT vn giao tip vi my tnh qua phn mm CCS lm vic vi
ngn ng C c th c c cc gi tr ny, chng ta cn chuyn
cc gi tr trn lu thnh file ui .bin

samples1 = round(x1);
var = zeros(1,256);
% Re != 0, Im = 0
for i = 0:127
var(1+2*i) = samples1(1+i);
end
samples1 = var;
id = fopen('D:\Project_TMS320C5515\workspace\FFT\samples1.bin','wb');
fwrite(id, samples1,'int16');
% important: int16
fclose(id);

c)

2.3 Chy chng trnh trn CCS v kt ni vi KIT TMS320C5515


cho kt qu
Th vin DSPLib cung cp hm ton tnh FFT. Chng ta s
s dng chng tnh ton ph tn hiu.
u tin, chng ta phi thm th vin bao gm cc th vin c sn
trong CCS, cc th vin ngoi thm vo v cc file assembly h tr
thm cho chng trnh nh sau.
Lu phi to tt c ng dn n cc th vin ny bng cch
nhp phi chut vo "Active Project Properties C/C++ Build
Tool Settings C5500 Compiler Include Options Add
dir to #include Search Path (--include_path, -I)"

11

Hnh 10 Giao din th C/C++ Project sau khi thm th vin

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Th mc chng trnh vit bng ngn ng C gm cc file th vin


v file main.c v transceiver_file.c
File main.c
#include
#include
#include
#include
#include
#include

<stdio.h>
<math.h>
<tms320.h>
<dsplib.h>
"usbstk5515.h"
"transceiver_file.h"

//#include "t6_SCALE.h"
#define
NX
128
int main()
{
DATA x[2*NX], *px = x ;
// Uint16 i ;
printf(" Import samples1.bin \n ") ;
ImportFile( 2*NX , (Uint16*)px ) ;
// compute
printf(" Processing \n ") ;
cfft(x,NX, NOSCALE);
cbrev(x,x,NX);
printf(" Export FFT1.bin \n ") ;
ExportFile( 2*NX, (Uint16*)px ) ;
printf(" Done \n ") ;
return 0 ;
}

Chng trnh chnh main.c thc hin vic gi hm cfft thc hin
gii thut FFT t chng trnh con CFFT.C.
Vic c d liu a vo KIT, ly d liu t KIT v ghi kt qu
tnh ton t KIT vo file FFT1.bin c thc hin nh vo chng
trnh transceiver_file.c.
File transceiver_file.c
#include <stdio.h>
#include "usbstk5515.h"
#include "transceiver_file.h"
Uint16 ImportFile( Uint32 pixel, Uint16 *p_buffer_data )
{
FILE *fp ;
Uint16 data , pdata[2] ;
Uint32 i ;
fp = fopen ( "D:\\Project_TMS320C5515\\workspace\\FFT\\samples1.bin",
"rb" ) ;
if ( fp == (FILE*)NULL )
{
printf(" Error : can't open file_in \n" ) ;
return 1 ;
// check error
}
for ( i = 0 ; i < pixel; i++ )
{

Nhm 8 VP2008 | X l tn hiu tng t v s

12

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515


fread(pdata, 1, 2, fp);
data = *(pdata) | ((*(pdata+1) ) << 8);
p_buffer_data[i] = data ;
}
fclose ( fp ) ;
return 0 ;
}
Uint16 ExportFile( Uint32 pixel, Uint16 *p_buffer_data )
{
FILE *fp ;
Uint32 i ;
fp = fopen ( "D:\\Project_TMS320C5515\\workspace\\FFT\\FFT1.bin", "wb"
) ;
if ( fp == (FILE*)NULL )
{
printf(" Error : can't open file_in \n" ) ;
return 1 ;
// check error
}
for (i = 0; i < pixel; i++ )
{
fputc(p_buffer_data[i] & 0xFF, fp);
fputc(p_buffer_data[i] >> 8, fp);
// fwrite(p_buffer_data, 1, pixel, fp);
}
fclose(fp) ;
return 0 ;
}

Kt qu thc hin khi build v debug thnh cng trn phn mm


Code Composer Studio kt ni vi phn cng KIT TMS320C5515.
Giao din phn mm CCS c ghi li nh hnh sau.

13

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 11 Giao din chnh chng trnh CCS

Hnh 12 Giao din th Debug

Hnh 13 Kt qu tnh ton FFT trn KIT c ghi li trong file FFT1.bin

d)

Hin th kt qu sau khi chy trn KIT trn MATLAB


on chng trnh sau gip c file FFT1.bin sau khi chy thut
ton FFT trn KIT v hin th ph tn s trn MATLAB

id = fopen('D:\Project_TMS320C5515\workspace\FFT\FFT1.bin','rb');
fft_board = fread(id,256,'int16');
fclose(id);
fft_board = fft_board';

Nhm 8 VP2008 | X l tn hiu tng t v s

14

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515


for k = 0:127
new(1+k) = fft_board(1+2*k)+1i*fft_board(2+2*k);
end
abs_new = abs(new) ;
stem(f,abs_new)
xlabel('Tan so (Hz)');
ylabel('Bien do cua tin hieu');
title('FFT su dung KIT TMS320C5515');

Hnh 14 Ph tn s tn hiu sau php bin i FFT trn KIT TMS320C5515

Ph tn hiu c v li di dng th ni im

15

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 15 th ni im ca ph tn s tn hiu

n bc ny, chng ta thc hin xong nhnh di ca s th


nghim
Tip theo s l so snh kt qu v nhn xt.
e)

So snh v nhn xt 2 kt qu

16

Nhm 8 VP2008 | X l tn hiu tng t v s

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

Hnh 16 So snh ph tn s

Hnh 17 So snh th ni im

T th, chng ta c th d dng nhn thy gii thut FFT thc


hin bng MATLAB v bng b KIT TMS320C5515 cho kt qu
gn nh nhau.
Cc tn s cc i, bin , suy hao, hnh dng ca cc bp ph
chnh nh nhau, ngay c cc bp ph ph cng khc bit rt t trong
2 th nghim tnh ton trn MATLAB v trn b KIT.
B KIT TMS320C5515 do TI sn xut hot ng tin cy cho kt
qu vi chnh xc cao.
Nhm 8 VP2008 | X l tn hiu tng t v s

17

Thc hin php bin i DTFT, DFT/FFT trn b kit TMS320C5515

f)

Kim chng li th nghim vi tn hiu x2

fs = 1000;
t = 0:1/fs:(128-1)/fs;
x2 = 2*sin(600*pi*t)+4*sin(200*pi*t)+5*sin(400*pi*t)+1*rand(size(t));

Thc hin tng t cc bc nh trn, chng ta thu c kt qu


sau

Hnh 18 Php bin i FFT ca x2 trn MATLAB v trn KIT TMS320C5515

g)

V.

Nhn xt kt qu thu c
Mt ln na chng ta li thu c kt qu t b KIT tng t nh
kt qu tnh ton l thuyt t MATLAB.

KT LUN
Cc php bin i DTFT, DFT/FFT l nhng kin thc cn bn trong lnh vc x l
tn hiu. Thng qua bi th nghim, sinh vin c tip cn vi php bin i trn
phn cng v kim nghim li cc kt qu ca php bin i bng b KIT
TMS320C5515. T , sinh vin c ci nhn thc t hn v cc phng php ny.

VI. TI LIU THAM KHO


[1] Sophocles J. Orfanidis, Introduction to Signal Processing, 2010.
[2] Vinay K. Ingle and John G. Proakis, Digital Signal Processing using MATLAB
v4, 1997, PWS Publishing Company.
[3] TMS320C55x DSP Library Programmers Reference, Texas Instrument.
[4] Sen M Kuo and Bob H Lee, Real-Time Digital Signal Processing
Implementation, Applications, and Experiments with the TMS320C55X, John
Wiley & Son Ltd, 2001.
[5] J. G. Proakis and D. G. Manolakis, Digital Signal Processing Principles,
Algorithms, and Apllications, 3rd Ed., Englewood Cliffs, NJ: Prentice-Hall, 1996.
Nhm 8 VP2008 | X l tn hiu tng t v s

18

You might also like