Professional Documents
Culture Documents
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
MC LC
MC CH BI TH NGHIM .................................................................................. 2
I.
KT LUN ............................................................................................................... 18
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.
B.
A.
Phn DTFT
1.
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');
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.
2.
/* 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\) */
*/
7
/* dtftr.c - N DTFT values over frequency range [wa, wb) */
#include <cmplx.h>
/* complex arithmetic */
/* usage: dtftr(L, x, N,
/* \(x\) is \(L\)/* \(X\) is \(N\)-
B.
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
3.
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');
10
Hnh 8 th ni im ca ph tn s tn hiu
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)
11
<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++ )
{
12
13
Hnh 13 Kt qu tnh ton FFT trn KIT c ghi li trong file FFT1.bin
d)
id = fopen('D:\Project_TMS320C5515\workspace\FFT\FFT1.bin','rb');
fft_board = fread(id,256,'int16');
fclose(id);
fft_board = fft_board';
14
Ph tn hiu c v li di dng th ni im
15
Hnh 15 th ni im ca ph tn s tn hiu
So snh v nhn xt 2 kt qu
16
Hnh 16 So snh ph tn s
Hnh 17 So snh th ni im
17
f)
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));
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.
18