Professional Documents
Culture Documents
Tr ng i h c Tôn c Th ng
Khoa i n – i n T
B môn i n t - Vi n Thông
LÝ S TÍN HI U
u thí nghi m
n thông
1
Tài li u thí nghi m X lý s tín hi u
GI I THI U
2
Tài li u thí nghi m X lý s tín hi u
1. S D NG MATLAB THI T K B L CS
1.1 Thi t k b l c s b ng công c SPTool
SPTool là m t công c có giao di n t ng tác dùng cho x lý s tín hi u. Công c này
có th c s d ng phân tích tín hi u, thi t k các b l c, phân tích các b l c, l c
tín hi u và phân tích ph c!a tín hi u.
kh#i ng SPTool, t d u nh c l nh c!a MATLAB, nh p l nh
>> sptool
Khi ó, giao di n c!a SPTool s" xu t hi n nh sau:
3
Tài li u thí nghi m X lý s tín hi u
4
Tài li u thí nghi m X lý s tín hi u
iv. Filter Order = 88, Respone Type = Bandstop, Fc1 = 2500, Fc2 = 2900,
Beta = 4
c. Nh n Design Filter. Khi ó áp ng t n s c!a b l c thi t k s" c hi n th .
Hình 3. áp ng t n s c a b l c ã thi t k
3. Tr# v c a s SPTool, trong c t Filters s" xu t hi n thêm m t dòng filt1 [design].
ây chính là b l c v a thi t k . Sau này, n u mu n s a i thi t k , ch n l i tên
b l c và nh n nút Edit # phía d $i. d nh$, ta s" thay i tên b l c trên
thành bs2700 b(ng cách ch n Edit Name… filt1 [design]. Trong c a s m$i
xu t hi n, nh p tên m$i.
Khi thi t k m t b l c FIR nh trên, k t qu mà ta c n nh n c sau khi thi t k là
các giá tr c!a vector áp ng xung h c!a b l c thi t k . l y các giá tr c!a vector
áp ng xung, ta th c hi n nh sau:
1. T c a s SPTool, ch n File Export… Trong Export list xu t hi n, ch n
Filter: bs2700 [design] r i nh n nút Export to workspace
2. óng c a s SPTool l i. M t thông báo xu t hi n h*i có mu n l u l i phiên làm
vi c hi n t i hay không. N u mu n l u l i, ch n Save.
3. M# c a s Workspace c!a MATLAB, ta s" th y trong workspace s" xu t hi n
bi n m$i là bs2700. ây chính là b l c mà ta ã thi t k trong SPTool và xu t ra
workspace c!a MATLAB. Bi n này c l u d $i d ng m t c u trúc mô t b
l c ã thi t k . Nh n úp chu t vào tên bi n bs2700 trong workspace, ta s" th y
c các field c!a c u trúc này nh sau:
5
Tài li u thí nghi m X lý s tín hi u
6
Tài li u thí nghi m X lý s tín hi u
H ( z) = k
(z − z1 )(z − z 2 )...(z − z n )
(z − p1 )(z − p2 )...(z − pm )
Hàm truy n trên có th c vi t l i nh sau:
L L
b0 k + b1k z −1 + b2 k z −2
H ( z ) = g ∏ H k (z ) = g ∏ −1
k =1 k =1 1 + a1k z + a2 k z −2
V$i L là s nguyên g n nh t l$n h n c c i c!a n/2 và m/2.
Trong MATLAB, các ph n b c 2 c!a H(z) c l u trong 1 ma tr n nh sau:
7
Tài li u thí nghi m X lý s tín hi u
b0 L b1L b2 L 1 a1L a2 L
T các h s t và m+u # trên, ta s" chuy n thành d ng các ph n b c hai b(ng các l nh
sau:
1.2
0.8
0.6
0.4
0.2
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
8
Tài li u thí nghi m X lý s tín hi u
9
Tài li u thí nghi m X lý s tín hi u
10
Tài li u thí nghi m X lý s tín hi u
Hình 8. S kh i c a DSK
11
Tài li u thí nghi m X lý s tín hi u
/*
12
Tài li u thí nghi m X lý s tín hi u
/*
13
Tài li u thí nghi m X lý s tín hi u
void main()
{
DSK6713_AIC23_CodecHandle hCodec;
Int16 msec, sample;
14
Tài li u thí nghi m X lý s tín hi u
B sung Source file v a t o vào project: Click ph i vào Source, ch n Add File to Project…
Ch n ng n n file sine_graph.c v a t o.
Ch n Project Scan All File Dependencies CCS t thêm vào các t p tin header.
Sau khi th c hi n các b $c trên, c a s Project View s" hi n th các t p tin ã c
thêm vào Project.
Xác #nh các tùy ch n $ biên d#ch ch% ng trình
15
Tài li u thí nghi m X lý s tín hi u
- b $c này, các tùy ch n CCS d ch ch ng trình ngu n thành t p tin th c thi s"
c thi t l p.
Option -> Customize -> Program/Project Load -> Check: Load Program After Build
Project -> Build Option -> Compiler -> Preprocessor -> Basic -> Target version:
C6710X (mv6710)
Project -> Build Option -> Linker -> Basic -> Output Module: Relocatable
Excutable (-ar)
Project -> Build Option -> Linker -> Basic -> Library Search Path (-i):
$(Install_dir)\c6000\dsk6713\lib
Project -> Build Option -> Linker -> Basic -> Include Libraries (-l): dsk6713bsl.lib
Project -> Build Option -> Compiler -> Preprocessor -> Include Search Path (i):
$(Install_dir)\c6000\dsk6713\include
Project -> Build Option -> Compiler -> Preprocessor -> Pre-Define Symbol (d):
_DEBUG;CHIP_6713
S d ng t p tin gain.gel
Trong ph n trên chúng ta ã c p n t p tin gain.gel. T p tin này t o m t giao di n
cho phép thay i bi n gain m t cách t ng tác khi ch ng trình ang ch y.
1. Tr $c h t, c n ph i n p t p tin này vào b(ng cách ch n File Load GEL và m#
t p tin gain.gel. Nh n úp chu t lên t p tin này trong c a s Project View xem
n i dung c!a nó.
16
Tài li u thí nghi m X lý s tín hi u
V' v i CCS
B m ra c c p nh t liên t c m'i 256 i m. Sau ây CCS s" c s d ng v"
d2 li u ra hi n t i ch a trong b m out_buffer.
18
Tài li u thí nghi m X lý s tín hi u
19
Tài li u thí nghi m X lý s tín hi u
20
Tài li u thí nghi m X lý s tín hi u
3. Gi i thi u
L c là m t trong nh2ng ho t ng x lý tín hi u quan tr ng. M t b l c t ng t ho t
ng trên các tín hi u liên t c và th ng c th c hi n v$i các linh ki n nh khu ch i
thu t toán, các i n tr# và các t i n. M t b l c s ho t ng trên tín hi u th i gian r i
r c và có th th c hi n v$i m t b x lý s tín hi u nh h TMS320C6x. Quá trình l c
bao g m s d ng m t b bi n i A/D nh n tín hi u vào, x lý các m+u vào r i g i
k t qu ra thông qua m t b bi n i D/A.
Các b l c s có r t nhi u u i m so v$i các b l c t ng t . Các u i m này bao g m
tin c y cao h n, chính xác cao h n và ít nh y v$i nhi t và tu i i. Các &c tính
l c nh t n s trung tâm, b1ng thông và lo i b l c có th thay i d dàng. M t s công
c có s,n cho vi c thi t k và th c hi n các b l c s m t cách nhanh chóng trên kit
TMS320C6x.
4. C s+ lý thuy t
B l c FIR nhân qu b c M có áp ng xung h = [h0, h1, …, hM] (chi u dài b(ng M + 1)
Ngõ ra c!a b l c c xác nh theo công th c tích ch p:
y ( n) = h ( m) x ( n − m) = x ( m) h ( n − m)
m m
21
Tài li u thí nghi m X lý s tín hi u
vM = vM-1
…
v1 = v0
22
Tài li u thí nghi m X lý s tín hi u
Thi t k b l c
1. S d ng công c SPTool trong MATLAB thi t k b l c trên v$i ph ng pháp
Least Squares FIR.
2. L u b l c ã thi t k v$i tên là lp2500 r i xu t ra workspace c!a MATLAB.
Th c hi n b l c
B l c này c th c hi n trên kit b(ng ch ng trình sau (vi t b(ng ngôn ng2 C)
23
Tài li u thí nghi m X lý s tín hi u
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Trong ch ng trình này, N là chi u dài c!a áp ng xung c!a b l c ( b(ng M + 1 v$i
M là b c c!a b l c) và áp ng xung c!a b l c là m ng h có kích th $c N. Giá tr c!a
N và vector h c khai báo trong t p tin coefficients.h. T p tin này c g p vào nh
ch% d+n #include. Nh v y, khi mu n thay i b l c, ch% c n thay i n i dung c!a t p
tin coefficients.h.
Ch ng trình trên có s d ng ng t. Khi có có xung l y m+u (t n s ch n # ây là
8KHz), trình ph c v ng t c_int11 c g i, c m+u vào và th c hi n gi i thu t x lý
m+u tính ngõ ra.
Do các h s c!a áp ng xung nh n c t quá trình thi t k là khá nh*, chúng ta s"
nhân nó v$i 215. M+u ra sau khi x lý c chia l i cho 215 b(ng cách d ch ph i 15 bit
(trong hàm output_sample(yn >> 15)). Vi c nhân các h s v$i 215 c ng là do b x lý
s" l ng t hóa các h s v$i m t s l ng bit h2u h n và vi c nhân lên s" gi m i sai
s .
Tóm l i, các b $c th c hi n b l c lên kit nh sau:
1. L y các h s c!a hàm truy n c!a b l c, nhân v$i h s t% l 215
>> cof = round(lp2500.tf.num*2^15)
2. N u c a s workspace c!a MATLAB ch a hi n th , hãy m# nó lên. Trong
workspace, nh n úp chu t vào tên bi n cof m# c a s Array Editor.
3. M# CCS (nh$ m# ngu n c!a DSK tr $c khi m# CCS).
4. M# t p tin project ( ã c t o s,n) FIR.pjt trong
C:\CCStudio_v3.1\myprojects\FIR.
5. Trong c a s Project View, tab File View, m# r ng ph n Include, m# t p tin
coeficients.h.
6. &t các h s c!a b l c v a thi t k vào trong t p tin này. (Có th copy và paste
t c a s Array Editor trên). i u ch%nh giá tr N cho úng v$i chi u dài áp ng
xung. L u ý r(ng các giá tr c!a áp ng xung cách nhau b(ng m t d u ph)y (,).
L u t p tin sau khi s a i.
7. Xác l p các tùy ch n phù h p (xem ph n h $ng d+n s d ng trong tài li u này)
r i ti n hành biên d ch ch ng trình. Sau khi d ch thành công, hãy n p ch ng
trình lên trên kit và ch y ch ng trình.
ánh giá k t qu th c hi n
1. Hãy th xem áp ng t n s c!a b l c v a th c hi n b(ng cách s d ng công c
v" trong mi n t n s c!a CCS. Ch n View Graph Time/Frequency. Ch n
24
Tài li u thí nghi m X lý s tín hi u
25
Tài li u thí nghi m X lý s tín hi u
3. Gi i thi u
L c là m t trong nh2ng ho t ng x lý tín hi u quan tr ng. M t b l c t ng t ho t
ng trên các tín hi u liên t c và th ng c th c hi n v$i các linh ki n nh khu ch i
thu t toán, các i n tr# và các t i n. M t b l c s ho t ng trên tín hi u th i gian r i
r c và có th th c hi n v$i m t b x lý s tín hi u nh h TMS320C6x. Quá trình l c
bao g m s d ng m t b bi n i A/D nh n tín hi u vào, x lý các m+u vào r i g i
k t qu ra thông qua m t b bi n i D/A.
Các b l c s có r t nhi u u i m so v$i các b l c t ng t . Các u i m này bao g m
tin c y cao h n, chính xác cao h n và ít nh y v$i nhi t và tu i i. Các &c tính
l c nh t n s trung tâm, b1ng thông và lo i b l c có th thay i d dàng. M t s công
c có s,n cho vi c thi t k và th c hi n các b l c s m t cách nhanh chóng trên kit
TMS320C6x.
4. C s+ lý thuy t
Hãy xem xét m t ph ng trình I/O t ng quát có d ng:
N M
y ( n) = a k x(n − k ) − b j y (n − j )
k =0 j =1
26
Tài li u thí nghi m X lý s tín hi u
27
Tài li u thí nghi m X lý s tín hi u
28
Tài li u thí nghi m X lý s tín hi u
29
Tài li u thí nghi m X lý s tín hi u
30
Tài li u thí nghi m X lý s tín hi u
Thi t k b l c
1. S d ng công c SPTool trong MATLAB thi t k b l c trên v$i ph ng pháp
Elliptic. L%u ý: i v i b l c IIR ch n d i và thông d i, b c %!c th$ hi n
trên MATLAB b ng s ph n b c 2, t c là b ng m t n a b c c a b l c th(c.
2. L u b l c ã thi t k v$i tên là bs1750 r i xu t ra workspace c!a MATLAB.
3. T các h s t và m+u # trên, ta s" chuy n thành d ng các ph n b c hai b(ng các
l nh sau:
>> [z,p,k] = tf2zp(bs1750.tf.num, bs1750.tf.den)
>> sos = zp2sos(z,p,k)
b0 L b1L b2 L 1 a1L a2 L
trong ó b0i, b1i, b2i là các h s t s hàm truy n c!a ph n b c 2 th i và 1, a1i, a2i là
các h s m+u s hàm truy n c!a ph n b c 2 th i.
Th c hi n b l c
B l c này c th c hi n trên kit b(ng ch ng trình sau (vi t b(ng ngôn ng2 C)
//IIR.c IIR filter using cascaded Direct Form II
//Coefficients a's and b's correspond to b's and a's from MATLAB
#include "DSK6713_AIC23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
#include "coefficients.h" //BS @ 1750 Hz coefficient file
short dly[stages][2] = {0}; //delay samples per stage
interrupt void c_int11() //ISR
{
short i, input;
int un, yn;
input = input_sample(); //input to 1st stage
for (i = 0; i < stages; i++) //repeat for each stage
{
un=input-((b[i][0]*dly[i][0])>>15)-
((b[i][1]*dly[i][1])>>15);
yn=((a[i][0]*un)>>15)+((a[i][1]*dly[i][0])>>15)+
((a[i][2]*dly[i][1])>>15);
dly[i][1] = dly[i][0]; //update delays
dly[i][0] = un; //update delays
input = yn; //intermed out->in to next stage
}
output_sample((short)yn); //output final result for time n
return; //return from ISR
}
31
Tài li u thí nghi m X lý s tín hi u
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Trong ch ng trình này, stages là s t ng c!a b l c (s ph n b c 2). Ma tr n a và b
t ng ng ch a các h s c!a t s và m+u s c!a các ph n b c 2. L%u ý: a và b trong
ch% ng trình này ng v i b và a trong ma tr n sos c a MATLAB. Giá tr c!a
stages, ma tr n a, ma tr n b c khai báo trong t p tin coefficients.h. T p tin này c
include vào nh ch% d+n #include. Nh v y, khi mu n thay i b l c, ch% c n thay i
n i dung c!a t p tin coefficients.h.
N i dung c!a t p tin coefficients.h có d ng nh sau:
//coefficients.cof coefficient file
32
Tài li u thí nghi m X lý s tín hi u
2. Trong c a s Project View, tab File View, hãy m# t p tin coefficients.h (trong
ph n Include). Hãy c p nh t t p tin này v$i các giá tr thu c trong ph n thi t
15
k # trên, sau khi nhân chúng v$i 2
>> sos = sos*2^15
3. Hãy d ch l i ch ng trình và n p lên kit C6713 và ch y ch ng trình
ánh giá k t qu th c hi n
1. M# ngu n c!a máy phát sóng. T o m t tín hi u hình sine t máy phát sóng và
quan sát d ng sóng ngõ ra. Thay i t n s c!a tín hi u vào và hãy xác nh t n s
c t 3-dB c!a b l c.
Sau khi ã th c hi n ví d trên, hãy áp d ng nh2ng gì ã h c th c hi n các thí
nghi m sau. V$i m'i bài thí nghi m, hãy a áp ng t n s c!a b l c vào trong bài
báo cáo.
(H ng d n: nêu sao chép th m c IIR ã có thành m t th m c v i tên khác và th c
hi n trên th m c m i này ng v i t ng b l c).
1. Thi t k m t b l c IIR thông th p thu c lo i Chebyshev 2 có các thông s nh
sau:
a. B c b l c: 10
b. C nh d i d i ch n: 1.6 KHz.
c. g n d i ch n: 60 dB
d. T n s l y m+u: 8 kHz.
Th c hi n b l c lên trên kit và ki m tra k t qu .
2. Thi t k b l c IIR thông d i thu c lo i Chebyshev 2 v$i các thông s nh sau:
a. B c b l c: 36 (Matlab hi n th là 18)
b. T n s c t d i ch n: 1600 và 2400 Hz
c. g n d i ch n 100 dB.
d. T n s l y m+u: 8 kHz.
Th c hi n b l c và ki m tra k t qu .
6.2 T"o hai tone b ng cách s d ng hai ph% ng trình sai phân b c 2
Trong thí nghi m này, chúng ta s" t o và c ng hai tone b(ng ph ng pháp ph ng trình
sai phân. Tín hi u ra c ng c l u trong b nh$ và c v" b(ng CCS. Ph ng trình
sai phân dùng t o m t sóng hình sine là
y (n) = Ay (n − 1) − y (n − 2)
trong ó:
A = 2 cos(ωT )
y (− 1) = − sin (ωT )
y (− 2 ) = − sin (2ωT )
1 1
v$i hai i u ki n ban u, y(-1) và y(-2), 3=2πf và T = = = 0.125ms là chu k/
FS 8kHz
l y m+u. H s A c!a ph ng trình sai phân, cùng v$i hai i u ki n u, xác nh t n
s c t o ra.
a. S d ng bi n i Z, hãy ch ng minh r(ng y(n) = sin(n3T)
33
Tài li u thí nghi m X lý s tín hi u
34
Tài li u thí nghi m X lý s tín hi u
35
Tài li u thí nghi m X lý s tín hi u
3. Gi i thi u
Trong các b l c FIR và IIR thông th ng, các thông s xác nh &c tính c!a b l c
c gi s là ã bi t. Chúng có th thay i theo th i gian nh ng tính ch t c!a s thay
i này xem nh ã bi t. Trong nhi u v n th c t , các thông s này h u h t là không
ch n ch n do thi u các d2 li u th tr $c. Vài thông s có th thay i theo th i gian
nh ng không th d oán c cách thay i. Trong các tr ng h p này, m t b l c có
th t thích nghi v$i s thay i s" là thích h p nh t. Các h s c!a b l c thích nghi
c i u ch%nh bù cho s thay i c!a tín hi u vào, tín hi u ra ho&c thông s c!a h
th ng. M t b l c thích nghi r t h2u ích khi có s không ch c ch n v &c tính c!a tín
hi u ho&c khi các &c tính thay i.
M t b l c r t n gi n nh ng r t m nh là b k t h p thích nghi tuy n tính (linear
adaptive combiner), th c ch t là m t bô l c FIR thích nghi. Tiêu chu)n trung bình bình
ph ng c c ti u LMS (Least Mean Squares) là m t gi i thu t tìm ki m c s d ng
i u ch%nh các h s c!a b l c.
4. C s+ lý thuy t
H u h t các d ng thích nghi có th c mô t b#i c u trúc nh sau:
v$i wk (n ) bi u di n N h s c!a b l c # th i i m n.
ánh giá ch t l ng c!a b l c, chúng ta s d ng m t phép o l ng d a trên tín hi u
sai s ,
e(n ) = d (n ) − y (n )
Sai s này là s sai khác gi2a tín hi u mong mu n d(n) và ngõ ra y(n) c!a b l c. Các h
s wk (n ) c i u ch%nh sao cho m t hàm sai s trung bình bình ph $ng c c c ti u.
[ ]
Hàm này là E e 2 (n ) v$i E[] bi u di n giá tr k/ v ng. Do có N h s (hay tr ng s ), c n
tính gradient c!a hàm sai s trung bình bình ph ng. M t s $c l ng có th cs
d ng b(ng cách dùng gradient c!a e2(n), cho k t qu :
wk (n + 1) = wk (n ) + 2βe(n )x(n − k ), k = 0,1,..., N − 1
th hi n gi i thu t LMS.
37
Tài li u thí nghi m X lý s tín hi u
b. M t ngõ vào
Trong tr ng h p 1 ngõ vào, c u trúc trên tr# thành m t b l c FIR (K+1) tap
v$i các h s i u ch%nh c. M'i ngõ vào c trì hoãn s" c nhân tr ng
s và c ng l i t o ngõ ra,
K
y (n ) = w(k , n )x(n − k )
k =0
38
Tài li u thí nghi m X lý s tín hi u
39
Tài li u thí nghi m X lý s tín hi u
w(0, n + 1) = w(0, n ) − β
[ ]
dE e 2
dw(0 )
V$i 5 là m t h(ng s d ng b t k/. Nh v" trên hình sau, vi c l&p l i công th c này s"
khi n w(0) di chuy n theo t ng b $c t giá tr ban u cho n khi n i m c c ti u.
40
Tài li u thí nghi m X lý s tín hi u
Và
T
2 ∂P ∂P ∂P
grad {E[e ]} = grad {P} =
∂w(0) ∂w(1) ∂w( K )
Chúng ta có th ch ng minh r(ng:
W(n+1) = W(n) + 2βe(n)X(n)
L u ý r(ng n u e(n) ti n n 0 thì W(n+1) = W(n) và tr ng s v+n không i.
for i=1:128
desired(i) = round(100*sin(2*pi*(i-1)*1500/8000)); %sin(1500)
addnoise(i) = round(100*sin(2*pi*(i-1)*312/8000)); %sin(312)
refnoise(i) = round(100*cos(2*pi*(i-1)*312/8000)); %cos(312)
41
Tài li u thí nghi m X lý s tín hi u
end
dplusn = addnoise + desired;
%sin(312)+sin(1500)
fid=fopen('dplusn.h','w');
%desired + noise
fprintf(fid,'short dplusn[128]={');
fprintf(fid,'%d, ' ,dplusn(1:127));
fprintf(fid,'%d' ,dplusn(128));
fprintf(fid,'};\n');
fclose(fid);
fid=fopen('refnoise.h','w');
%reference noise
fprintf(fid,'short refnoise[128]={');
fprintf(fid,'%d, ' ,refnoise(1:127));
fprintf(fid,'%d' ,refnoise(128));
fprintf(fid,'};\n');
fclose(fid);
fid=fopen('sin1500.h','w');
%desired sin(1500)
fprintf(fid,'short sin1500[128]={');
fprintf(fid,'%d, ' ,desired(1:127));
fprintf(fid,'%d' ,desired(128));
fprintf(fid,'};\n');
fclose(fid);
Sau ây, hãy ti n hành thí nghi m theo các b $c sau ây:
1. M# Code Composer Studio. Trong CCS, hãy m# project AdaptNoise (trong th
m c C:\CCStudio_v3.1\myprojects\AdaptNoise)
2. M# t p tin ngu n chính adaptnoise.c và xem xét gi i thu t LMS c hi n th c nh
th nào trong ch ng trình.
3. Hãy thi t l p các tùy ch n c n thi t và biên d ch ch ng trình. Sau khi quá trình
biên d ch thành công, hãy n p ch ng trình lên kit DSP.
4. Quan sát ngõ ra c!a kit DSP (ngõ Line Out) v$i ch ng trình DSP Tool.
5. Trong CCS, hãy ch y ch ng trình. Ch n File Load GEL n p t p tin
out_type.gel. Sau ó ch n GEL Output signal Output. M t c a s m$i xu t
hi n v$i thanh tr t # trên ó. Khi thanh tr t này # v trí s 1, ngõ ra là tín hi u sai
l ch. Khi thanh tr t # v trí s 2, ngõ ra là tín hi u sine mong mu n (t n s
42
Tài li u thí nghi m X lý s tín hi u
1500Hz) c ng v$i nhi u (t n s 312Hz). Bây gi , hãy quan sát d ng sóng ngõ ra v$i
thanh tr t l n l t # v trí 1 và v trí 2. Phác h a d ng sóng t ng ng.
Bài t p
Chúng ta có m t tín hi u cosine t n s 2000 Hz b xâm l n b#i m t nhi u c ng hình
cosine v$i t n s 125 Hz. Gi s lo i nhi u, chúng ta s" dùng m t b l c thích nghi.
Hãy s d ng tín hi u sine có t n s 125 Hz (t ng quan v$i nhi u) làm tín hi u tham
kh o.
1. Hãy s a ch ng trình MATLAB AdaptNoise.m t o các tín hi u t ng ng.
2. Hãy m# CCS, biên d ch và ch y l i ch ng trình ki m ch ng k t qu .
Bài t p
1. Hãy s a ch ng trình chính (t p tin AdaptIDFIR.c) include t p tin h s
bs55.cof, bi u di n m t b l c FIR ch n d i 55 h s v$i t n s trung tâm 2 KHz.
B l c FIR ch n d i này c xem nh h th ng ch a bi t c n nh n d ng. Hãy biên
d ch và ki m tra k t qu .
43
Tài li u thí nghi m X lý s tín hi u
44
Tài li u thí nghi m X lý s tín hi u
3. Gi i thi u
i u ch là quá trình làm bi n i m t tín hi u sóng mang nh(m s d ng tín hi u này
mang thông tin c n truy n i. Thông th ng, m t d ng sóng hình sine cao t n cs
d ng làm sóng mang. Ba thông s c!a m t sóng sine là biên , pha và t n s u có th
làm cho bi n i theo tín hi u thông tin t o ra tín hi u i u ch .
Thi t b th c hi n i u ch c g i là b i u ch (modulator) và thi t b th c hi n
quá trình ng c l i g i là b gi i i u ch (demodulator). Thi t b có th th c hi n c hai
quá trình g i là modem.
M c ích c!a i u ch s là truy n m t chu'i bit trên m t kênh truy n t ng t
bandpass, ví d nh trên ng dây i n tho i (các b l c gi$i h n d i t n s t 300
3400 Hz) ho&c trên m t d i t n s radio. Trong khi ó, m c ích c!a i u ch t ng t là
truy n m t tín hi u t ng t t n s th p, ví d nh tín hi u âm t n, trên m t kênh truy n
t ng t bandpass.
M c ích c!a các ph ng pháp i u ch s d i n n (baseband), còn g i là mã hóa ng
truy n, là truy n m t chu'i bit trên m t kênh truy n thông th p (lowpass) th ng là m t
c&p dây ng không b l c nh là m t bus n i ti p ho&c là m ng LAN có dây.
M c ích c!a các ph ng pháp i u ch xung là truy n m t tín hi u t ng t b1ng h6p
(narrowband) ví d nh m t cu c g i i n tho i trên m t kênh truy n thông th p b1ng
r ng (wideband lownpass channel) ho&c, trong m t s tr ng h p, nh là m t chu'i bit
trên m t h th ng truy n thông s khác.
4. C s+ lý thuy t
4.1 Các k0 thu t i u ch t% ng t(
Trong i u ch t ng t , quá trình i u ch c áp d ng liên t c theo tín hi u thông
tin t ng t .
Các k. thu t i u ch t ng t thông d ng g m:
• i u ch biên :
o Double - sideband modulation (DSB)
45
Tài li u thí nghi m X lý s tín hi u
AM modulation
Double – sideband suppressed-carrier (DSB – SC)
o Single – sideband modulation (SSB)
o Vestigial sideband modulation (VSB)
o Quadratude amplitude modulation (QAM)
• i u ch góc:
o Frequency modulation (FM)
o Phase modulation (PM)
46
Tài li u thí nghi m X lý s tín hi u
thành nhi u chu'i d2 li u song song, m'i chu'i c truy n trên m t sub-carrier s
d ng các k. thu t i u ch s thông th ng. Các sub-carrier c t ng h p thành m t
ký hi u OFDM. OFDM c xem nh m t k. thu t i u ch do nó truy n m t chu'i
bit trên m t kênh truy n s d ng m t chu'i các ký hi u OFDM. OFDM có th c m#
r ng thành m t ph ng pháp a truy c p trong OFDMA, cho phép nhi u ng i dùng
chia s7 cùng m t kênh truy n v t lý b(ng cách gán m'i ng i dùng m t sub-carrier
khác nhau.
47
Tài li u thí nghi m X lý s tín hi u
48
Tài li u thí nghi m X lý s tín hi u
Gi i thu t i u ch
M'i m+u vào i u ch g m 16 bits. Tùy vào lo i i u ch PAM, m t m&t n (mask)
thích h p c s d ng.
Hãy xem xét tr ng h p PAM 16 m c (16-PAM). Trong tr ng h p này, bi u di n
16 m c c n 4 bits, do ó m'i ký hi u s" có chi u dài 4 bits. t ct c ký hi u
49
Tài li u thí nghi m X lý s tín hi u
mong mu n, m+u vào c chia làm các o n dài 4 bits. Nh v y, m'i m+u vào s" g m
4 o n. Vi c x lý m+u vào bao g m vi c áp d ng m&t n và d ch. Kh i ký hi u u
tiên nh n c b(ng cách dùng m+u vào AND v$i m&t n 0x000F l y 4 bit LSB
(0x000F là bi u di n trong h th p l c phân c!a 00000000 00001111, khi AND m t
m+u v$i m&t n này, ch% 4 bit cu i c!a m+u c gi2 l i, t o thành 1 ký hi u). Kh i ký
hi u th ha nh n c b(ng cách d ch m+u ban u sang ph i 4 bit và áp d ng l i m&t
n . Các b $c này c l&p l i cho n khi h t chi u dài c!a m+u vào và t o ra 4 ký
hi u.
Do m'i ký hi u có chi u dài 4 bit nên s" có t t c 16 ký hi u. 16 ký hi u này c ánh
x thành 16 m c i n áp cách u nhau d a theo m t b ng tra nh sau:
B ng 1. B ng tra PAM 16 m c
Ví d , m+u vào là 0xA52E (10100101 00101110). Khi ó, 1110 (sau khi l c m&t n l y
4 bit LSB) c ánh x thành m c -0x6EEF. M'i ký hi u g m 4 bit c ánh x lên 16
m c cách u nhau t -0x8000 n 0x7FFF. Kho ng cách gi2a các m c c ch n là
0x111 có kho ng cách u nhau.
M c i n áp c ch n sau ó s" c truy n i nh m t sóng vuông. Chu k/ c!a sóng
vuông t c b(ng cách xu t cùng m t m c i n áp ó nhi u l n (ví d 12 l n) có
th t c 1 d ng sóng vuông t t # ngõ phát (sau khi qua b D/A).
Cùng m t cách th c hi n c!a b phát c áp d ng cho PAM 4 m c (4-PAM) và 8
m c (8-PAM) v$i s khác nhau v m&t n , d ch và b ng tra. i v$i 8-PAM, bit có
tr ng s th p nh t (LSB) c!a m+u vào c lo i b* s bit còn l i (15) là m t b i s
50
Tài li u thí nghi m X lý s tín hi u
c!a 3. i u này gây tác ng không áng k lên d ng sóng i u ch và d ng sóng khôi
ph c l i.
Các b ng tra i v$i b i u ch 4 – PAM và 8 – PAM l n l t nh sau:
B ng 2. B ng tra PAM 4 m c
Kh i ký hi u M c i n áp (d"ng Hex)
00 0x7FFF
01 0x2AAA
10 - 0x2AAB
11 - 0x8000
B ng 3. B ng tra PAM 8 m c
Kh i ký hi u M c i n áp (d"ng s Hex)
000 0x7FFF
001 0x5B6D
010 0x36DB
011 0x1249
100 - 0x1249
101 - 0x36DB
110 - 0x5B6D
111 - 0x7FFF
Ch ng trình th c hi n
Hãy th c hi n theo các b $c sau:
1. C p ngu n i n cho kit và ch y ch ng trình Code Compose Studio trên máy
tính.
2. M# project PAM4 # folder C:\CCStudio_v3.1\MyProjects\PAM4\.
3. Trong c a s File View, double click lên t p tin PAM4.c m# nó ra. ây là t p
tin ch a mã ngu n chính c!a ch ng trình. N i dung c!a t p tin này nh sau:
// PAM
#include "DSK6713_aic23.h"
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ;
#include <math.h>
//Initialization:
int i_PAM;
int j_PAM;
int k;
int masked_value, output;
int data_4PAM[4] = {0x7FFF, 0x2AAA, -0x2AAB, -0x8000};
51
Tài li u thí nghi m X lý s tín hi u
int out_buffer[256];
int i=0;
if (i_PAM==96)
{
sample_data = input_sample(); //inputs data
i_PAM=0;
j_PAM=0;
}
masked_value = sample_data & 0x0003;
output = data_4PAM[masked_value];
output_sample(output);
out_buffer[i++] = output;
if (i==256)
i = 0;
j_PAM++; //repeated output counter
if (j_PAM==12)
{
j_PAM=0;
sample_data = sample_data >> 2;
}
i_PAM++;
return;
}
void main()
{
i_PAM=0;
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Trong ch ng trình này, hàm main( ) &t giá tr bi n i_PAM = 0 và kh#i ng kit.
Sau ó s" th c hi n m t vòng l&p vô t n v$i l nh while (1).
Khi có tín hi u xung l y m+u (t n s 8KHz), ng t 11 x y ra và trình ph c v ng t
c_int11( ) c g i. Trong trình ph c v ng t này, d2 li u vào c c vào bi n
sample_data (b(ng l nh sample_data = input_sample( )). M+u d2 li u này bi u
di n # d ng s nguyên 16 bit có d u.
Do # ây th c hi n i u ch PAM 4 m c, mà bi u di n c 4 m c thì c n 2
bit. Do ó, m+u d2 li u vào s" c chia ra làm 8 ký hi u (symbol), m'i ký hi u 2
bit. th c hi n vi c chia này, m+u d2 li u c AND v$i m&t n 00000000
00000011 (t c là 0x0003) l y 2 bit LSB c!a m+u d2 li u. 2 bit này c ánh x
thành 1 trong 4 m c i n áp b(ng cách s d ng b ng data_4PAM. B ng này có 4
52
Tài li u thí nghi m X lý s tín hi u
Gi i thu t i u ch
M'i m+u vào c thu và l u vào trong m t v trí nh$, ch a 16 bits. Tùy theo ki u i u
ch PSK (2 pha hay 4 pha), m t m&t n thích h p c s d ng. i v$i BPSK, m'i
giá tr m+u vào c chia ra làm 16 thành ph n, m'i thành ph n 1 bit; i v$i QPSK,
m+u vào c chia thành 8 dibits (m'i dibit g m 2 bits). Vi c này t c b(ng cách
áp m&t n t ng ng 0x0001 và 0x0003 lên m+u vào. Sau ó, m+u s" c d ch ph i 1
bit ( BPSK) ho&c 2 bit (QPSK) và l&p l i cho n khi h t chi u dài m+u vào.
Sau khi c t m+u vào thành các o n nh trên, các giá tr s" c gán cho các d ng sóng
hình sine v$i pha t ng ng. Trong BPSK, ch% có 2 pha là 0° và 180° ng v$i bit 0 và
bit 1. Tuy nhiên, v$i QPSK, chúng ta c n 4 pha (0°, 90°, 180° và 270°) ng v$i 00, 01,
11 và 10. Vi c ánh x c th c hi n theo mã Gray (Gray code) nh(m làm c c ti u l'i
do nhi u trong quá trình truy n b(ng cách c c i kho ng cách gi2a các ký hi u trên
gi n d constellation.
M'i m+u vào c bi u di n b(ng 16 bits. M'i m+u s" g m 16 o n (v$i BPSK) và 8
o n (v$i QPSK). Do m'i ký hi u c truy n b#i m t hình sine t o theo ph ng pháp
s b(ng 4 i m, c m'i 64 m+u ra (v$i BPSK) ho&c 32 m+u ra (v$i QPSK), m t m+u
vào c l y vào.
Ch ng trình th c hi n
Hãy th c hi n theo các b $c sau:
1. C p ngu n i n cho kit và ch y ch ng trình Code Compose Studio trên máy
tính.
2. M# project BPSK # folder C:\CCStudio_v3.1\MyProjects\BPSK\.
3. Trong c a s File View, double click chu t lên t p tin BPSK.c m# ra. ây là
t p tin ch a mã ngu n ch ng trình. N i dung ch ng trình này nh sau:
//BPSK
#include "DSK6713_aic23.h"
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ;
#include <math.h>
//Initialization:
int i_BPSK;
int j_BPSK;
int k;
int masked_value, output;
int out_buffer[256];
int i=0;
//Data table for BPSK
int data_BPSK[2][4]={0, 1000, 0, -1000, //0 degree
54
Tài li u thí nghi m X lý s tín hi u
if (j_BPSK==4)
{
j_BPSK=0;
sample_data = sample_data >> 1;
}
i_BPSK++;
return;
}
void main()
{
i_BPSK=64;
j_BPSK=0;
comm_intr();
while(1); //infinite loop
}
Hàm main( ) s" &t 2 bi n m i_BPSK = 64 và j_BPSK = 0, kh#i ng kit và b
codec r i ch y m t vòng l&p vô t n. Khi có xung l y m+u, ng t 11 c kích ho t và
trình ph c v ng t c_int11( ) c g i.
Trình ph c v ng t s" c m t m+u d2 li u # ngõ vào. M+u này c bi u di n b(ng
16 bit. Khi i u ch BPSK, m'i symbol ch% g m 1 bit ( phân bi t 2 pha 0° và 180°
ch% c n 1 bit), do ó, m+u vào s" c chia ra làm 16 symbol b(ng cách s d ng m&t
n 0x0001 l y bit LSB. Tùy bit này là 0 hay 1 mà xu t ra d ng sóng sine có pha
t ng ng.
Ví d : M+u vào là 0x0003 c AND v$i m&t n 0x0001 cho ra bit 1. Do ó, d ng
sóng sine xu t ra có pha 180°. - ây, sóng sine c t o ra b(ng 4 i m, m'i l n
mu n xu t sóng sine, ch ng trình s" xu t ra 4 giá tr th hi n 1 chu k/ c!a sóng sine.
55
Tài li u thí nghi m X lý s tín hi u
56
Tài li u thí nghi m X lý s tín hi u
Tài li u tham kh o
[1] Rulph Chassaing , Digital Signal Processing and Applications with the C6713 and 6746
DSK, John Wiley & Sons, Inc. 2005.
[2] Lê Ti n Th ng, X$ lý s tín hi u & Wavelet, Nhà xu t b n i h c Qu c Gia TP. HCM,
2004.
[3] J. Proakis, D. Manolakis, Introduction to Digital Signal Processing, MacMillan Publisher,
1989.
[4] The Wikipedia ( http://en.wikipedia.org/wiki/ )
57