P. 1
Tai_lieu_TN_Xu_ly_so_tin_hieu

Tai_lieu_TN_Xu_ly_so_tin_hieu

|Views: 286|Likes:
Được xuất bản bởitcm_1990

More info:

Published by: tcm_1990 on Mar 28, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/29/2014

pdf

text

original

Tài liêu thí nghiêm Xu lý sô tín hiêu

1

Truong Dai hoc Tôn Duc Tháng
Khoa Diên – Diên Tu
Bô môn Diên tu - Viên Thông
U LÝ SO TÍN HIEU
êu thí nghiêm

Þ1N V|n thông
2007
Tài liêu thí nghiêm Xu lý sô tín hiêu
2

GIÓI THIEU

Các bô xu lý sô tín hiêu duoc su dung trong rât nhiêu ung dung thuc tê, tu truyên
thông và diêu khiên cho dên xu lý tiêng nói và hình anh... Hâu hêt các thiêt bi gia
dung hiên nay cung tích hop các bô xu lý sô tín hiêu. Chúng duoc su dung trong diên
thoai di dông, máy anh sô, HDTV, radio, truyên fax, các modem, máy in, máy tro
thính và nhiêu thiêt bi khác…
Hê thông xu lý sô tín hiêu co ban bao gôm môt bô biên dôi A/D dê thu nhân tín hiêu
vào. Sau dó, dang biêu diên sô cua tín hiêu vào së duoc xu lý boi môt bô xu lý sô tín
hiêu và tín hiêu ra duoc dua qua bô biên dôi D/A. Hê thông co ban này cung bao gôm
môt bô loc ngõ vào chông chông lân phô và môt bô loc ngõ ra dê khôi phuc tín hiêu dã
xu lý.
Trong các bài thí nghiêm này, chúng ta duoc trang bi kit TMS320C6713 cua Texas
Instruments. Kit TMS320C6713 là môt công cu manh voi các phân cung và phân
mêm cân thiêt cho xu lý tín hiêu thoi gian thuc. Nó là môt hê thông xu lý sô tín hiêu
hoàn chinh, bao gôm môt bô xu lý sô dâu châm dông C6713 và bô codec 32-bit stereo
TLV320AIC23 (goi tát là AIC23) cho viêc xuât nhâp tín hiêu.
Qua các bài thí nghiêm này, hi vong các ban sinh viên së hiêu rõ thêm các khái niêm
dã hoc trong môn Xu lý sô tín hiêu, cung nhu nám duoc các buoc co ban trong viêc
thuc hiên môt ung dung xu lý sô tín hiêu lên môt bô xu lý sô, nhu chip C6713 cua
Texas Instruments.
Tài liêu thí nghiêm Xu lý sô tín hiêu
3

BÀI 1: SU DUNG MATLAB DE THIET KE BO LOC SÓ

1. SU DUNG MATLAB DE THIET KE BO LOC SÓ
1.1 Thiêt kê bô loc sô bàng công cu SPTool
SPTool là môt công cu có giao diên tuong tác dùng cho xu lý sô tín hiêu. Công cu này
có thê duoc su dung dê phân tích tín hiêu, thiêt kê các bô loc, phân tích các bô loc, loc
tín hiêu và phân tích phô cua tín hiêu.
Dê khoi dông SPTool, tu dâu nhác lênh cua MATLAB, nhâp lênh
>> sptool
Khi dó, giao diên cua SPTool së xuât hiên nhu sau:


Hình 1. Giao diên cua SPTool
Khi moi mo SPTool, nó chua môt tâp hop các tín hiêu, bô loc và phô mác dinh. Trên
giao diên cua SPTool, có 3 côt: Signals, Filters và Spectra. Duoi môi côt có các nút su
dung cho côt dó. Côt Signals hiên thi các tín hiêu, côt Filters hiên thi các bô loc và côt
Spectra hiên thi các phô trong workspace (vùng làm viêc) cua SPTool.
Các tín hiêu, bô loc hoác phô trong workspace cua MATLAB có thê duoc dua vào
SPTool báng lênh Import trong menu File cua SPTool. Các tín hiêu, bô loc hoác phô
duoc tao ra hoác duoc import vào SPTool tôn tai duoi dang các câu trúc cua MATLAB.
Dê luu lai các tín hiêu, bô loc và phô dã tao ra hoác chinh sua trong SPTool, su dung
lênh Export trong menu File, chúng cung së duoc luu lai duoi dang các câu trúc
MATLAB.
Dê bát dâu thiêt kê môt bô loc moi, các ban hãy nhân vào nút New ngay duoi côt
Filter. Khi dó, giao diên Filter Designer dùng dê thiêt kê bô loc nhu sau së xuât hiên.
Filter Designer cung câp môt môi truong dô hoa tuong tác dê thiêt kê các bô loc sô IIR
hoác FIR dua trên các tiêu chuân do nguoi dùng xác dinh.
- Các loai bô loc có thê thiêt kê: Thông thâp, thông cao, thông dai, chán dai.
- Các phuong pháp thiêt kê bô loc FIR: Equiripple, Least squares, Window
Tài liêu thí nghiêm Xu lý sô tín hiêu
4

- Các phuong pháp thiêt kê bô loc IIR: Butterworth, Chebyshev loai I, Chebyshev
loai II, Elliptic.


Hình 2. Giao diên Filter Designer

Ví du 1: Thiêt kê môt bô loc FIR chàn dai bàng SPTool
Bô loc, duoc thiêt kê báng phuong pháp cua sô Kaiser, voi các thông sô sau:

Chiêu dài cua dáp ung xung: N = 89 (MATLAB hiên thi bac bo loc báng 88)
Tan so trung tâm: 2700 Hz
Tan so cát: 2500 Hz và 2900 Hz
Giá tri cua β = 4
Tan so lay mau 8000 Hz

Các buoc thiêt kê nhu sau:
1. Khoi dông SPTool. Duoi côt Filters, nhân nút New dê mo cua sô Filter Designer.
2. Trong giao diên cua Filter Designer:
a. Trong text box Filter: Tên bô loc duoc tu dát (o dây là filt1). Tên này có thê
thay dôi sau này.
b. Nhâp các thông sô thiêt kê vào:
i. Design method -> FIR -> Windows
ii. Option -> Windows -> Kaiser
iii. Bo chon o check box Minimum Order. (nêu chon thì së thiêt kê bô loc
có bâc tôi thiêu).
Tài liêu thí nghiêm Xu lý sô tín hiêu
5

iv. Filter Order = 88, Respone Type = Bandstop, Fc1 = 2500, Fc2 = 2900,
Beta = 4
c. Nhân Design Filter. Khi dó dáp ung tân sô cua bô loc thiêt kê së duoc hiên thi.

Hình 3. Dáp úng tân sô cua bô loc dã thiêt kê
3. Tro vê cua sô SPTool, trong côt Filters së xuât hiên thêm môt dòng filt1 [design].
Dây chính là bô loc vua thiêt kê. Sau này, nêu muôn sua dôi thiêt kê, chon lai tên
bô loc và nhân nút Edit o phía duoi. Dê dê nho, ta së thay dôi tên bô loc trên
thành bs2700 báng cách chon Edit Name…filt1 [design]. Trong cua sô moi
xuât hiên, nhâp tên moi.
Khi thiêt kê môt bô loc FIR nhu trên, kêt qua mà ta cân nhân duoc sau khi thiêt kê là
các giá tri cua vector dáp ung xung h cua bô loc thiêt kê. Dê lây các giá tri cua vector
dáp ung xung, ta thuc hiên nhu sau:
1. Tu cua sô SPTool, chon File Export… Trong Export list xuât hiên, chon
Filter: bs2700 [design] rôi nhân nút Export to workspace
2. Dóng cua sô SPTool lai. Môt thông báo xuât hiên hoi có muôn luu lai phiên làm
viêc hiên tai hay không. Nêu muôn luu lai, chon Save.
3. Mo cua sô Workspace cua MATLAB, ta së thây trong workspace së xuât hiên
biên moi là bs2700. Dây chính là bô loc mà ta dã thiêt kê trong SPTool và xuât ra
workspace cua MATLAB. Biên này duoc luu duoi dang môt câu trúc mô ta bô
loc dã thiêt kê. Nhân dúp chuôt vào tên biên bs2700 trong workspace, ta së thây
duoc các field cua câu trúc này nhu sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
6


Hình 4. Các field cua bs2700
4. Trong các field này, field tf thê hiên hàm truyên cua bô loc. Field này cung là môt
câu trúc gôm 2 field: tf.num và tf.den thê hiên tuong ung các hê sô cua da thuc
tu sô và da thuc mâu sô. Dôi voi bô loc FIR, hàm truyên chi có tu sô và các hê sô
cua tu sô chính là dáp ung xung cua bô loc. Do dó, voi bô loc trên, các giá tri cua
vector dáp ung xung duoc luu trong bs2700.tf.num. Trong cua sô Array Editor
trên, lân luot nhân dúp vào field tf rôi nhân dúp vào num, ta së thây các hê sô dáp
ung xung cua bô loc. Dê gán các hê sô này vào môt vector h, trong MATLAB có
thê dùng lênh sau:
>> h = bs2700.tf.num


Hình 5. Vector dáp úng xung cua bô loc dã thiêt kê

Các giá tri thu duoc cua vector dáp ung xung së duoc su dung dê thuc hiên bô loc sô
lên trên kit DSP.

Ví du 2: Thiêt kê bô loc IIR chàn dai bàng SPTool
Su dung phuong pháp Elliptic dê thiêt kê môt bô loc IIR chán dai bâc 10, tân sô trung
tâm 1750Hz. Chú ý ráng MATLAB hiên thi bâc bô loc là 5, biêu diên sô phân bâc 2 cua
bô loc. (Diêu này dúng vói các bô loc IIR thông dai và chàn dai)
Tài liêu thí nghiêm Xu lý sô tín hiêu
7

Các thông sô cua bô loc này nhu sau.
Tan so cát: 1700 Hz và 1800 Hz
Ðo gon dai thông và dai chán tuong ung là 1 dB và 60 dB
Tan so lay mau: 8000 Hz

Thuc hiên tuong tu nhu ví du trên, luu bô loc thiêt kê voi tên bs1750 và xuât ra
workspace. Trong workspace së có môt câu trúc tên là bs1750. Các hê sô tu sô và mâu
sô cua hàm truyên duoc luu tuong ung trong các biên bs1750.tf.num và bs1750.tf.den.


Hình 6. Dáp úng tân sô cua bô loc IIR dã thiêt kê

Dang cuc – zero cua môt hàm truyên H(z) nhu sau:
( )( ) ( )
( )( ) ( )
m
n
p z p z p z
z z z z z z
k z H
− − −
− − −
=
...
...
) (
2 1
2 1

Hàm truyên trên có thê duoc viêt lai nhu sau:
( )
∏ ∏
=
− −
− −
=
+ +
+ +
= =
L
k k k
k k k
L
k
k
z a z a
z b z b b
g z H g z H
1
2
2
1
1
2
2
1
1 0
1
1
) (
Voi L là sô nguyên gân nhât lon hon cuc dai cua n/2 và m/2.
Trong MATLAB, các phân bâc 2 cua H(z) duoc luu trong 1 ma trân nhu sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
8

=
L L L L L
a a b b b
a a b b b
a a b b b
sos
2 1 2 1 0
22 12 22 12 02
21 11 21 11 01
1
1
1


Tu các hê sô tu và mâu o trên, ta së chuyên thành dang 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)
Các phân tu cua ma trân sos này së duoc su dung dê thuc hiên bô loc IIR này lên kit
DSP.
1.2 Thiêt kê bô loc bàng lênh cua MATLAB
Bên canh viêc su dung công cu SPTool dê thiêt kê bô loc nhu trên, MATLAB cung có
môt sô lênh có thê su dung dê thiêt kê bô loc. Các lênh này có thê duoc su dung khi
thiêt kê môt sô loai bô loc mà SPTool không có sán, ví du nhu các bô loc multiband.

Ví du 1: Thiêt kê bô loc FIR multiband bàng các lênh MATLAB
Trong ví du này, chúng ta së thiêt kê môt bô loc FIR multiband gôm 63 hê sô. Tân sô
lây mâu là 10 kHz. Chúng ta su dung hàm remez cua MATLAB. Hàm remez su dung
giai thuât Parks – McClellan dua trên giai thuât Remez và lý thuyêt xâp xi Chebyshev.
Bô loc cân thiêt kê có dáp ung tân sô nhu sau:
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
0
0.2
0.4
0.6
0.8
1
1.2

Hình 7. Dáp úng tân sô cua bô loc multiband FIR cân thiêt kê

Bô loc mong muôn có 2 dai thông, duoc biêu diên boi 5 dai nhu sau:
Dai Tân sô (Hz) Tân sô chuân hóa f/F
N
Biên dô
1 0 – 500 0 – 0.1 0
Tài liêu thí nghiêm Xu lý sô tín hiêu
9

2 600 – 900 0.12 – 0.18 1
3 1000 – 1500 0.2 – 0.3 0
4 1600 – 1900 0.32 – 0.38 1
5 2000 – 5000 0.4 – 1 0
Trong dó F
N
là tân sô Nyquist, báng ½ tân sô lây mâu.
Chúng ta viêt môt file .m dê thiêt kê bô loc này, luu lai voi tên multibandfir63.m
Nôi dung cua file này nhu sau:
%multibandfir63.m: Multiband FIR filter with 63 coefficients
f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1];
m = [0 0 1 1 0 0 1 1 0 0];
n = 63;
cof = remez(n-1,f,m);

% frequency response with 256 points
[h w] = freqz(cof,1,256);
% plot magnitude of the filter
plot(5000*f,m);
figure;
plot(w/pi,abs(h));

Trong doan chuong trình trên, có môt sô luu ý:
- Dòng lênh cof = remez(n-1,f,m) tra vê vector hê sô cua bô loc FIR bâc n – 1, voi
f và m xác dinh các dai tân sô theo bang o trên.
- Lênh freqz dê tính dáp ung tân sô cua bô loc
- Lênh plot thu nhât vë dáp ung tân sô mong muon dua trên f và m.
- Lênh figure tao ra môt cua sô moi và lênh plot thu hai vë dáp ung tân sô cua bô
loc dã thiêt kê duoc lên cua sô moi này.
O dây, kêt qua cua quá trình thiêt kê mà ta cân nhân duoc chính là các hê sô chua trong
biên cof. Chúng duoc su dung khi thuc hiên bô loc lên trên kit DSP.
Ví du 2: Thiêt kê bô loc IIR multiband bàng các lênh cua MATLAB
Trong thí nghiêm này, chúng ta thiêt kê môt bô loc IIR multiband có dáp ung mong
muôn nhu bô loc o ví du 1. Tân sô lây mâu cung là 10 kHz.
Các buoc thiêt kê giông nhu trên voi nôi dung file multibandiir63.m dùng dê thiêt kê
nhu sau:
%multibandiir63.m: Multiband IIR filter with 63
coefficients
f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1];
m = [0 0 1 1 0 0 1 1 0 0];
n = 63;
[num, den] = yulewalk(n-1,f,m);

% frequency response with 256 points
[h w] = freqz(num,den,256);
Tài liêu thí nghiêm Xu lý sô tín hiêu
10

% plot magnitude of the filter
plot(5000*f,m);
figure;
plot(w/pi,abs(h));

Trong doan chuong trình trên, luu ý:
- Lênh remez duoc thay báng lênh yulewalk dùng dê thiêt kê bô loc IIR. Lênh này
tra vê các hê sô cua tu sô và mâu sô cua hàm truyên bô loc, duoc chua tuong ung
trong biên num và den.
- Lênh freqz duoc sua dôi dê vë dáp ung tân sô cua bô loc IIR dã thiêt kê.
Các giá tri cua num và den duoc su dung khi cân thuc hiên bô loc này lên kit DSP.
Tài liêu thí nghiêm Xu lý sô tín hiêu
11

BÀI 2: SU DUNG KIT XU LÝ SÓ C6713 DSK (DSP STARTER KIT)
1.3 Kit C6713 DSK
Kit DSK là môt hê thông DSP hoàn chinh. Board DSK bao gôm bô xu lý sô dâu châm
dông C6713 và bô codec 32 bit stereo TLV320AIC23 (AIC23) dê xuât nhâp. Bô codec
onboard AIC23 su dung kÿ thuât sigma – delta dê biên dôi A/D và D/A. Nó duoc kêt
nôi voi môt dông hô hê thông 12 – MHz. Tân sô lây mâu có thê thay dôi tu 8 dên 96
KHz.
Board DSK bao gôm 16MB SDRAM và 256kB Flash memory. Bôn jack cám trên boad
cho phép xuât nhâp: MIC IN (microphone input), LINE IN (line input), LINE OUT
(line output) và HEADPHONE (headphone output). Trang thái cua 4 dip switch trên
DSK có thê doc duoc tu chuong trình. DSK hoat dông o tân sô 225 MHz. Trên board
DSK cung bao gôm các ôn áp cung câp 1.26V cho nhân C6713 và 3.3V cho bô nho và
các ngoai vi.
Bô xu lý TMS320C6713 dua trên kiên trúc VLIW (very-long-instruction-word), phù
hop cho các giai thuât náng vê tính toán sô. Bô nho chuong trình nôi duoc tô chuc dê
môi chu ky có thê nap 8 lênh (instruction), môi instruction dài 32 bit.
Các bô xu lý C67xx (ví du C6701, C6711 và C6713) thuôc vê ho các bô xu lý C6x dâu
châm dông, trong khi dó C62xx và C64xx thuôc vê ho các bô xu lý C6x dâu châm tinh.
C6713 có thê xu lý ca dâu châm dông và dâu châm tinh.

Hình 8. So dô khôi cua DSK
1.4 Code Composer Studio (CCS)
CCS là môt môi truong phát triên tích hop (IDE). CCS cung câp các công cu sinh mã,
nhu môt bô biên dich C, môt chuong trình assembler và môt chuong trình linker. Nó có
kha náng dô hoa và hô tro real-time debug. Nó cung câp môt công cu phân mêm thuân
tiên cho viêc xây dung và sua lôi chuong trình.
Trình dich C së dich chuong trình nguôn viêt báng C (tâp tin có kiêu .c) dê tao thành
môt tâp tin nguôn assembly (kiêu .asm). Trình assembler së tao ra các tâp tin dôi tuong
ngôn ngu máy (.obj) tu các tâp tin .asm. Trình linker së kêt hop các tâp tin dôi tuong và
các thu viêc dôi tuong dê tao ra môt tâp tin thuc thi voi kiêu .out. Tâp tin thuc thi này
có thê duoc nap và chay truc tiêp trên bô xu lý C6713.
Tài liêu thí nghiêm Xu lý sô tín hiêu
12

Dê tao môt project, nguoi dùng có thê thêm vào các tâp tin phù hop. Các tùy chon vê
compiler/linker có thê xác dinh dê dàng. Môt sô tính náng debug có sán, nhu dát các
breakpoint và xem các biên; xem bô nho, các thanh ghi và trôn C voi assembly code;
các kêt qua dô hoa; và theo dõi thoi gian thuc thi.
Chúng ta së làm viêc voi môt vài kiêu tâp tin khác nhau, bao gôm:
1. file.pjt: dê tao và xây dung môt project có tên là “file”
2. file.c: chuong trình nguôn viêt báng C
3. file.asm: chuong trình nguôn báng ngôn ngu assembly, duoc tao boi nguoi dùng
hoác boi bô dich C.
4. file.h: tâp tin header
5. file.lib: tâp tin thu viên
6. file.cmd: tâp tin lênh cua linker, ánh xa các section vào bô nho
7. file.obj: tâp tin dôi tuong duoc tao ra boi assembler
8. file.out: tâp tin thuc thi duoc tao ra boi linker dê nap và chay trên bô xu lý C6713
1.5 Các tâp tin hô tro
Các tâp tin hô tro sau duoc chua trong folder
C:\CCStudio_v3.1\myprojects\source\support (tru các tâp tin thu viên) duoc su dung
trong hâu hêt các bài thí nghiêm.
1. C6713dskinit.c: chua các hàm khoi dông DSK, codec, các công nôi tiêp và dê
xuât nhâp. Tâp tin này không duoc bao gôm voi CCS.
2. C6713dskinit.h: tâp tin header chua các prototype cua các hàm.
3. C6713dsk.cmd: Tâp tin lênh linker. Tâp tin này có thê duoc sua dôi khi su dung
bô nho ngoài thay cho bô nho trong.
4. vectors_intr.asm: môt tâp tin vector bao gôm trong CCS dã duoc sua dôi dê quan
lý ngát. Có 12 ngát, tu INT4 dên INT15, và ngát 11 duoc chon trong tâp tin này.
Chúng duoc dùng cho các chuong trình có su dung ngát.
5. vectors_poll.asm: tâp tin vector cho các chuong trình hoi vòng (polling)
6. rts6700.lib, dsk6713bsl.lib, csl6713.lib: Tâp tin thu viên hô tro run – time, board
và chip. Các tâp tin này duoc cung câp voi CCS và duoc chua trong các folder
C6000\cgtools\lib, C6000\dsk6713\lib và C6000\csl\lib môt cách tuong ung.
(Thu muc C6000 nám trong thu muc cài dát cua CCS, mác dinh là
C:\CCStudio_v3.1\)
1.6 Các ví du lâp trình trên DSK
Sau dây là môt sô ví du lâp trình dê minh hoa cho môt sô dác tính cua CCS và board
DSK. Muc tiêu chính là dê làm quen voi các công cu phân mêm và phân cung.
Ví du 1: Tao tín hiêu hình sine
Ví du này tao ra môt tín hiêu hình sine báng phuong pháp tra bang. Quan trong hon, nó
minh hoa vài dác tính cua CCS trong hiêu chinh, xây dung môt project, su dung các
công cu sinh mã và chay môt chuong trình trên bô xu lý C6713. Chuong trình nguôn
tone.c thuc hiên viêc tao sóng sine có nôi dung nhu duoi dây.
#include "tonecfg.h"

/*
Tài liêu thí nghiêm Xu lý sô tín hiêu
13

* The 6713 DSK Board Support Library is divided into several
modules, each
* of which has its own include file. The file dsk6713.h must be
included
* in every program that uses the BSL. This example also includes
* dsk6713_aic23.h because it uses the AIC23 codec module.
*/
#include "dsk6713.h"
#include "dsk6713_aic23.h"

/* Length of sine wave table */
#define SINE_TABLE_SIZE 96

/* Codec configuration settings */
DSK6713_AIC23_Config config = {
0x0017, // 0 DSK6713_AIC23_LEFTINVOL Left line input channel
volume
0x0017, // 1 DSK6713_AIC23_RIGHTINVOL Right line input channel
volume
0x00d8, // 2 DSK6713_AIC23_LEFTHPVOL Left channel headphone
volume
0x00d8, // 3 DSK6713_AIC23_RIGHTHPVOL Right channel headphone
volume
0x0011, // 4 DSK6713_AIC23_ANAPATH Analog audio path control
0x0000, // 5 DSK6713_AIC23_DIGPATH Digital audio path control
0x0000, // 6 DSK6713_AIC23_POWERDOWN Power down control
0x0043, // 7 DSK6713_AIC23_DIGIF Digital audio interface
format
0x0001, // 8 DSK6713_AIC23_SAMPLERATE Sample rate control
0x0001 // 9 DSK6713_AIC23_DIGACT Digital interface activation
};

/* Pre-generated sine wave data, 16-bit signed samples */
Int16 sinetable[SINE_TABLE_SIZE] = {
0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b,
0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x7ffd, 0x7ee5, 0x7ba1, 0x76ef,
0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x3fff, 0x30fb, 0x2120, 0x10b4,
0x0000, 0xef4c, 0xdee0, 0xcf06, 0xc002, 0xb216, 0xa57f, 0x9a75,
0x9128, 0x89c1, 0x845f, 0x811b, 0x8002, 0x811b, 0x845f, 0x89c1,
0x9128, 0x9a76, 0xa57f, 0xb216, 0xc002, 0xcf06, 0xdee0, 0xef4c,
0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b,
0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x7ffd, 0x7ee5, 0x7ba1, 0x76ef,
0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x3fff, 0x30fb, 0x2120, 0x10b4,
0x0000, 0xef4c, 0xdee0, 0xcf06, 0xc002, 0xb216, 0xa57f, 0x9a75,
0x9128, 0x89c1, 0x845f, 0x811b, 0x8002, 0x811b, 0x845f, 0x89c1,
0x9128, 0x9a76, 0xa57f, 0xb216, 0xc002, 0xcf06, 0xdee0, 0xef4c
};


/*
Tài liêu thí nghiêm Xu lý sô tín hiêu
14

* main() - Main code routine, initializes BSL and generates tone
*/

void main()
{
DSK6713_AIC23_CodecHandle hCodec;
Int16 msec, sample;

/* Initialize the board support library, must be called first */
DSK6713_init();

/* Start the codec */
hCodec = DSK6713_AIC23_openCodec(0, &config);

/* Generate a 1KHz sine wave for 5 seconds */
for (msec = 0; msec < 5000; msec++)
{
for (sample = 0; sample < SINE_TABLE_SIZE; sample++)
{
/* Send a sample to the left channel */
while (!DSK6713_AIC23_write(hCodec, sinetable[sample]));

/* Send a sample to the right channel */
while (!DSK6713_AIC23_write(hCodec, sinetable[sample]));
}
}

/* Close the codec */
DSK6713_AIC23_closeCodec(hCodec);
}
Tao project
Phân này së minh hoa cách tao môt project moi, thêm các tâp tin cân thiêt dê biên dich
project sine_graph.
1. Trong CCS, chon Project New. Trong hôp thoai tao Project, nhâp tên project
là sine_graph, chon duong dân: C:\CCStudio_v3.1\Myprojects, Project Type là
Executable (.out), và Target là TMS320C67xx.

Hình 9. Hôp thoai Project Creation
Tài liêu thí nghiêm Xu lý sô tín hiêu
15

CCS së tu tao ra môt thu muc tên là sine_graph trong thu muc
C:\CCStudio_v3.1\Myprojects.
2. Sau khi tao project, cân thuc hiên các buoc config nhu sau:
Tao Source file: vào muc File -> New -> Source file…
Gõ lai chuong trình sine_graph.c nhu o trên và luu lai voi tên sine_graph.c tai duong
dân: C:\CCStudio_v3.1\Myprojects\sine_graph

Bô sung Source file vua tao vào project: Click phai vào Source, chon Add File to Project…
Chon duong dan dên file sine_graph.c vua tao.


Tuong tu, ta bô sung file dsk6713.gel tai duong dân: C:\CCStudio_v3.1\cc\gel vào
Gel file
Và file tone.cdb tai duong dân C:\CCStudio_v3.1\examples\dsk6713\bsl\tone vào
DSP/BIOS Config
Copy file tonecfg.h tai duong dân C:\CCStudio_v3.1\examples\dsk6713\bsl\tone vào
thu muc cua project sine_graph
Chon Project Scan All File Dependencies dê CCS tu thêm vào các tâp tin header.
Sau khi thuc hiên các buoc trên, cua sô Project View së hiên thi các tâp tin dã duoc
thêm vào Project.
Xác dinh các tùy chon dê biên dich chuong trình
Tài liêu thí nghiêm Xu lý sô tín hiêu
16

O buoc này, các tùy chon dê CCS dich chuong trình nguôn thành tâp tin thuc thi së
duoc 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

Dich và chay chuong trình
Sau khi dã thiêt lâp các tùy chon phù hop cho Compiler và Linker, chúng ta hãy tiên
hành biên dich chuong trình và nap lên trên kit dê chay.
Nhân F7 dê Rebuild All và load xuông Kit.
Sau dó nhân F5 dê chay chuong trình
Cua sô Watch window
Cua sô Watch Window cho phép thay dôi giá tri cua môt thông sô hoác dê theo dõi môt
biên. Trong khi chuong trình dang chay và DIP Switch 0 dang duoc nhân. (Luu ý dòng
chu DSP RUNNING trên thanh Status cua CCS).
1. Chon View Quick Watch window. Thuong cua sô này hiên thi o phân bên
duoi cua CCS. Nhâp gain và nhân “Add to Watch”. Giá tri gain báng 10 (dã duoc
dát trong chuong trình) së xuât hiên trong cua sô Watch.
2. Thay dôi gain tu 10 thành 30 trong cua sô Watch rôi nhân Enter. Dang sóng quan
sát së thay dôi khi biên gain thay dôi giá tri.

Su dung tâp tin gain.gel
Trong phân trên chúng ta dã dê câp dên tâp tin gain.gel. Tâp tin này tao môt giao diên
dê cho phép thay dôi biên gain môt cách tuong tác khi chuong trình dang chay.
1. Truoc hêt, cân phai nap tâp tin này vào báng cách chon File Load GEL và mo
tâp tin gain.gel. Nhân dúp chuôt lên tâp tin này trong cua sô Project View dê xem
nôi dung cua nó.

/*gain.gel Create slider and vary amplitude (gain) of
sinewave*/
menuitem "Sine Gain"
Tài liêu thí nghiêm Xu lý sô tín hiêu
17

slider Gain(10,35,5,1,gain_parameter) /*incr by 5,up to
35*/
{
gain = gain_parameter; /*vary gain of sine*/
}
Nôi dung cua tâp tin gain.gel nhu trên. Trong dó, hàm slider Gain duoc tao ra dê
hiên thi thanh truot. Thanh truot này bát dâu tu giá tri 10 và kêt thúc o giá tri 35
và môi muc táng là 5 don vi.
2. Chon GEL Sinde Gain Gain, cua sô sau së xuât hiên cho phép thay dôi giá
tri cua biên gain.

Hình 10. Cua sô slider cho phép thay dôi biên gain
3. Nhân nút mui tên huong lên dê táng gain tu 10 dên 15 và quan sát dang sóng sine
tao ra dê thây su thay dôi.

Thay dôi tân sô cua tín hiêu sine tao ra
Tân sô cua tín hiêu sine tao ra có thê thay dôi báng môt trong các cách sau.
1. Thay dôi tân sô lây mâu. Trong tâp tin nguôn o trên, tân sô lây mâu fs duoc gán
giá tri là DSK6713_AIC23_FREQ_8KHZ. Giá tri này là 1 háng sô nguyên dã
duoc dinh nghia sán. Bô codec AIC hô tro các tân sô lây mâu 8, 16, 24, 32, 44.1,
48 và 96kHz. Ví du, dê có tín hiêu sine ra có tân sô là 2kHz, cân táng tân sô lây
mâu lên 16kHz báng cách dát fs=DSK6713_AIC23_FREQ_16KHZ.
2. Thay dôi sô diêm o trong bang tra, ví du còn 4 diêm thay vì 8 diêm – ví du, {0,
1000, 0, -1000}. Khi dó cân thay dôi kích thuoc cua mang sine_table và giá tri
biên loop. Hãy chung minh ráng tân sô tao ra là f = fs/(sô diêm).
Hai thanh truot có thê duoc su dung dê vua thay dôi gain, vua thay dôi tân sô. Các tân
sô tín hiêu khác nhau có thê tao ra báng cách thay dôi biên loop trong chuong trình (ví
du nhu nhay cách môt diêm lây môt diêm).
Luu ý ráng voi chuong trình trên sóng sine chi duoc tao ra khi DIP Switch 0 duoc
nhân. Dê su dung môt DIP Switch khác, ví du DIP Switch 3, trong chuong trình phai su
dung các hàm DSK6713_DIP_get(3), DSK6713_LED_on(3) và DSK6713_LED_off(3).

Ví du 2: Tao tín hiêu sine và vê vói CCS
Ví du này cung tao ra môt tín hiêu sine voi 8 diêm nhu trong ví du 1 nhung nó minh
hoa kha náng vë dang sóng trong miên thoi gian và miên tân sô cua CCS. Chuong trình
chính sine8_buf.c có nôi dung nhu sau:

//sine8_buf Sine generation. Output buffer plotted within CCS
#include "dsk6713_aic23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
Tài liêu thí nghiêm Xu lý sô tín hiêu
18

int loop = 0; //table index
short gain = 10; //gain factor
short sine_table[8]={0,707,1000,707,0,-707,-1000,-707};
short out_buffer[256]; //output buffer
const short BUFFERLENGTH = 256; //size of output buffer
int i = 0; //for buffer count
interrupt void c_int11() //interrupt service routine
{
output_sample(sine_table[loop]*gain); //output sine values
out_buffer[i] = sine_table[loop]*gain; //output to buffer
i++; //increment buffer count
if(i==BUFFERLENGTH) i=0; //if @ bottom reinit count
if (++loop > 7) loop = 0; //check for end of table
return; //return from interrupt
}
void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}

Trong chuong trình này, môt vùng dêm out_buffer có kích thuoc 256 duoc su dung dê
luu lai các du liêu xuât ra.
Trong hàm main, comm_intr duoc goi. Hàm này nám trong c6713dskinit.c dê hô tro
chuong trình có dùng ngát. Phát biêu while(1) trong hàm main tao môt vòng láp vô han
dê cho ngát xay ra. Khi có xung lây mâu, ngát 11 xay ra và trình phuc vu ngát (ISR –
interrupt service routine) c_int11 duoc goi. Dia chi cua ISR này duoc xác dinh trong
tâp tin vectors_intr.asm voi môt chi dân rë nhánh dên dia chi này, su dung vector ngát
INT11.
Trong ISR này, hàm output_sample, chua trong tâp tin c6713dskinit.c, duoc goi dê xuât
ra du liêu dâu tiên trong sine_table. Chi sô loop duoc táng cho dên hêt bang rôi láp lai
tu 0. Môt bô dêm ra duoc tao dê giu 256 (xác dinh boi BUFFERLENGTH) mâu tín
hiêu sine xuât ra.

Xây dung chuong trình
Hãy tao project sine8_buf.pjt và thêm các tâp tin cân thiêt nhu trong ví du 1. Luu ý ráng
chuong trình này su dung ngát nên tâp tin vectors_intr.asm duoc su dung thay cho tâp
tin vectors_polls.asm. Tâp tin sine8_buf.c duoc chua trong thu muc
C:\CCStudio_v1.3\myprojects\source\project_2.
Xác lâp các tùy chon nhu trong ví du 1 và dich chuong trình. Nap và chay chuong trình
trên kit và kiêm tra ráng có môt sóng sine 1KHz duoc tao ra.



Vê vói CCS
Bô dêm ra duoc câp nhât liên tuc môi 256 diêm. Sau dây CCS së duoc su dung dê vë
du liêu ra hiên tai chua trong bô dêm out_buffer.
Tài liêu thí nghiêm Xu lý sô tín hiêu
19

1. Chon View Graph Time/Frequency. Thay dôi các tùy chon trong cua sô
Graph Property Dialog nhu sau dê vë trong miên thoi gian. Dia chi bát dâu cua bô
dêm chính là tên mang out_buffer duoc nhâp vào Start Address. Các tùy chon
khác có thê dê nhu mác dinh.

Hình 11. Các tùy chon dê vê trong miên thòi gian
2. Dê vë trong miên tân sô, chon các tùy chon nhu trong hình sau. Chon bâc cua
FFT (FFT Order ) sao cho FFT Framesize = 2
order
.

Hình 12. Các tùy chon dê vê trong miên tân sô


Kêt qua vë duoc thê hiên trên hình sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
20


Hình 13. Kêt qua vê bàng CCS ca trong miên tân sô và trong miên thòi gian
Tài liêu thí nghiêm Xu lý sô tín hiêu
21

BÀI 3: THUC HIEN CÁC BO LOC FIR TRÊN KIT C6713 DSK
1. Muc dích thí nghiêm
1. Hiêu rõ các buoc tu thiêt kê dên hiên thuc bô loc FIR lên trên môt kit DSP.
2. Hê thông lai các lý thuyêt dã hoc.
2. Thiêt bi thí nghiêm
STT Tên thiêt bi Sô luong
01 Máy vi tính 01
02 Kit C6713 DSK 01
03 Máy phát song 01
04 Bô dây nôi tín hiêu 01
3. Giói thiêu
Loc là môt trong nhung hoat dông xu lý tín hiêu quan trong. Môt bô loc tuong tu hoat
dông trên các tín hiêu liên tuc và thuong duoc thuc hiên voi các linh kiên nhu khuêch dai
thuât toán, các diên tro và các tu diên. Môt bô loc sô hoat dông trên tín hiêu thoi gian roi
rac và có thê thuc hiên voi môt bô xu lý sô tín hiêu nhu ho TMS320C6x. Quá trình loc
bao gôm su dung môt bô biên dôi A/D dê nhân tín hiêu vào, xu lý các mâu vào rôi gui
kêt qua ra thông qua môt bô biên dôi D/A.
Các bô loc sô có rât nhiêu uu diêm so voi các bô loc tuong tu. Các uu diêm này bao gôm
dô tin cây cao hon, dô chính xác cao hon và ít nhay voi nhiêt dô và tuôi doi. Các dác tính
loc nhu tân sô trung tâm, báng thông và loai bô loc có thê thay dôi dê dàng. Môt sô công
cu có sán cho viêc thiêt kê và thuc hiên các bô loc sô môt cách nhanh chóng trên kit
TMS320C6x.
4. Co so lý thuyêt
Bô loc FIR nhân qua bâc M có dáp ung xung h = [h
0
, h
1
, …, h
M
] (chiêu dài báng M + 1)
Ngõ ra cua bô loc duoc xác dinh theo công thuc tích châp:

− = − =
m m
m n h m x m n x m h n y ) ( ) ( ) ( ) ( ) (
trong dó x(n) là ngõ vào cua bô loc.
Hàm truyên cua bô loc duoc xác dinh tu biên dôi Z cua h(n):
M
M
M
n
n
z h z h h z n h z H
− −
=

+ + + = =

... ) ( ) (
1
1 0
0

trong dó các hê sô cua hàm truyên chính là dáp ung xung h cua bô loc.
Bô loc FIR có thê thiêt kê báng nhiêu phuong pháp, trong dó phuong pháp don gian nhât
là phuong pháp cua sô.
Bô loc có thê duoc thuc hiên báng hai phuong pháp: Phuong pháp xu lý khôi và phuong
pháp xu lý mâu. Voi phuong pháp xu lý mâu, bô loc có thê duoc thuc hiên dang truc tiêp
nhu sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
22


Hình 14. Thuc hiên bô loc FIR dang truc tiêp
Nêu dát các biên trang thái
v
0
(n) = x(n)
v
1
(n) = x(n – 1)

v
M
(n) = x(n – M)
Ta së có giai thuât xu lý mâu ung voi so dô khôi trên nhu sau:
Voi môi mâu vào x:
v
0
= x

=
=
M
0 k
k k
v h y
v
M
= v
M-1


v
1
= v
0
5. Chuân bi thí nghiêm
1. Cho môt bô loc FIR có dáp ung xung h = [1; -2; -3; -4]. Hãy xác dinh:
a. Bâc bô loc
b. Phuong trình sai phân I/O cua bô loc
c. So dô khôi thuc hiên dang truc tiêp và giai thuât xu lý mâu.
2. Trình bày tóm tát các buoc thiêt kê môt bô loc FIR báng SPTool cua MATLAB. Có
mây phuong pháp thiêt kê bô loc FIR trong SPTool? Hãy liêt kê.
3. Thê nào là môt bô loc multiband? Thu phát hoa dáp ung tân sô cua môt bô loc
multiband? Có thê dùng MATLAB dê thiêt kê môt bô loc FIR multiband hay không?
4. Tóm tát các buoc së làm dê thuc hiên các phân thí nghiêm sau.
Tài liêu thí nghiêm Xu lý sô tín hiêu
23

6. Tiên hành thí nghiêm
6.1 Thuc hiên bô loc FIR
Truoc hêt, hãy thuc hiên theo tung buoc ví du don gian sau. Sau dó, hãy tu thuc hiên
các bô loc FIR khác theo yêu câu.

Ví du : Thiêt kê mot bo loc FIR thông thap bac 88 voi tan so cát 2.5 kHz, tan so lay
mau 8 kHz. Thuc hiên nó trên kit C6713 DSK. Kiêm chung bo loc dã thuc hiên.

Trong ví du này có 3 phân chính cân phai thuc hiên:
1. Thiêt kê bô loc FIR: kêt qua cua phân này là có duoc dáp ung xung h(n) cua bô
loc.
2. Thuc hiên bô loc lên trên kit C6713 DSK: Su dung dáp ung xung thu duoc tu
phân thiêt kê, viêt chuong trình thuc hiên mach loc lên kit. Chuong trình së doc
tung mâu du liêu vào và tiên hành giai thuât xu lý mâu dê tính ngõ ra.
3. Kiêm tra bô loc dã thuc hiên: Trong phân này, bô loc dã thuc hiên trên kit së
duoc kiêm tra xem có dáp ung yêu câu dát ra hay không. Chúng ta së su dung
môt máy phát sóng dê tao tín hiêu ngõ vào và quan sát tín hiêu ngõ ra cua bô loc
khi thay dôi tín hiêu ngõ vào.

Thiêt kê bô loc
1. Su dung công cu SPTool trong MATLAB dê thiêt kê bô loc trên voi phuong pháp
Least Squares FIR.
2. Luu bô loc dã thiêt kê voi tên là lp2500 rôi xuât ra workspace cua MATLAB.

Thuc hiên bô loc
Bô loc này duoc thuc hiên trên kit báng chuong trình sau (viêt báng ngôn ngu C)

//Fir.c FIR filter. Include coefficient file with length N
#include "coefficients.h" //coefficient file
#include "dsk6713_aic23.h" //codec-dsk support file

Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
int yn = 0; //initialize filter's output
short dly[N]; //delay samples

interrupt void c_int11() //ISR
{
short i;
dly[0]=input_sample(); //input newest sample
yn = 0; //initialize filter's output
for (i = 0; i< N; i++)
yn += (h[i] * dly[i]); //y(n) += h(i)* x(n-i)
for (i = N-1; i > 0; i--) //starting @ end of buffer
Tài liêu thí nghiêm Xu lý sô tín hiêu
24

dly[i] = dly[i-1]; //update delays with data move
output_sample(yn >> 15); //scale output filter sample
return;
}

void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}

Trong chuong trình này, N là chiêu dài cua dáp ung xung cua bô loc ( báng M + 1 voi
M là bâc cua bô loc) và dáp ung xung cua bô loc là mang h có kích thuoc N. Giá tri cua
N và vector h duoc khai báo trong tâp tin coefficients.h. Tâp tin này duoc gôp vào nho
chi dân #include. Nhu vây, khi muôn thay dôi bô loc, chi cân thay dôi nôi dung cua tâp
tin coefficients.h.
Chuong trình trên có su dung ngát. Khi có có xung lây mâu (tân sô chon o dây là
8KHz), trình phuc vu ngát c_int11 duoc goi, doc mâu vào và thuc hiên giai thuât xu lý
mâu dê tính ngõ ra.
Do các hê sô cua dáp ung xung nhân duoc tu quá trình thiêt kê là khá nho, chúng ta së
nhân nó voi 2
15
. Mâu ra sau khi xu lý duoc chia lai cho 2
15
báng cách dich phai 15 bit
(trong hàm output_sample(yn >> 15)). Viêc nhân các hê sô voi 2
15
cung là do bô xu lý
së luong tu hóa các hê sô voi môt sô luong bit huu han và viêc nhân lên së giam di sai
sô.
Tóm lai, các buoc dê thuc hiên bô loc lên kit nhu sau:
1. Lây các hê sô cua hàm truyên cua bô loc, nhân voi hê sô ti lê 2
15

>> cof = round(lp2500.tf.num*2^15)
2. Nêu cua sô workspace cua MATLAB chua hiên thi, hãy mo nó lên. Trong
workspace, nhân dúp chuôt vào tên biên cof dê mo cua sô Array Editor.
3. Mo CCS (nho mo nguôn cua DSK truoc khi mo CCS).
4. Mo tâp tin project (dã duoc tao sán) FIR.pjt trong
C:\CCStudio_v3.1\myprojects\FIR.
5. Trong cua sô Project View, tab File View, mo rông phân Include, mo tâp tin
coeficients.h.
6. Dát các hê sô cua bô loc vua thiêt kê vào trong tâp tin này. (Có thê copy và paste
tu cua sô Array Editor trên). Diêu chinh giá tri N cho dúng voi chiêu dài dáp ung
xung. Luu ý ráng các giá tri cua dáp ung xung cách nhau báng môt dâu phây (,).
Luu tâp tin sau khi sua dôi.
7. Xác lâp các tùy chon phù hop (xem phân huong dân su dung trong tài liêu này)
rôi tiên hành biên dich chuong trình. Sau khi dich thành công, hãy nap chuong
trình lên trên kit và chay chuong trình.

Dánh giá kêt qua thuc hiên
1. Hãy thu xem dáp ung tân sô cua bô loc vua thuc hiên báng cách su dung công cu
vë trong miên tân sô cua CCS. Chon View Graph Time/Frequency. Chon
Tài liêu thí nghiêm Xu lý sô tín hiêu
25

Display Type là FFT Magnitude và Start Address là dia chi bát dâu cua vector
dáp ung xung, tuc là tên mang h.
2. Mo nguôn cua máy phát sóng. Tao môt tín hiêu hình sine tu máy phát sóng và
quan sát dang sóng ngõ ra. Thay dôi tân sô cua tín hiêu vào và hãy xác dinh tân sô
cát 3-dB cua bô loc.

Sau khi dã thuc hiên ví du trên, hãy áp dung nhung gì dã hoc dê thuc hiên các thí
nghiêm sau. Voi môi bài thí nghiêm, hãy dua dáp ung tân sô cua bô loc vào trong bài
báo cáo.
(Huong dan: nêu sao chép thu muc FIR dã có thành mot thu muc voi tên khác và thuc
hiên trên thu muc moi này ung voi tung bo loc).
1. Thiêt kê môt bô loc FIR chán dai báng phuong pháp Kaiser Window có các thông
sô nhu sau:
a. Chiêu dài dáp ung xung N = 89 (Bâc bô loc: 88)
b. Tân sô cát: 2500 và 2900 Hz.
c. Giá tri cua β = 4
d. Tân sô lây mâu: 8 kHz.
Thuc hiên bô loc lên trên kit và kiêm tra kêt qua.
2. Thiêt kê bô loc FIR thông dai báng phuong pháp Kaiser Window voi các thông
sô nhu sau:
a. Chiêu dài dáp ung xung: 81
b. Tân sô cát: 1500 và 2000 Hz.
c. Giá tri cua β = 5
d. Tân sô lây mâu: 8 kHz.
Thuc hiên bô loc và kiêm tra kêt qua.
3. Thuc hiên và thiêt kê bô loc thông cao sau báng phuong pháp Kaiser Window.
Sau dó, cho môt tín hiêu xung vuông tân sô 1 kHz vào và hiên thi tín hiêu ra. Giai
thích kêt qua. Các thông sô cua bô loc nhu sau:
a. Chiêu dài dáp ung xung: 81
b. Tân sô cát: 2200 Hz.
c. Giá tri cua β = 4
d. Tân sô lây mâu: 8 kHz.
6.2 Môt bô loc FIR multiband
Hãy thiêt kê và thuc hiên lên kit C6713 DSK môt bô loc FIR multiband voi hai dai
thông có tân sô trung tâm lân luot là 2500 và 3500 Hz. Báng thông cua môi dai thông là
500 Hz. Tân sô lây mâu là 8 kHz.
1. Vë dáp ung tân sô cua bô loc.
2. Tao môt sóng vuông voi tân sô 800 Hz o dâu vào cua bô loc. Hiên thi dang sóng và
phô cua ngõ ra. Giai thích tai sao có dang phô này?
3. Thay dôi tân sô cua tín hiêu vào. Quan sát phô ngõ ra. Giai thích su thay dôi.
4. Vë phô cua tín hiêu ngõ ra khi tân sô cua tín hiêu vào là 0.5kHz, 1kHz và 1.5kHz.
Giai thích?

Tài liêu thí nghiêm Xu lý sô tín hiêu
26

BÀI 4: THUC HIEN CÁC BO LOC IIR TRÊN KIT C6713 DSK
1. Muc dích thí nghiêm
1. Hiêu rõ các buoc tu thiêt kê dên hiên thuc bô loc IIR lên trên môt kit DSP.
2. Hê thông lai các lý thuyêt dã hoc.
2. Thiêt bi thí nghiêm
STT Tên thiêt bi Sô luong
01 Máy vi tính 01
02 Kit C6713 DSK 01
03 Máy phát song 01
04 Bô dây nôi tín hiêu 01
3. Giói thiêu
Loc là môt trong nhung hoat dông xu lý tín hiêu quan trong. Môt bô loc tuong tu hoat
dông trên các tín hiêu liên tuc và thuong duoc thuc hiên voi các linh kiên nhu khuêch dai
thuât toán, các diên tro và các tu diên. Môt bô loc sô hoat dông trên tín hiêu thoi gian roi
rac và có thê thuc hiên voi môt bô xu lý sô tín hiêu nhu ho TMS320C6x. Quá trình loc
bao gôm su dung môt bô biên dôi A/D dê nhân tín hiêu vào, xu lý các mâu vào rôi gui
kêt qua ra thông qua môt bô biên dôi D/A.
Các bô loc sô có rât nhiêu uu diêm so voi các bô loc tuong tu. Các uu diêm này bao gôm
dô tin cây cao hon, dô chính xác cao hon và ít nhay voi nhiêt dô và tuôi doi. Các dác tính
loc nhu tân sô trung tâm, báng thông và loai bô loc có thê thay dôi dê dàng. Môt sô công
cu có sán cho viêc thiêt kê và thuc hiên các bô loc sô môt cách nhanh chóng trên kit
TMS320C6x.
4. Co so lý thuyêt
Hãy xem xét môt phuong trình I/O tông quát có dang:
) ( ) 2 ( ) 1 (
) ( ) 2 ( ) 1 ( ) (
) ( ) ( ) (
2 1
2 1 0
0 1
M n y b n y b n y b
N n x a n x a n x a n x a
j n y b k n x a n y
M
N
N
k
M
j
j k
− − − − − − −
− + + − + − + =
− − − =

= =

Dang phuong trình dê quy này biêu diên môt bô loc IIR. Ngõ ra y(n) o thoi diêm y(n)
không chi phu thuôc vào ngõ vào hiên tai x(n) o thoi diêm n và các ngõ vào trong quá
khu x(n – 1),
x(n – 2), …, x(n – N), mà còn phu thuôc vào các ngõ ra truoc dó y(n – 1), y(n – 2), …,
y(n – M).
Nêu chúng ta gia su các diêu kiên ban dâu dêu báng 0, biên dôi Z phuong trình trên së
cho:
) ( ) ( ) (
) ( ) ( ) ( ) ( ) (
2
2
1
1
2
2
1
1 0
z Y z b z Y z b z Y z b
z X z a z X z a z X z a z X a z Y
M
M
N
N
− − −
− − −
− − − −
+ + + + =

Tài liêu thí nghiêm Xu lý sô tín hiêu
27

Khi N = M, hàm truyên H(z) là
) (
) (
1 ) (
) (
) (
2
2
1
1
2
2
1
1 0
z D
z N
z b z b z b
z a z a z a a
z X
z Y
z H
N
N
N
N
=
+ + +
+ + +
= =
− − −
− − −

trong dó N(z) và D(z) biêu diên da thuc tu sô và da thuc tu sô cua hàm truyên. Nhân và
chia cho z
N
, H(z) tro thành:

=
− −
− −


=
+ + +
+ + +
=
N
i i
i
N
N N N
N
N N N
p z
z z
C
b z b z b z
a z a z a z a
z H
1
2
2
1
1
2
2
1
1 0
) (

Dây là môt hàm truyên voi N zero và N cuc. Nêu tât ca các hê sô b
j
báng 0, hàm truyên
này tro thành hàm truyên cua môt bô loc FIR. Dê hê thông ôn dinh, tât ca các cuc phai
nám trong vòng tròn don vi.
Các bô loc IIR có thê duoc thuc hiên theo các câu trúc sau:
1. Dang truc tiêp 1

Hình 15. Thuc hiên bô loc IIR dang truc tiêp 1
Khi thuc hiên o dang này, môt bô loc bâc N cân dùng 2N khôi làm trê.
2. Dang truc tiêp 2 (Dang chính tàc)
Dây là môt trong nhung câu trúc thuong duoc su dung. Nó chi cân môt nua sô khôi
trê so voi dang truc tiêp 1.
Dát
) (
) (
) (
z D
z X
z U = trong dó D(z) là mâu sô cua hàm truyên bô loc IIR.
Khi dó:
N
N
z a z a z a a z U
z U z N z X
z D
z N
z Y
− − −
+ + + =
= =

2
2
1
1 0
)( (
) ( ) ( ) (
) (
) (
) (

voi N(z) là tu sô cua hàm truyên.
Và:
) 1 )( ( ) ( ) ( ) (
2
2
1
1
N
N
z b z b z b z U z D z U z X
− − −
+ + + = =
Biên dôi Z nguoc ta së có:
Tài liêu thí nghiêm Xu lý sô tín hiêu
28

) ( ) 2 ( ) 1 ( ) ( ) (
) ( ) 2 ( ) 1 ( ) ( ) (
2 1 0
2 1
N n u a n u a n u a n u a n y
N n u b n u b n u b n x n u
N
N
− + + − + − + =
− − − − − − − =

Thuc hiên duoi dang so dô khôi:

Hình 16. Thuc hiên bô loc IIR dang truc tiêp 2
3. Dang truc tiêp 2 chuyên vi
Dang truc tiêp 2 chuyên vi là môt biên thê cua dang truc tiêp 2 và cân cùng sô khôi
trê. Các buoc sau chuyên môt bô loc tu dang truc tiêp 2 sang dang chuyên vi:
a. Dao huong tât ca các nhánh
b. Dôi dâu vào voi dâu ra
c. Vë lai so dô sao cho dâu vào o bên trái và dâu ra o bên phai

Hình 17. Thuc hiên bô loc IIR dang truc tiêp 2 chuyên vi

4. Dang cascade các tâng bâc 2
Hàm truyên trên có thê duoc phân tích thành tích các hàm truyên bâc 1 hoác bâc 2
nhu sau:
) ( ) ( ) ( ) (
2 1
z H z H z CH z H
r
=
Câu trúc nôi tiêp (cascade) này duoc vë nhu sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
29


Hình 18. Câu trúc cascade cua bô loc IIR
Hàm truyên toàn bô có thê duoc biêu diên báng su ghép cascade các hàm truyên. Dôi
voi môi phân, dang truc tiêp 2 hoác chuyên vi cua nó có thê duoc su dung. Hàm
truyên H(z) duoi dang cascade các hàm truyên bâc hai có thê viêt nhu sau:

=
− −
− −
+ +
+ +
=
2 /
1
2
2
1
1
2
2
1
1 0
1
) (
N
i i i
i i i
z b z b
z a z a a
z H
Hình sau vë môt bô loc IIR bâc 4 duoi dang cascade cua hai phân bâc 2.

Hình 19. Bô loc IIR bâc 4 vói 2 phân bâc 2 dang truc tiêp 2

5. Dang song song
Hàm truyên bô loc IIR cung có thê duoc biêu diên nhu sau (báng phuong pháp khai
triên phân sô tung phân):
) ( ) ( ) ( ) (
2 1
z H z H z H C z H
r
+ + + =
Câu trúc song song này có thê vë nhu sau:

Hình 20. Câu trúc song song cua bô loc IIR
Tài liêu thí nghiêm Xu lý sô tín hiêu
30

5. Chuân bi thí nghiêm
1. Trình bày tóm tát các buoc thiêt kê môt bô loc IIR báng SPTool cua MATLAB. Có
mây loai bô loc IIR trong SPTool? Hãy liêt kê.
2. Hãy phân biêt dác diêm cua dáp ung tân sô cua các loai bô loc Butterwork,
Chebyshev 1, Chebyshev 2 và Elliptic.
3. Cho môt hê thông có hàm truyên nhu sau:
2 2
25 . 0 1
4
25 . 0 1
5
) (
− −


+
=
z z
z H
a. Hãy vë cách thuc hiên dang truc tiêp (direct form) cua hê thông.
b. Hãy vë cách thuc hiên dang chính tác (canonical form) cua hê thông.
c. Hãy vë cách thuc hiên dang ghép nôi tiêp các tâng bâc hai (cascade form) cua
hê thông.
4. Tóm tát các buoc së làm dê thuc hiên các phân thí nghiêm sau.
6. Tiên hành thí nghiêm
6.1 Thuc hiên bô loc IIR dang ghép cascade các tâng bâc 2
Trong thí nghiêm này, chúng ta së thuc hiên môt bô loc IIR trên kit C6713 DSK, su
dung câu trúc ghép cascade các phân bâc 2. Chúng ta su dung phuong trình sau ung voi
môi tâng:
) ( ) 2 ( ) 1 ( ) ( ) (
) ( ) 2 ( ) 1 ( ) ( ) (
2 1 0
2 1
N n u a n u a n u a n u a n y
N n u b n u b n u b n x n u
N
N
− + + − + − + =
− − − − − − − =

Truoc hêt, hãy thuc hiên theo tung buoc ví du don gian sau. Sau dó, hãy tu thuc hiên
các bô loc IIR khác theo yêu câu.

Ví du : Thiêt kê mot bo loc IIR chán dai bac 10 báng phuong pháp Elliptic voi tan so
trung tâm 1750 Hz, tan so lay mau 8 kHz, tan so cát 1700 và 1800 Hz, do gon dai chán
và dai thông tuong ung là 60dB và 1dB. Thuc hiên nó trên kit C6713 DSK dang ghép
cascade các phan bac 2. Kiêm chung bo loc dã thuc hiên.

Trong ví du này có 3 phân chính cân phai thuc hiên:
1. Thiêt kê bô loc IIR: kêt qua cua phân này là có duoc các hê sô cua tu sô và mâu
sô cua hàm truyên bô loc. Các hê sô này së duoc chuyên thành môt ma trân trong
dó môi hàng biêu diên cho môt tâng bâc hai (second-order section).
2. Thuc hiên bô loc lên trên kit C6713 DSK: Su dung kêt qua thu duoc tu phân thiêt
kê, viêt chuong trình thuc hiên mach loc lên kit. Chuong trình së doc tung mâu
du liêu vào và tiên hành giai thuât xu lý mâu dê tính ngõ ra.
3. Kiêm tra bô loc dã thuc hiên: Trong phân này, bô loc dã thuc hiên trên kit së
duoc kiêm tra xem có dáp ung yêu câu dát ra hay không. Chúng ta së su dung
môt máy phát sóng dê tao tín hiêu ngõ vào và quan sát tín hiêu ngõ ra cua bô loc
khi thay dôi tín hiêu ngõ vào.



Tài liêu thí nghiêm Xu lý sô tín hiêu
31

Thiêt kê bô loc
1. Su dung công cu SPTool trong MATLAB dê thiêt kê bô loc trên voi phuong pháp
Elliptic. Luu ý: Dôi vói bô loc IIR chàn dai và thông dai, bâc duoc thê hiên
trên MATLAB bàng sô phân bâc 2, túc là bàng môt nua bâc cua bô loc thuc.
2. Luu bô loc dã thiêt kê voi tên là bs1750 rôi xuât ra workspace cua MATLAB.
3. Tu các hê sô tu và mâu o trên, ta së chuyên thành dang 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)

Ma trân sos trong MATLAB nhu sau:

=
L L L L L
a a b b b
a a b b b
a a b b b
sos
2 1 2 1 0
22 12 22 12 02
21 11 21 11 01
1
1
1


trong dó b
0i
, b
1i
, b
2i
là các hê sô tu sô hàm truyên cua phân bâc 2 thu i và 1, a
1i
, a
2i

các hê sô mâu sô hàm truyên cua phân bâc 2 thu i.

Thuc hiên bô loc
Bô loc này duoc thuc hiên trên kit báng chuong trình sau (viêt báng ngôn ngu 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
}
Tài liêu thí nghiêm Xu lý sô tín hiêu
32

void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Trong chuong trình này, stages là sô tâng cua bô loc (sô phân bâc 2). Ma trân a và b
tuong ung chua các hê sô cua tu sô và mâu sô cua các phân bâc 2. Luu ý: a và b trong
chuong trình này úng vói b và a trong ma trân sos cua MATLAB. Giá tri cua
stages, ma trân a, ma trân b duoc khai báo trong tâp tin coefficients.h. Tâp tin này duoc
include vào nho chi dân #include. Nhu vây, khi muôn thay dôi bô loc, chi cân thay dôi
nôi dung cua tâp tin coefficients.h.
Nôi dung cua tâp tin coefficients.h có dang nhu sau:
//coefficients.cof coefficient file

#define stages 5 //number of 2nd-order stages

int a[stages][3]= { //numerator coefficients
{27940, -10910, 27940}, //a10, a11, a12 for 1st stage
{32768, -11841, 32768}, //a20, a21, a22 for 2nd stage
{32768, -13744, 32768}, //a30, a31, a32 for 3rd stage
{32768, -11338, 32768}, //a40, a41, a42 for 4th stage
{32768, -14239, 32768} };

int b[stages][2]= { //*denominator coefficients
{-11417, 25710}, //b11, b12 for 1st stage
{-9204, 31581}, //b21, b22 for 2nd stage
{-15860, 31605}, //b31, b32 for 3rd stage
{-10221, 32581}, //b41, b42 for 4th stage
{-15258, 32584} }; //b51, b52 for 5th stage
Tâp tin này khai báo môt bô loc có 5 tâng bâc 2. Giá tri cua các phân tu cua a và b thu
duoc tu viêc thiêt kê bô loc o trên. Luu ý: a và b trong chuong trình này úng vói b
và a trong ma trân sos cua MATLAB.
Chuong trình trên duoc thuc hiên có su dung ngát. Khi có xung lây mâu (tân sô o dây
là 8 KHz), trình phuc vu ngát c_int11( ) duoc goi, doc mâu vào và thuc hiên giai thuât
xu lý mâu dê tính ngõ ra. Phân láp cua doan mã trong chuong trình duoc thuc hiên
stages lân voi môi giá tri cua n. Dôi voi tâng dâu tiên, x(n) là mâu moi nhân vào. Dôi
voi các tâng tiêp theo, x(n) là ngõ ra cua tâng truoc dó.
Các giá tri dly[i][0] và dly[i][1] tuong ung voi các delay u(n – 1) và u(n – 2) o tâng thu
i.
Do các hê sô a và b nhân duoc tu quá trình thiêt kê là khá nho, chúng ta së nhân nó voi
2
15
. Mâu ra sau khi xu lý duoc chia lai cho 2
15
báng cách dich phai 15 bit (trong hàm
output_sample(yn >> 15)). Viêc nhân các hê sô voi 2
15
cung là do bô xu lý së luong tu
hóa các hê sô voi môt sô luong bit huu han và viêc nhân lên së giam di sai sô.

Hãy làm theo các buoc sau dê hoàn thành ví du này:
1. Nêu CCS chua chay, hãy khoi dông nó. Sau khi kêt nôi voi kit, hãy mo project
IIR.pjt có sán trong thu muc C:\\CCStudio_v3.1\myprojects\IIR.
Tài liêu thí nghiêm Xu lý sô tín hiêu
33

2. Trong cua sô Project View, tab File View, hãy mo tâp tin coefficients.h (trong
phân Include). Hãy câp nhât tâp tin này voi các giá tri thu duoc trong phân thiêt
kê o trên, sau khi nhân chúng voi 2
15

>> sos = sos*2^15
3. Hãy dich lai chuong trình và nap lên kit C6713 và chay chuong trình

Dánh giá kêt qua thuc hiên
1. Mo nguôn cua máy phát sóng. Tao môt tín hiêu hình sine tu máy phát sóng và
quan sát dang sóng ngõ ra. Thay dôi tân sô cua tín hiêu vào và hãy xác dinh tân sô
cát 3-dB cua bô loc.
Sau khi dã thuc hiên ví du trên, hãy áp dung nhung gì dã hoc dê thuc hiên các thí
nghiêm sau. Voi môi bài thí nghiêm, hãy dua dáp ung tân sô cua bô loc vào trong bài
báo cáo.
(Huong dan: nêu sao chép thu muc IIR dã có thành mot thu muc voi tên khác và thuc
hiên trên thu muc moi này ung voi tung bo loc).
1. Thiêt kê môt bô loc IIR thông thâp thuôc loai Chebyshev 2 có các thông sô nhu
sau:
a. Bâc bô loc: 10
b. Canh dai dai chán: 1.6 KHz.
c. Dô gon dai chán: 60 dB
d. Tân sô lây mâu: 8 kHz.
Thuc hiên bô loc lên trên kit và kiêm tra kêt qua.
2. Thiêt kê bô loc IIR thông dai thuôc loai Chebyshev 2 voi các thông sô nhu sau:
a. Bâc bô loc: 36 (Matlab hiên thi là 18)
b. Tân sô cát dai chán: 1600 và 2400 Hz
c. Dô gon dai chán 100 dB.
d. Tân sô lây mâu: 8 kHz.
Thuc hiên bô loc và kiêm tra kêt qua.
6.2 Tao hai tone bàng cách su dung hai phuong trình sai phân bâc 2
Trong thí nghiêm này, chúng ta së tao và công hai tone báng phuong pháp phuong trình
sai phân. Tín hiêu ra cung duoc luu trong bô nho và duoc vë báng CCS. Phuong trình
sai phân dùng dê tao môt sóng hình sine là
) 2 ( ) 1 ( ) ( − − − = n y n Ay n y
trong dó:
( )
( ) ( )
( ) ( ) T y
T y
T A
ω
ω
ω
2 sin 2
sin 1
cos 2
− = −
− = −
=

voi hai diêu kiên ban dâu, y(-1) và y(-2), e=2πf và ms
kHz F
T
S
125 . 0
8
1 1
= = = là chu ky
lây mâu. Hê sô A cua phuong trình sai phân, cùng voi hai diêu kiên dâu, xác dinh tân
sô duoc tao ra.
a. Su dung biên dôi Z, hãy chung minh ráng y(n) = sin(neT)
Tài liêu thí nghiêm Xu lý sô tín hiêu
34

b. Tính A, y(-1) và y(-2) cân thiêt dê tao ra môt sóng sine có tân sô 1.5kHz?
2kHz?
c. Hãy chay chuong trình Code Composer Studio (CCS) và mo project
two_tones.pjt trong thu muc C:\CCStudio_v3.1\myprojects\two_tones. Hãy mo
tâp tin nguôn cua chuong trình two_tones.c. Nôi dung cua tâp tin này nhu sau:
//two_tones.c Generates/adds two tones using difference
//equations

#include "DSK6713_AIC23.h" //codec-DSK support file
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
short sinegen(void); //for generating tone
short output; //for output
short sinegen_buffer[256]; //buffer for output data
const short bufferlength = 256; //buffer size for plot with
CCS
short i = 0; //buffer count index
short y1[3] = {0,-15137,-11585};//y1(0),y1(-1),y1(-2) for
1.5kHz
const short A1 = 12540; //A1 = 2coswT scaled by 2^14
short y2[3] = {0,-16384,0}; //y2(0),y2(-1),y2(-2) for 2kHz
const short A2 = 0; //A2 = 2coswT scaled by 2^14

interrupt void c_int11() //ISR
{
output = sinegen(); //out from tone generation
function
sinegen_buffer[i] = output; //output into buffer
output_sample(output); //output result
i++; //increment buffer count
if (i == bufferlength)
i = 0; //if buffer count = size of
buffer
return; //return to main
}

short sinegen() //function to generate tone
{
y1[0] =((y1[1]*A1)>>14)-y1[2]; //y1(n)= A1*y1(n-1)-y1(n-2)
y1[2] = y1[1]; //update y1(n-2)
y1[1] = y1[0]; //update y1(n-1)

y2[0] =((y2[1]*A2)>>14)-y2[2]; //y2(n)= A2*y2(n-1)-y2(n-2)
y2[2] = y2[1]; //update y2(n-2)
y2[1] = y2[0]; //update y2(n-1)

return (y1[0] + y2[0]); //add the two tones
}

void main()
{
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Mang y1[3] chua các giá tri cua y1(0), y1(-1) và y1(-2) dê tao tone có tân sô
1.5kHz, và mang y2[3] chua các giá tri cua y2(0), y2(-1) và y2(-2) dê tao tone
có tân sô 2kHz. Hàm sinegen() su dung phuong trình sai phân bâc hai dê tao
môi tone, sau dó công chúng lai.
d. Dich và chay chuong trình trên kit. Kiêm chung ráng tín hiêu ra là tông cua
hai tone có tân sô 1.5kHz và 2kHz.
e. Các mâu tín hiêu ra cung duoc luu trong môt vùng nho dêm. Hãy su dung
CCS dê vë phô biên dô FFT cua tín hiêu ra. Luu ý dia chi bát dâu cua vùng
dêm này là sinegen_buffer.
Tài liêu thí nghiêm Xu lý sô tín hiêu
35

f. Kÿ thuât này có thê duoc dùng dê tao tín hiêu DTMF (Dual – tone
multifrequency). Hãy thu tao và công hai tone có tân sô 697 và 1209 Hz. Tín
hiêu DTMF này duoc tao ra khi nhân phím sô 3 trên diên thoai. Vë phô cua
nó.
6.3 Tao tín hiêu sine bàng môt phuong trình sai phân
Môt tín hiêu hình sine cung có thê duoc tao ra báng môt phuong trình sai phân khác:
) 1 ( ) 2 ( ) 1 ( ) ( − + − + − = n Cx n By n Ay n y voi B = -1.
Khi có môt xung o n = 0, x(n – 1) = x(0) = 1.
Voi n = 1:
C Cx By Ay y = + − + = ) 0 ( ) 1 ( ) 0 ( ) 1 ( voi y(0) = 0 và y(-1) = 0.
Voi n > 2:
) 2 ( ) 1 ( ) ( − − − = n y n Ay n y
Hê sô ) cos( T A ω = và ) sin( T C ω = duoc tính voi chu ky lây mâu T = 1/F
s
và tân sô
mong muôn e.
a. Trong CCS, hãy mo project sinegenDE.pjt tai thu muc có duong dân
C:\CCStudio_v3.1\myprojects\sinegenDE
b. Hãy mo tâp tin nguôn chính sinegenDE.c. Biên dich chuong trình và chay.
Xác dinh tân sô cua tín hiêu ra.
c. Tính A và y[3] dê tao môt tone có tân sô 1kHz. Sau dó hãy hiêu chinh project
và dich lai. Kiêm tra tín hiêu ra có phai là tone có tân sô 1kHz không?
















Tài liêu thí nghiêm Xu lý sô tín hiêu
36

BÀI 5: THUC HIEN CÁC HE THÓNG UNG DUNG TRÊN KIT
C6713 DSK
1. Muc dích thí nghiêm
1. Làm quen voi các thiêt kê ung dung thuc tê
2. Nghiên cuu, phân tích thiêt kê dê làm nên tang cho các hê thông lon hon.
2. Thiêt bi thí nghiêm
STT Tên thiêt bi Sô luong
01 Máy vi tính 01
02 Kit C6713 DSK 01
03 Bô dây nôi tín hiêu 01
3. Giói thiêu
Trong các bô loc FIR và IIR thông thuong, các thông sô xác dinh dác tính cua bô loc
duoc gia su là dã biêt. Chúng có thê thay dôi theo thoi gian nhung tính chât cua su thay
dôi này xem nhu dã biêt. Trong nhiêu vân dê thuc tê, các thông sô này hâu hêt là không
chán chán do thiêu các du liêu thu truoc. Vài thông sô có thê thay dôi theo thoi gian
nhung không thê du doán duoc cách thay dôi. Trong các truong hop này, môt bô loc có
thê tu thích nghi voi su thay dôi së là thích hop nhât. Các hê sô cua bô loc thích nghi
duoc diêu chinh dê bù cho su thay dôi cua tín hiêu vào, tín hiêu ra hoác thông sô cua hê
thông. Môt bô loc thích nghi rât huu ích khi có su không chác chán vê dác tính cua tín
hiêu hoác khi các dác tính thay dôi.
Môt bô loc rât don gian nhung rât manh là bô kêt hop thích nghi tuyên tính (linear
adaptive combiner), thuc chât là môt bô loc FIR thích nghi. Tiêu chuân trung bình bình
phuong cuc tiêu LMS (Least Mean Squares) là môt giai thuât tìm kiêm duoc su dung dê
diêu chinh các hê sô cua bô loc.
4. Co so lý thuyêt
Hâu hêt các dang thích nghi có thê duoc mô ta boi câu trúc nhu sau:

Hình 21. Câu trúc bô loc thích nghi co ban
Dây là môt câu trúc bô loc thích nghi co ban trong dó ngõ ra y cua bô loc duoc so sánh
voi môt tín hiêu mong muôn d dê tao ra môt tín hiêu sai sô e, duoc hôi tiêp tro lai bô loc.
Tín hiêu sai sô này là dâu vào cua giai thuât thích nghi dê thay dôi bô loc sao cho thoa
mãn môt tiêu chuân hoác môt quy luât xác dinh truoc.
Các hê sô cua bô loc thích nghi duoc diêu chinh, hoác duoc tôi uu, su dung giai thuât
LMS dua trên tín hiêu sai sô. O dây, chúng ta chi thao luân giai thuât tìm kiêm LMS voi
Tài liêu thí nghiêm Xu lý sô tín hiêu
37

môt bô loc FIR mác dù có vài phuong pháp thuc hiên loc thích nghi. Ngõ ra cua bô loc
thích nghi o hình 26 là:
( ) ( ) ( )


=
− =
1
0
N
k
k
k n x n w n y
voi ( ) n w
k
biêu diên N hê sô cua bô loc o thoi diêm n.
Dê dánh giá chât luong cua bô loc, chúng ta su dung môt phép do luong dua trên tín hiêu
sai sô,
( ) ( ) ( ) n y n d n e − =
Sai sô này là su sai khác giua tín hiêu mong muôn d(n) và ngõ ra y(n) cua bô loc. Các hê
sô ( ) n w
k
duoc diêu chinh sao cho môt hàm sai sô trung bình bình phuong duoc cuc tiêu.
Hàm này là ( ) [ ] n e E
2
voi E[] biêu diên giá tri ky vong. Do có N hê sô (hay trong sô), cân
tính gradient cua hàm sai sô trung bình bình phuong. Môt su uoc luong có thê duoc su
dung báng cách dùng gradient cua e
2
(n), cho kêt qua:
( ) ( ) ( ) ( ) 1 ,..., 1 , 0 , 2 1 − = − + = + N k k n x n e n w n w
k k
β
thê hiên giai thuât LMS.
4.1 Các câu trúc thích nghi
Môt sô câu trúc thích nghi duoc su dung trong các ung dung khác nhau cua loc thích
nghi.
a. Loc nhiêu (noise cancellation)

Hình 22. Câu trúc bô loc thích nghi dùng dê loc nhiêu
Hình trên vë lai câu trúc thích nghi o hình 26 duoc chinh sua cho ung dung loc
nhiêu. Tín hiêu mong muôn d bi anh huong boi nhiêu công không tuong quan
n. Ngõ vào cua bô loc thích nghi là môt nhiêu n’ tuong quan voi nhiêu n.
Nhiêu n’ có thê dên tu cùng nguôn nhiêu voi n nhung bi thay dôi boi môi
truong. Ngõ ra y cua bô loc thích nghi duoc diêu chinh theo nhiêu n. Khi diêu
này xay ra, tín hiêu sai sô së tiên dên tín hiêu mong muôn d. Kêt qua toàn cuc
là tín hiêu sai sô này chu không phai ngõ ra y cua bô loc thích nghi. Nêu d
không tuong quan voi n, chiên thuât là làm tôi thiêu E(e
2
)

b. Nhân dang hê thông (system identification)
Hình sau vë môt câu trúc bô loc thích nghi có thê dùng dê nhân dang hoác mô
hình hê thông. Cùng môt ngõ vào duoc dua dên hê thông cân nhân dang song
song voi môt bô loc thích nghi. Tín hiêu sai sô e là su khác biêt giua dáp ung d
cua hê thông chua biêt và dáp ung y cua bô loc thích nghi. Tín hiêu sai sô này
duoc hôi tiêp lai bô loc thích nghi và duoc dùng dê câp nhât các hê sô cua bô
Tài liêu thí nghiêm Xu lý sô tín hiêu
38

loc thích nghi cho dên khi y = d. Khi diêu này xay ra, quá trình nhân dang kêt
thúc và e tiên dên 0.


Hình 23. Câu trúc bô loc thích nghi dùng dê nhân dang hê thông
4.2 Bô kêt hop thích nghi tuyên tính (Linear Adaptive Combiner)
Chúng ta së xem xét môt trong nhung câu trúc thích nghi huu ích nhât – bô kêt hop
thích nghi tuyên tính. Hai truong hop xay ra khi su dung bô kêt hop tuyên tính: (1)
nhiêu ngõ vào và (2) môt ngõ vào.
a. Nhiêu ngõ vào

Hình 24. Bô kêt hop tuyên tính nhiêu ngõ vào
Hình trên mô ta truong hop nhiêu ngõ vào. Câu hình bao gôm K tín hiêu vào
dôc lâp, môi ngõ vào duoc nhân voi trong sô w(k) và duoc kêt hop dê tao tín
hiêu ra,
( ) ( ) ( )

=
=
K
k
n k x n k w n y
0
, ,
Ngõ vào có thê duoc biêu diên nhu môt vector (K+1) chiêu,
( ) ( ) ( ) ( ) [ ]
T
n K x n x n x n X , , 1 , 0 =

b. Môt ngõ vào
Trong truong hop 1 ngõ vào, câu trúc trên tro thành môt bô loc FIR (K+1) tap
voi các hê sô diêu chinh duoc. Môi ngõ vào duoc trì hoãn së duoc nhân trong
sô và công lai dê tao ngõ ra,
( ) ( ) ( )

=
− =
K
k
k n x n k w n y
0
,

Tài liêu thí nghiêm Xu lý sô tín hiêu
39


Hình 25. Bô kêt hop tuyên tính thích nghi vói môt ngõ vào
Ngõ vào và các trong sô có thê duoc viêt nhu là các vector,
( ) ( ) ( ) ( ) [ ]
( ) ( ) ( ) ( ) [ ]
T
T
n K w n w n w n W
K n x n x n x n X
, , 1 , 0
1

=
− − =

4.3 Hàm muc tiêu
Trong phân trên chúng ta dã xem xét môt câu trúc cua bô loc mà dác tính có thê thay
dôi báng cách diêu chinh các trong sô. Tuy nhiên, chúng ta vân cân môt su dánh giá
chât luong cua bô loc. Hàm muc tiêu này së dua trên sai sô
( ) ( ) ( ) n y n d n e − =
Bình phuong cua hàm này là:
( ) ( ) ( ) ( ) ( ) n y n y n d n d n e
2 2 2
2 + − =
chính là hàm bình phuong sai sô tuc thoi.
Bây gio, hãy xem xét truong hop bô loc chi có môt trong sô. Ta có y(n) = w(0)x(n) và
bình phuong sai sô tro thành
( ) ( ) ( ) ( ) ( ) ( ) ( ) 0 0 2
2 2 2 2
w n x w n x n d n d n e + − =
Là môt hàm bâc 2 cua w(0). Ky vong cua hàm sai sô bình phuong là:
( ) [ ] ( ) [ ] ( ) ( ) [ ] ( ) ( ) [ ] ( ) 0 0 2
2 2 2 2
w n x E w n x n d E n d E n e E + − =
Nêu tín hiêu d và x là bât biên thông kê theo thoi gian, các ky vong cua tích cua d và x
là háng sô, và ta có thê viêt lai:
( ) [ ] ( ) ( ) 0 0 2
2 2
Cw Bw A n e E + − =
Voi A, B và C là các háng sô.
Dô thi cua hàm này theo w(0) nhu sau:
Tài liêu thí nghiêm Xu lý sô tín hiêu
40


Hình 26. Duòng cong muc tiêu 1 trong sô
Chúng ta cân tìm giá tri cua w(0) dê tôi thiêu giá tri ky vong cua sai sô trung bình bình
phuong. Dê tìm cuc tiêu cua ( ) [ ] n e E
2
, dát dao hàm cua ( ) [ ] n e E
2
theo w(0) báng 0, dân
dên kêt qua là môt diêm cuc tiêu cô dinh:
w(0) = B/C
Trong thuc tê, trong sô së bát dâu o môt giá tri ban dâu nào dó w(0,n) và duoc diêu
chinh theo tung buoc tiên vê giá tri cuc tiêu cua hàm muc tiêu. Chiêu dài và huong cua
buoc là 2 thu cân duoc xác dinh. Môi buoc së bao gôm viêc thêm môt luong táng nho
vào w(0,n). Luu ý ráng nêu giá tri hiên tai cua w(0,n) là o bên phai cua diêm cuc tiêu,
buoc nhay phai âm (nhung dao hàm cua duong cong là duong); tuong tu, nêu giá tri
hiên tai o bên trái cua cuc tiêu, luong táng phai duong (nhung dao hàm là âm). Do dó
chúng ta có:
( ) ( )
[ ]
( ) 0
, 0 1 , 0
2
dw
e dE
n w n w β − = +
Voi þ là môt háng sô duong bât ky. Nhu vë trên hình sau, viêc láp lai công thuc này së
khiên w(0) di chuyên theo tung buoc tu giá tri ban dâu cho dên khi dên diêm cuc tiêu.

Hình 27. Tìm diêm cuc tiêu theo môt trong sô

Kêt qua trên có thê duoc tông quát cho các hê thông có nhiêu hon môt trong sô:
W(n+1) = W(n) - β.grad{E[e
2
]}
Trong dó
( ) ( ) ( ) ( ) [ ]
T
n K w n w n w n W , , 1 , 0 =
Tài liêu thí nghiêm Xu lý sô tín hiêu
41


T
K w
P
w
P
w
P
P grad e E grad







= =
) ( ) 1 ( ) 0 (
} { ]} [ {
2

Chúng ta có thê chung minh ráng:
W(n+1) = W(n) + 2βe(n)X(n)
Luu ý ráng nêu e(n) tiên dên 0 thì W(n+1) = W(n) và trong sô vân không dôi.
5. Chuân bi thí nghiêm
1. Thê nào là môt bô loc thích nghi ? Hãy kê môt sô ung dung cua bô loc thích nghi và
vë câu trúc bô loc thích nghi tuong ung voi tung ung dung dó ?
2. Hãy trình bày giai thuât LMS ?
3. Tóm tát các buoc së làm dê thuc hiên các phân thí nghiêm sau.
6. Tiên hành thí nghiêm
6.1 Bô loc thích nghi dùng dê loc nhiêu hình sine
Trong thí nghiêm này, môt bô loc FIR thích nghi së duoc thuc hiên voi câu trúc trên
hình 27.
Chúng ta có môt tín hiêu sine tân sô 1500Hz bi anh huong boi nhiêu công hình sine tân
sô 312Hz. Chúng ta cân loc nhiêu dê thu tín hiêu mong muôn. Trong thí nghiêm này,
chúng ta su dung bô loc thích nghi cho muc dích dó. Môt trong các ngõ vào cua bô loc
thích nghi là tín hiêu có công nhiêu. Ngõ vào còn lai là tín hiêu tham khao dang cosine,
tân sô 312Hz và tuong quan voi tín hiêu nhiêu hình sine o trên.
Tín hiêu tham khao này së duoc loc boi bô loc FIR thích nghi 30 hê sô. Tín hiêu ra cua
bô loc là uoc luong cua tín hiêu nhiêu sine tân sô 312Hz, së duoc tru khoi tín hiêu có
lân nhiêu.

Hình 28. So dô thí nghiêm
Trong thí nghiêm này, tât ca các tín hiêu duoc tao ra tu bang. Bang này duoc tao báng
MATLAB. Chuong trình MATLAB sau duoc su dung dê tao các giá tri du liêu cho tín
hiêu sine(1500Hz), sine(1500Hz) + sine(312Hz) và cosine(312Hz).
%Adaptnoise.M Generates: dplusn.h (s312+s1500), refnoise.h
cos(312),and sin1500.h

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)
Tài liêu thí nghiêm Xu lý sô tín hiêu
42

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);

Chuong trình này së tao 3 tâp tin (trong thu muc làm viêc hiên hành cua MATLAB):
• dplusn.h: chua môt bang 128 – diêm dê tao tín hiêu sine tân sô 1500Hz công voi
nhiêu sine tân sô 312Hz.
• refnoise.h: chua môt bang 128 – diêm dê tao tín hiêu cosine tham khao có tân sô
312Hz.
• sin1500.h: chua môt bang 128 – diêm dê tao tín hiêu sine mong muôn có tân sô
1500Hz
Các tap tin này dã duoc tao sán trong thu muc chua project.

Sau dây, hãy tiên hành thí nghiêm theo các buoc sau dây:
1. Mo Code Composer Studio. Trong CCS, hãy mo project AdaptNoise (trong thu
muc C:\CCStudio_v3.1\myprojects\AdaptNoise)
2. Mo tâp tin nguôn chính adaptnoise.c và xem xét giai thuât LMS duoc hiên thuc nhu
thê nào trong chuong trình.
3. Hãy thiêt lâp các tùy chon cân thiêt và biên dich chuong trình. Sau khi quá trình
biên dich thành công, hãy nap chuong trình lên kit DSP.
4. Quan sát ngõ ra cua kit DSP (ngõ Line Out) voi chuong trình DSP Tool.
5. Trong CCS, hãy chay chuong trình. Chon File Load GEL dê nap tâp tin
out_type.gel. Sau dó chon GEL Output signal Output. Môt cua sô moi xuât
hiên voi thanh truot o trên dó. Khi thanh truot này o vi trí sô 1, ngõ ra là tín hiêu sai
lêch. Khi thanh truot o vi trí sô 2, ngõ ra là tín hiêu sine mong muôn (tân sô
Tài liêu thí nghiêm Xu lý sô tín hiêu
43

1500Hz) công voi nhiêu (tân sô 312Hz). Bây gio, hãy quan sát dang sóng ngõ ra voi
thanh truot lân luot o vi trí 1 và vi trí 2. Phác hoa dang sóng tuong ung.

Qua phân trên, các ban dã thuc hiên xong môt bô loc FIR thích nghi dê ung dung triêt
nhiêu. Hãy vân dung kiên thuc vua hoc dê làm bài tâp nho sau:

Bài tâp
Chúng ta có môt tín hiêu cosine tân sô 2000 Hz bi xâm lân boi môt nhiêu cung hình
cosine voi tân sô 125 Hz. Gia su dê loai nhiêu, chúng ta së dùng môt bô loc thích nghi.
Hãy su dung tín hiêu sine có tân sô 125 Hz (tuong quan voi nhiêu) dê làm tín hiêu tham
khao.
1. Hãy sua chuong trình MATLAB AdaptNoise.m dê tao các tín hiêu tuong ung.
2. Hãy mo CCS, biên dich và chay lai chuong trình dê kiêm chung kêt qua.
6.2 Su dung bô loc FIR thích nghi dê nhân dang môt bô loc FIR cô dinh chua biêt
Trong thí nghiêm này, gia su chúng ta có môt hê thông chua biêt cân duoc nhân dang.
Chúng ta su dung phuong pháp loc thích nghi cho viêc nhân dang. Diêu này có nghia là
chúng ta cân phai huân luyên môt bô loc thích nghi sao cho khi có cùng tín hiêu dâu
vào di qua thì bô loc thích nghi này së cho tín hiêu dâu ra giông nhu dâu ra cua hê
thông cân nhân dang.
Trong thí nghiêm này, chúng ta su dung môt bô loc FIR cô dinh nhu là hê thông cân
nhân dang. Chúng ta së kiêm chung ráng bô loc thích nghi có thê duoc huân luyên dê
mô hình cho hê thông chua biêt này.
Hê thông cân nhân dang o dây duoc chon là môt bô loc FIR thông dai có 55 hê sô, tân
sô trung tâm là 2KHz. Các hê sô cua bô loc này duoc chua trong tâp tin bp55.cof.
Môt chuôi nhiêu ngâu nhiên duoc tao ra trong chuong trình và tro thành ngõ vào dông
thoi cua bô loc chua biêt và bô loc FIR thích nghi. Tín hiêu này duoc xem nhu tín hiêu
huân luyên. Quá trình thích nghi së diên ra cho dên khi tín hiêu sai sô duoc cuc tiêu
hóa. Tín hiêu sai sô hôi tiêp này là su khác biêt giua ngõ ra cua bô loc chua biêt và ngõ
ra cua bô loc FIR thích nghi.
Bây gio, hãy mo nguôn cua kit và mo Code Composer Studio và thuc hiên theo các
buoc sau:
1. Mo project AdaptIDFIR (o C:\CCStudio_v3.1\MyProjects\AdaptIDFIR)
2. Trong CCS, chon File Load GEL và mo tâp tin AdaptIDFIR.gel. Sau dó, trong
menu GEL, chon OutputType Output-signal. Môt hôp thoai có thanh truot xuât
hiên. Khi thanh truot o vi trí 1, tín hiêu ra là dâu ra cua bô loc thích nghi. Khi nó o
vi trí 2, tín hiêu ra là ngõ ra cua bô loc cô dinh chua biêt.
3. Hiên thi dang sóng ra (báng cách dùng DSP_Tool.exe). Hãy so sánh dâu ra cua hê
thông thích nghi voi dâu ra cua hê thông chua biêt. Bô loc thích nghi có mô hình
hóa thành công bô loc FIR chua biêt hay không?

Bài tâp
1. Hãy sua chuong trình chính (tâp tin AdaptIDFIR.c) dê include tâp tin hê sô
bs55.cof, biêu diên môt bô loc FIR chán dai 55 hê sô voi tân sô trung tâm 2 KHz.
Bô loc FIR chán dai này duoc xem nhu hê thông chua biêt cân nhân dang. Hãy biên
dich và kiêm tra kêt qua.
Tài liêu thí nghiêm Xu lý sô tín hiêu
44

2. Hãy su chuong trình chính (tâp tin AdaptIDFIR.c) dê include tâp tin hê sô lp55.cof,
biêu diên môt bô loc FIR thông thâp voi 55 hê sô. Bô loc FIR này biêu diên cho hê
thông chua biêt cân nhân dang. Hãy biên dich và kiêm tra kêt qua.
6.3 Su dung bô loc FIR thích nghi dê nhân dang hê thông chua biêt, biêt ban dâu bô
loc thích nghi duoc khoi tao là môt bô loc FIR thông dai.
Trong thí nghiêm truoc, các giá tri ban dâu cua các hê sô cua bô loc FIR thích nghi
duoc khoi tao báng zero. Trong thí nghiêm này, ban dâu, các hê sô cua bô loc FIR thích
nghi duoc khoi tao báng voi các hê sô cua môt bô loc FIR thông dai có 55 hê sô, tân sô
trung tâm là 3KHz, chua trong tâp tin bp3000.cof.
Bô loc cân nhân dang o dây cung là môt bô loc FIR thông dai 55 hê sô nhung voi tân sô
trung tâm là 2KHz. Chúng ta së thây bô loc thích nghi së thay dôi dân tu môt bô loc
thông dai tân sô trung tâm 3KHz thành môt bô loc thông dai tân sô trung tâm 2KHz.
Bây gio, hãy mo nguôn cua kit DSP. Sau dó chay Code Composer Studio và thuc hiên
theo các buoc sau dây:
1. Mo project AdaptIDFIRW (trong C:\CCStudio_v3.1\MyProjects\AdaptIDFIRW).
2. Hãy biên dich project và chay chuong trình trên kit DSP.
3. Trong CCS, chon File Load GEL và mo tâp tin AdaptIDFIR.gel. Sau dó, chon
GELOutput Type Output-signal trên thanh menu. Môt hôp thoai có thanh truot
xuât hiên. Khi thanh truot o vi trí 1, tín hiêu ngõ ra là dâu ra cua bô loc thích nghi.
Khi nó o vi trí 2, tín hiêu ngõ ra là dâu ra cua bô loc chua biêt.
4. Hãy quan sát dang sóng dâu ra cua bô loc thích nghi và bô loc FIR cân nhân dang.
5. Nêu nhu xem tín hiêu nhiêu ngâu nhiên ngõ vào gân nhu là nhiêu tráng thì ta có phô
cua tín hiêu ngõ ra së có dang cua dáp ung tân sô cua bô loc. Do dó, ta có thê quan
sát dáp ung tân sô cua bô loc thích nghi thay dôi dân dê thích nghi voi bô loc chua
biêt báng cách quan sát phô biên dô cua tín hiêu ngõ ra (cua bô loc thích nghi). Hãy
thuc hiên viêc quan sát này trên DSP_Tool và luu 5 hình dê cho thây quá trình thích
nghi cua bô loc. Luu ý: chon File Reload program dê chay lai tu dau quá trình
thích nghi cua bo loc.
Bài tâp
Hãy sua chuong trình chính (tâp tin AdaptIDFIR.c) dê include tâp tin hê sô lp55.cof,
biêu diên môt bô loc FIR thông thâp có 55 hê sô. Bô loc FIR này duoc xem nhu hê
thông cân nhân dang. Hãy biên dich chuong trình và kiêm chung kêt qua dat duoc. Hãy
luu lai môt vài hình vë dáp ung tân sô cua bô loc thích nghi (trong quá trình thích nghi).
Tài liêu thí nghiêm Xu lý sô tín hiêu
45

BÀI 6: THUC HIEN MOT SÓ MACH DIEU CHE SÓ TRÊN
KIT C6713 DSK
1. Muc dích thí nghiêm
1. Khao sát môt sô kÿ thuât diêu chê sô.
2. Thuc hiên môt sô mach diêu chê sô trên kit C6713.
2. Thiêt bi thí nghiêm
STT Tên thiêt bi Sô luong
01 Máy vi tính 01
02 Kit C6713 DSK 01
03 Máy phát song 01
04 Bô dây nôi tín hiêu 01
3. Giói thiêu
Diêu chê là quá trình làm biên dôi môt tín hiêu sóng mang nhám su dung tín hiêu này dê
mang thông tin cân truyên di. Thông thuong, môt dang sóng hình sine cao tân duoc su
dung làm sóng mang. Ba thông sô cua môt sóng sine là biên dô, pha và tân sô dêu có thê
làm cho biên dôi theo tín hiêu thông tin dê tao ra tín hiêu diêu chê.
Thiêt bi dê thuc hiên diêu chê duoc goi là bô diêu chê (modulator) và thiêt bi thuc hiên
quá trình nguoc lai goi là bô giai diêu chê (demodulator). Thiêt bi có thê thuc hiên ca hai
quá trình goi là modem.
Muc dích cua diêu chê so là dê truyên môt chuôi bit trên môt kênh truyên tuong tu
bandpass, ví du nhu trên duong dây diên thoai (các bô loc gioi han dai tân sô tu 300
3400 Hz) hoác trên môt dai tân sô radio. Trong khi dó, muc dích cua diêu chê tuong tu là
truyên môt tín hiêu tuong tu tân sô thâp, ví du nhu tín hiêu âm tân, trên môt kênh truyên
tuong tu bandpass.
Muc dích cua các phuong pháp diêu chê so dai nên (baseband), còn goi là mã hóa duong
truyên, là truyên môt chuôi bit trên môt kênh truyên thông thâp (lowpass) thuong là môt
cáp dây dông không bi loc nhu là môt bus nôi tiêp hoác là mang LAN có dây.
Muc dích cua các phuong pháp diêu chê xung là dê truyên môt tín hiêu tuong tu báng hep
(narrowband) ví du nhu môt cuôc goi diên thoai trên môt kênh truyên thông thâp báng
rông (wideband lownpass channel) hoác, trong môt sô truong hop, nhu là môt chuôi bit
trên môt hê thông truyên thông sô khác.
4. Co so lý thuyêt
4.1 Các kÿ thuât diêu chê tuong tu
Trong diêu chê tuong tu, quá trình diêu chê duoc áp dung liên tuc theo tín hiêu thông
tin tuong tu.
Các kÿ thuât diêu chê tuong tu thông dung gôm:
• Diêu chê biên dô:
o Double - sideband modulation (DSB)
Tài liêu thí nghiêm Xu lý sô tín hiêu
46

AM modulation
Double – sideband suppressed-carrier (DSB – SC)
o Single – sideband modulation (SSB)
o Vestigial sideband modulation (VSB)
o Quadratude amplitude modulation (QAM)
• Diêu chê góc:
o Frequency modulation (FM)
o Phase modulation (PM)
4.2 Các kÿ thuât diêu chê sô
Trong diêu chê sô, môt sóng mang tuong tu duoc diêu chê boi môt chuôi bit cua tín
hiêu thông tin. Su thay dôi cua tín hiêu sóng mang duoc chon tu môt sô huu han các ký
hiêu (symbol).
• Trong PSK, môt tâp hop huu han các pha duoc su dung.
• Trong FSK, môt tâp hop huu han các tân sô duoc su dung.
• Trong ASK, môt tâp hop huu han các biên dô duoc su dung.
• Trong QAM, môt tín hiêu cùng pha (tín hiêu I, ví du dang sóng cosine) và môt
tín hiêu vuông pha (tín hiêu Q, ví du dang sóng sine) duoc diêu biên voi môt sô
luong huu han các muc biên dô (ASK). Tín hiêu thu duoc là kêt hop cua PSK
và ASK.
Môi giá tri pha, biên dô hoác tân sô duoc gán môt chuôi bit nhi phân duy nhât.
Thông thuong, môi pha, biên dô hoác tân sô mã hóa môt sô luong bit báng
nhau. Sô bit này tao thành môt ký hiêu (symbol) duoc biêu diên boi môt pha cu
thê.
Nêu bô ký hiêu (symbol) gôm M = 2
N
symbol khác nhau, môi ký hiêu biêu diên
môt thông diêp gôm N bit. Nêu tôc dô ký hiêu (hay tôc dô baud) là f
s
symbols/s
(hoác baud), tôc dô du liêu là N×f
s
bps.
Trong truong hop PSK, ASK và QAM, bô ký hiêu diêu chê thuong duoc biêu
diên trên môt gian dô dang chòm sao (constellation diagram), biêu diên biên dô
cua tín hiêu I trên truc X và biên dô cua tín hiêu Q trên truc Y.
Các kÿ thuât diêu chê sô co ban nhât bao gôm:
• Phase – shift keying (PSK)
• Frequency – shift keying (FSK)
• Amplitude – shift keying (ASK) và dang thuong gáp cua nó là On – off keying
(OOK)
• Quadratude Amplitude Modulation (QAM): môt kêt hop cua PSK và ASK.
• Polar modulation: giông QAM, là kêt hop cua PSK và ASK.
• Continuous phase modulation (CPM)
o Minimum shift keying (MSK)
o Gaussian minimum – shift keying (GMSK)
• Orthogonal frequency division multiplexing (OFDM) modulation
• Wavelet modulation
• Trellis coded modulation (TCM) hay còn goi là trellis modulation
MSK và GMSK là các truong hop dác biêt cua diêu chê pha liên tuc (CPM). OFDM
dua trên ý tuong cua FDM nhung su dung môt dang diêu chê sô. Chuôi bit duoc chia
Tài liêu thí nghiêm Xu lý sô tín hiêu
47

thành nhiêu chuôi du liêu song song, môi chuôi duoc truyên trên môt sub-carrier su
dung các kÿ thuât diêu chê sô thông thuong. Các sub-carrier duoc tông hop thành môt
ký hiêu OFDM. OFDM duoc xem nhu môt kÿ thuât diêu chê do nó truyên môt chuôi
bit trên môt kênh truyên su dung môt chuôi các ký hiêu OFDM. OFDM có thê duoc mo
rông thành môt phuong pháp da truy câp trong OFDMA, cho phép nhiêu nguoi dùng
chia se cùng môt kênh truyên vât lý báng cách gán môi nguoi dùng môt sub-carrier
khác nhau.
4.3 Diêu chê sô dai nên (Digital baseband modulation)
Thuât ngu diêu chê sô dai nên dông nghia voi mã hóa duong truyên (line coding), là tâp
hop các phuong pháp dê truyên môt chuôi bit trên môt kênh truyên tuong tu thông
thâp, su dung môt sô roi rac các muc tín hiêu, báng cách diêu chê môt chuôi xung (môt
sóng vuông). Các ví du thuong gáp là unipolar, non-return-to-zero (NRZ), Manchester
và AMI (alternate mark inversion).
4.4 Các phuong pháp diêu chê xung
Các phuong pháp diêu chê xung nhám truyên môt tín hiêu tuong tu báng hep trên môt
kênh truyên thông thâp nhu môt tín hiêu duoc luong tu hai muc, báng cách diêu chê
môt chuôi xung. Môt vài dang diêu chê xung cung cho phép tín hiêu tuong tu báng hep
duoc truyên nhu môt tín hiêu sô voi môt tôc dô bit cô dinh, có thê duoc truyên trên môt
hê thông thông tin sô bên duoi, ví du nhu môt vài line code. Chúng không phai là
cácdang diêu chê theo nghia thông thuong do chúng không phai là các phuong pháp mã
hóa kênh (channel coding) mà nên duoc xem nhu là mã hóa nguôn (source coding) và
trong môt vài truong hop duoc xem nhu các kÿ thuât biên dôi A/D.
Các phuong pháp này bao gôm:
• Pulse code modulation (PCM): diêu chê xung mã
• Pulse – width modulation (PWM): diêu chê dô rông xung
• Pulse – amplitude modulation (PAM): diêu chê biên dô xung
• Pulse – position modulation (PPM): diêu chê vi trí xung
• Pulse – density modulation (PDM): diêu chê mât dô xung
• Sigma – delta modulation (DM)
• Adaptive delta modulation (ADM)
Trai phô truc tiêp (DSSS – direct-sequence spread spectrum) dua trên diêu chê PAM.

Trong bài thí nghiêm này, hai phuong pháp diêu chê se duoc thuc hiên là diêu chê biên do
xung (PAM) và diêu chê pha (PSK).
4.5 Diêu chê biên dô xung (PAM)
Diêu chê biên dô xung (PAM) là môt dang diêu chê tín hiêu trong dó thông tin duoc mã
hóa trong biên dô cua môt chuôi xung. Ví du: môt bô diêu chê 2 bit (PAM – 4) së lây 2
bit môt và ánh xa biên dô tín hiêu thành môt trong bôn muc, ví du nhu -3V, -1V, 1V và
3V.
Giai diêu chê duoc thuc hiên báng cách doc muc biên dô cua sóng mang tai môi chu ky
ký hiêu.
Hiên nay, PAM ít duoc su dung và hâu nhu duoc thay thê boi PCM và PPM. Tât ca các
modem diên thoai nhanh hon 300 bps su dung kÿ thuât QAM.
Tài liêu thí nghiêm Xu lý sô tín hiêu
48

Tuy nhiên, chuân giao tiêp Ethernet vân su dung PAM. Ví du, 100BASE-T2 Ethernet
(o tôc dô 100Mb/s) su dung diêu chê PAM 5 muc chay o tôc dô 25 megapulses/s trên 2
cáp dây dân. Môt kÿ thuât dác biêt duoc su dung dê giam nhiêu liên ký tu giua các cáp
không dây. Sau dó, 1000BASE-T nâng lên su dung 4 cáp dây dân o tôc dô 125
megapulses/s dê dat tôc dô du liêu 1000 Mb/s, vân su dung PAM 5 muc cho môi cáp
dây.
Duoi dây là so dô khôi cua môt hê thông PAM don gian (bo qua bô cân báng thích nghi
và bô phuc hôi xung clock).

Hình 29. Hê thông PAM
Chuôi bit vào duoc xu lý thành các tu dài J bits. J bits này duoc ánh xa thành môt trong
2
J
muc. Ví du, khi J = 3 thì së có 8 muc. Các muc này các dêu nhau trên gian dô
constellation và dôi xung quanh muc zero nhu trên hình sau:

Hình 30. Gian dô constellation cua PAM 8 múc
Tám diêm trên gian dô này biêu diên cho 8 muc voi môi muc duoc biêu diên báng môt
chuôi 3 bits.
4.6 Diêu chê dich pha (PSK)
PSK là môt phuong pháp truyên nhân tín hiêu sô trong dó pha cua tín hiêu truyên di
duoc thay dôi dê mang thông tin. Môt vài phuong pháp có thê su dung dê thuc hiên
PSK, don gian nhât là PSK nhi phân (BPSK) chi su dung hai pha cua tín hiêu: 0° và
180°. Các dang phuc tap hon cua PSK su dung 4 hoác 8 pha, cho phép du liêu nhi phân
truyên o tôc dô nhanh hon. Trong diêu chê 4 pha, các pha su dung có thê là 0°, +90°, -
90° và 180°; môi su dich pha có thê biêu diên 2 bits/symbol. Trong diêu chê 8 pha, các
góc pha có thê dùng là 0°, +45°, -45°, +90°, -90°, +135°, -135° và 180° và môi lân dich
pha biêu diên 8 bits/symbol.
Tài liêu thí nghiêm Xu lý sô tín hiêu
49

4.6.1 Ðiêu chê pha nhi phân (BPSK)
Môt kênh du liêu diêu chê sóng mang. Môt su chuyên bit, tu 1 sang 0 hay tu 0 sang 1,
tao ra môt su dich pha 180° (dao pha) cua sóng mang. Do dó, sóng mang duoc diêu
chê boi du liêu.
Giai diêu chê BPSK su dung các buoc sau:
- Môt bô bình phuong tao ra môt thành phân DC và môt thành phân o tân sô 2f
c

- Môt bô loc thông dai dê tách thành phân tân sô 2f
c

- Môt bô chia tân sô, ngõ ra cua nó duoc nhân voi ngõ vào. Kêt qua duoc loc thông
thâp dê thu duoc tín hiêu PCM.
4.6.2 Quadratude Phase Shift Keying (QPSK)
QPSK là môt dang diêu chê trong dó pha duoc diêu chê trong khi tân sô và biên dô
duoc giu cô dinh. Có 4 pha, môi pha cách nhau 90°. Các pha này thuong duoc goi là
các trang thái (state) và duoc biêu diên boi môt cáp bit. Môi cáp bit duoc biêu diên
boi môt dang sóng cu thê, goi là môt ký hiêu (symbol), së duoc gui qua kênh truyên
sau khi diêu chê sóng mang. Bô thu giai diêu chê tín hiêu và nhìn o ký hiêu khôi phuc
duoc dê xác dinh cáp bit nào dã duoc gui di. Diêu này dòi hoi môt ký hiêu duy nhât
cho môi su kêt hop cua các bit du liêu trong môt cáp. Do có tât ca 4 kha náng xay ra
khi kêt hop các bit du liêu trong môt cáp (00, 01, 10, 11), QPSK tao ra 4 ký hiêu khác
nhau, môi ký hiêu cho môi cáp, báng cách thay dôi môt thành phân dông pha (I) và
thành phân vuông pha (Q).
Hê thông truyên QPSK su dung ca sóng sine và cosine làm sóng mang dê truyên 2 tín
hiêu thông diêp, sI[n] và sQ[n], duoc goi là tín hiêu in-phase và quadratude. Ca hai
tín hiêu này dêu duoc khôi phuc o phía thu, cho pháp truyên du liêu voi luong thông
tin gâp dôi o cùng tân sô sóng mang.
5. Chuân bi thí nghiêm
1. Hãy vë hình minh hoa quá trình diêu chê PAM môt tín hiêu hình sine và giai thích?
Hãy tìm môt sô ung dung cua diêu chê PAM.
2. Hãy vë gian dô constellation ung voi diêu chê PAM 16 muc, QAM, BPSK và QPSK
3. Phân biêt (ngán gon) các phuong pháp diêu chê xung: PAM, PCM, PPM, PWM
4. Tóm tát các buoc së làm dê thuc hiên các phân thí nghiêm sau.
6. Tiên hành thí nghiêm
6.1 Thuc hiên mach diêu chê PAM trên kit C6713 DSK
Trong thí nghiêm này, mach diêu chê PAM 4 muc, 8 muc và 16 muc së duoc lân luot
thuc hiên trên kit DSP. Trong dó, mach diêu chê 4 muc dã duoc thuc hiên sán trong
môt project dê giúp hiêu rõ vê giai thuât thuc hiên. Sau dó, sinh viên së tu thuc hiên
mach diêu chê PAM 8 muc và 16 muc.

Giai thuât diêu chê
Môi mâu vào dê diêu chê gôm 16 bits. Tùy vào loai diêu chê PAM, môt mát na (mask)
thích hop duoc su dung.
Hãy xem xét truong hop PAM 16 muc (16-PAM). Trong truong hop này, dê biêu diên
16 muc cân 4 bits, do dó môi ký hiêu së có chiêu dài 4 bits. Dê dat duoc tôc dô ký hiêu
Tài liêu thí nghiêm Xu lý sô tín hiêu
50

mong muôn, mâu vào duoc chia làm các doan dài 4 bits. Nhu vây, môi mâu vào së gôm
4 doan. Viêc xu lý mâu vào bao gôm viêc áp dung mát na và dich. Khôi ký hiêu dâu
tiên nhân duoc báng cách dùng mâu vào AND voi mát na 0x000F dê lây 4 bit LSB
(0x000F là biêu diên trong hê thâp luc phân cua 00000000 00001111, khi AND môt
mâu voi mát na này, chi 4 bit cuôi cua mâu duoc giu lai, tao thành 1 ký hiêu). Khôi ký
hiêu thu ha nhân duoc báng cách dich mâu ban dâu sang phai 4 bit và áp dung lai mát
na. Các buoc này duoc láp lai cho dên khi hêt chiêu dài cua mâu vào và tao ra 4 ký
hiêu.
Do môi ký hiêu có chiêu dài 4 bit nên së có tât ca 16 ký hiêu. 16 ký hiêu này duoc ánh
xa thành 16 muc diên áp cách dêu nhau dua theo môt bang tra nhu sau:

Bang 1. Bang tra PAM 16 múc
Khôi ký hiêu Múc diên áp (biêu diên dang sô Hex)
0000 0x7FFF
0001 0x6EEE
0010 0x5DDD
0011 0x4CCC
0100 0x3BBB
0101 0x2AAA
0110 0x1999
0111 0x0888
1000 - 0x0889
1001 - 0x199A
1010 - 0x2AAB
1011 - 0x3BBC
1100 - 0x4CCD
1101 - 0x5DDE
1110 - 0x6EEF
1111 - 0x8000

Ví du, mâu vào là 0xA52E (10100101 00101110). Khi dó, 1110 (sau khi loc mát na lây
4 bit LSB) duoc ánh xa thành muc -0x6EEF. Môi ký hiêu gôm 4 bit duoc ánh xa lên 16
muc cách dêu nhau tu -0x8000 dên 0x7FFF. Khoang cách giua các muc duoc chon là
0x111 dê có khoang cách dêu nhau.
Muc diên áp duoc chon sau dó së duoc truyên di nhu môt sóng vuông. Chu ky cua sóng
vuông dat duoc báng cách xuât cùng môt muc diên áp dó nhiêu lân (ví du 12 lân) dê có
thê dat duoc 1 dang sóng vuông tôt o ngõ phát (sau khi qua bô D/A).
Cùng môt cách thuc hiên cua bô phát duoc áp dung cho PAM 4 muc (4-PAM) và 8
muc (8-PAM) voi su khác nhau vê mát na, dich và bang tra. Dôi voi 8-PAM, bit có
trong sô thâp nhât (LSB) cua mâu vào duoc loai bo dê sô bit còn lai (15) là môt bôi sô
Tài liêu thí nghiêm Xu lý sô tín hiêu
51

cua 3. Diêu này gây tác dông không dáng kê lên dang sóng diêu chê và dang sóng khôi
phuc lai.
Các bang tra dôi voi bô diêu chê 4 – PAM và 8 – PAM lân luot nhu sau:
Bang 2. Bang tra PAM 4 múc
Khôi ký hiêu Múc diên áp (dang Hex)
00 0x7FFF
01 0x2AAA
10 - 0x2AAB
11 - 0x8000

Bang 3. Bang tra PAM 8 múc
Khôi ký hiêu Múc diên áp (dang sô Hex)
000 0x7FFF
001 0x5B6D
010 0x36DB
011 0x1249
100 - 0x1249
101 - 0x36DB
110 - 0x5B6D
111 - 0x7FFF

Chuong trình thuc hiên
Hãy thuc hiên theo các buoc sau:
1. Câp nguôn diên cho kit và chay chuong trình Code Compose Studio trên máy
tính.
2. Mo project PAM4 o folder C:\CCStudio_v3.1\MyProjects\PAM4\.
3. Trong cua sô File View, double click lên tâp tin PAM4.c dê mo nó ra. Dây là tâp
tin chua mã nguôn chính cua chuong trình. Nôi dung cua tâp tin này nhu 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};

Tài liêu thí nghiêm Xu lý sô tín hiêu
52

int out_buffer[256];
int i=0;

interrupt void c_int11() //interrupt service routine
{
int sample_data;

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 chuong trình này, hàm main( ) dát giá tri biên i_PAM = 0 và khoi dông kit.
Sau dó së thuc hiên môt vòng láp vô tân voi lênh while (1).
Khi có tín hiêu xung lây mâu (tân sô 8KHz), ngát 11 xay ra và trình phuc vu ngát
c_int11( ) duoc goi. Trong trình phuc vu ngát này, du liêu vào duoc doc vào biên
sample_data (báng lênh sample_data = input_sample( )). Mâu du liêu này biêu
diên o dang sô nguyên 16 bit có dâu.
Do o dây thuc hiên diêu chê PAM 4 muc, mà dê biêu diên duoc 4 muc thì cân 2
bit. Do dó, mâu du liêu vào së duoc chia ra làm 8 ký hiêu (symbol), môi ký hiêu 2
bit. Dê thuc hiên viêc chia này, mâu du liêu duoc AND voi mát na 00000000
00000011 (tuc là 0x0003) dê lây 2 bit LSB cua mâu du liêu. 2 bit này duoc ánh xa
thành 1 trong 4 muc diên áp báng cách su dung bang data_4PAM. Bang này có 4
Tài liêu thí nghiêm Xu lý sô tín hiêu
53

giá tri ung voi 4 muc diên áp (0x7FFF, 0x2AAA, -0x2AAB, -0x8000) duoc khai
báo o dâu chuong trình. Môi symbol së cho ra 1 muc diên áp. Dê cho dang sóng
xuât ra sau khi qua bô A/D có dang sóng vuông, môi muc së duoc xuât ra 12 lân
truoc khi chuyên sang muc ung voi symbol kê tiêp. Biên dêm j_PAM dê dêm sô
lân xuât ra cho du 12 lân. Nhu vây, ung voi môi mâu vào 16 bit, ta có 8 symbol.
Môi symbol së xuât ra 12 lân, nhu vây sô lân xuât ra ung voi môi mâu là 8 x 12 =
96 duoc thê hiên boi biên dêm i_PAM.
Ví du: Mâu vào có giá tri 0x001B (tuc là 00000000 00011011). Mâu này dâu tiên
duoc chua vào biên sample_data.
- Dâu tiên: sample_data = 00000000 00011011
+ Sample_data AND 0x0003 = 00000000 00000011 (= 3).
+ data_4PAM(3) = - 0x8000 muc diên áp – 0x8000 duoc xuât ra 12 lân
- Tiêp theo: sample_data dich phai 2 bit 00000000 00000110
+ Sample_data AND 0x0003 = 00000000 00000010 ( = 2)
+ data_4PAM(2) = - 0x2AAB muc diên áp -0x2AAB duoc xuât ra 12 lân
- Quá trình tiêp tuc cho dên khi hêt 16 bit cua mâu vào, tuc là dich 8 lân, môi
lân xuât 12 lân sô lân xuât tông công i_PAM = 8 x 12 = 96 lân. Sau dó së
doc vào mâu kê tiêp và thuc hiên diêu chê.
O dây, môt bô dêm nôi out_buffer có kích thuoc 256 mâu duoc dùng dê luu lai
giá tri xuât ra nhám phuc vu cho viêc vë tín hiêu xuât ra báng công cu Plot trong
CCS (xem phân huong dân vë dô thi trên CCS).
4. Chon Project Rebuild All dê biên dich chuong trình.
5. Sau khi biên dich thành công, nap chuong trình lên kit (File Load Program) và
chay thu chuong trình.
6. Mo máy phát sóng lên và quan sát dang sóng xuât ra. O dây hãy quan sát theo 2
cách: (1) su dung Code Compose Studio dê vë các giá tri cua bô dêm nôi
out_buffer. (2) quan sát tín hiêu xuât ra o ngõ ra Line Out cua kit báng
Oscilloscope.
7. Do o dây su dung máy phát sóng, dang sóng thay dôi liên tuc nên kêt qua ra khó
kiêm chung. Hãy sua câu lênh sample_data = input_sample( ) thành
sample_data = 0x???? (môt giá tri bât ky 16 bit dang sô hex) rôi biên dich, nap
và chay lai chuong trình.Vë lai dang sóng xuât ra trong CCS. Lúc này, mâu vào là
giá tri cô dinh do nhâp vào và dang sóng xuât ra së dê dàng kiêm chung hon.
Hãy thu môt vài giá tri nhâp vào và vë dang sóng xuât ra.
Bài tâp
Hãy chép toàn bo Folder PAM4 sang mot Folder moi và dàt tên tùy ý. Thuc hiên các
bài tap sau trên folder moi dê không làm anh huong dên phan dã làm.
1. Chinh sua lai chuong trình trên dê thuc hiên diêu chê PAM 8 muc.
Goi ý:
- Moi symbol gom 3bits. Do mau vào có 16 bits, can bo 1 bits LSB (báng cách
dich phai sample_data 1 bit) dê còn lai 15 bits là boi so cua 3 và moi mau se
tao ra 5 symbols.
- Màt na dê lay 3 bit LSB là 00000000 00000111 (0x0007)
- Su dung bang tra ung voi 8-PAM dê khai báo các muc áp ra tuong ung
2. Tuong tu, hãy thuc hiên mach diêu chê PAM 16 muc trên kit
Tài liêu thí nghiêm Xu lý sô tín hiêu
54


Trong phan báo cáo, chi can dê phan mã nguon ung voi giai thuat diêu chê. Giai thích
và ve mot vài dang sóng diêu chê thu duoc dê kiêm chung.
6.2 Thuc hiên mach diêu chê PSK trên kit C6713
Trong bài thí nghiêm này, hai bô diêu chê PSK së duoc thuc hiên là PSK nhi phân và
QPSK.

Giai thuât diêu chê
Môi mâu vào duoc thu và luu vào trong môt vi trí nho, chua 16 bits. Tùy theo kiêu diêu
chê PSK (2 pha hay 4 pha), môt mát na thích hop duoc su dung. Dôi voi BPSK, môi
giá tri mâu vào duoc chia ra làm 16 thành phân, môi thành phân 1 bit; dôi voi QPSK,
mâu vào duoc chia thành 8 dibits (môi dibit gôm 2 bits). Viêc này dat duoc báng cách
áp mát na tuong ung 0x0001 và 0x0003 lên mâu vào. Sau dó, mâu së duoc dich phai 1
bit ( BPSK) hoác 2 bit (QPSK) và láp lai cho dên khi hêt chiêu dài mâu vào.
Sau khi cát mâu vào thành các doan nhu trên, các giá tri së duoc gán cho các dang sóng
hình sine voi pha tuong ung. Trong BPSK, chi có 2 pha là 0° và 180° ung voi bit 0 và
bit 1. Tuy nhiên, voi QPSK, chúng ta cân 4 pha (0°, 90°, 180° và 270°) ung voi 00, 01,
11 và 10. Viêc ánh xa duoc thuc hiên theo mã Gray (Gray code) nhám làm cuc tiêu lôi
do nhiêu trong quá trình truyên báng cách cuc dai khoang cách giua các ký hiêu trên
gian dô constellation.
Môi mâu vào duoc biêu diên báng 16 bits. Môi mâu së gôm 16 doan (voi BPSK) và 8
doan (voi QPSK). Do môi ký hiêu duoc truyên boi môt hình sine tao theo phuong pháp
sô báng 4 diêm, cu môi 64 mâu ra (voi BPSK) hoác 32 mâu ra (voi QPSK), môt mâu
vào duoc lây vào.

Chuong trình thuc hiên
Hãy thuc hiên theo các buoc sau:
1. Câp nguôn diên cho kit và chay chuong trình Code Compose Studio trên máy
tính.
2. Mo project BPSK o folder C:\CCStudio_v3.1\MyProjects\BPSK\.
3. Trong cua sô File View, double click chuôt lên tâp tin BPSK.c dê mo ra. Dây là
tâp tin chua mã nguôn chuong trình. Nôi dung chuong trình này nhu 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
Tài liêu thí nghiêm Xu lý sô tín hiêu
55

0, -1000, 0, 1000}; //180 degree

interrupt void c_int11() //interrupt service routine
{
int sample_data;

if (i_BPSK==64) //determines when to get new input
{
sample_data = input_sample(); //inputs data
i_BPSK=0;
j_BPSK=0;
}

masked_value = sample_data & 0x0001;
output = data_BPSK[masked_value][j_BPSK];
output_sample(output*10);
out_buffer[i++] = output*10;
if (i==256)
i = 0;
j_BPSK++; //repeated output counter

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ë dát 2 biên dêm i_BPSK = 64 và j_BPSK = 0, khoi dông kit và bô
codec rôi chay môt vòng láp vô tân. Khi có xung lây mâu, ngát 11 duoc kích hoat và
trình phuc vu ngát c_int11( ) duoc goi.
Trình phuc vu ngát së doc môt mâu du liêu o ngõ vào. Mâu này duoc biêu diên báng
16 bit. Khi diêu chê BPSK, môi symbol chi gôm 1 bit (dê phân biêt 2 pha 0° và 180°
chi cân 1 bit), do dó, mâu vào së duoc chia ra làm 16 symbol báng cách su dung mát
na 0x0001 dê lây bit LSB. Tùy bit này là 0 hay 1 mà xuât ra dang sóng sine có pha
tuong ung.
Ví du: Mâu vào là 0x0003 duoc AND voi mát na 0x0001 cho ra bit 1. Do dó, dang
sóng sine xuât ra có pha 180°. O dây, sóng sine duoc tao ra báng 4 diêm, môi lân
muôn xuât sóng sine, chuong trình së xuât ra 4 giá tri thê hiên 1 chu ky cua sóng sine.
Tài liêu thí nghiêm Xu lý sô tín hiêu
56

Trong chuong trình trên, các giá tri duoc khai báo trong biên data_BPSK[2][4]. Dây
là 1 mang 2 chiêu kích thuoc 2x4 thê hiên 2 dang sóng sine: pha 0° là {0, 1000, 0, -
1000} và pha 180° là {0, -1000, 0, 1000}. Giá tri này thê hiên biên dô cua sóng sine
trong 1 chu ky, tai thoi diêm 0, T/4, T/2 và 3T/4 (T là chu ky).
Sau khi xuât ra du 4 diêm, mâu vào duoc dich sang phai 1 bit và lây mát na bit LSB.
Láp lai nhu vây cho dên hêt chiêu dài cua mâu.
Nhu vây, môi mâu vào 16 bit có 16 symbol, môi symbol së tao ra 1 chu ky sóng sine
gôm 4 diêm, do dó voi môi mâu vào, chuong trình xuât ra 4 x 16 = 64 mâu ra và biên
dêm i_BPSK giúp xác dinh khi nào duoc phép lây mâu vào kê tiêp.
4. Biên dich chuong trình. Nêu thành công, nap chuong trình dã biên dich lên kit dê
chay thu.
5. Mo máy phát sóng lên và quan sát dang sóng xuât ra. O dây hãy quan sát theo 2
cách: (1) su dung Code Compose Studio dê vë các giá tri cua bô dêm nôi
out_buffer. (2) quan sát tín hiêu xuât ra o ngõ ra Line Out cua kit báng
Oscilloscope.
6. Do o dây su dung máy phát sóng, dang sóng thay dôi liên tuc nên kêt qua ra khó
kiêm chung. Hãy sua câu lênh sample_data = input_sample( ) thành
sample_data = 0x???? (môt giá tri bât ky 16 bit dang sô hex) rôi biên dich, nap
và chay lai chuong trình.Vë lai dang sóng xuât ra trong CCS. Lúc này, mâu vào là
giá tri cô dinh do nhâp vào và dang sóng xuât ra së dê dàng kiêm chung hon.
7. Hãy thu môt vài giá tri nhâp vào và vë dang sóng xuât ra.
Bài tâp
Hãy chép toàn bô folder BPSK sang môt folder moi và dát tên là QPSK. Chinh sua lai
chuong trình dê thuc hiên diêu chê QPSK. Sau dó biên dich và chay trên kit dê kiêm
chung kêt qua thuc hiên.
Goi ý :
- Ðiêu chê QPSK can 4 pha: 0°, 90°, 180° và 270° nên can khai báo 1 mang 4 x 4:
4 sóng sine lêch pha nhau 90°, moi sóng sine có 4 diêm. Ðàt tên mang là
data_QPSK[4][4] thay cho data_BPSK và sua lai tên biên cho phù hop.
- Moi symbol gom 2 bit, do dó can su dung màt na thích hop dê lay 2 bit LSB và
moi lan dich 2 bit.
- Thay doi biên dêm cho thích hop vì moi mau vào chi gom 8 symbols.

Trong phân báo cáo, trình bày phân mã nguôn úng vói giai thuât diêu chê (phân tu
thuc hiên). Giai thích nhûng gì dã làm và vê môt vài dang sóng diêu chê thu duoc dê
kiêm chúng.






Tài liêu thí nghiêm Xu lý sô tín hiêu
57

Tài liêu tham khao
[1] Rulph Chassaing , Digital Signal Processing and Applications with the C6713 and 6746
DSK, John Wiley & Sons, Inc. 2005.
[2] Lê Tiên Thuong, Xu lý so tín hiêu & Wavelet, Nhà xuât ban Dai hoc 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/ )







Tài li u thí nghi m X lý s tín hi u

GI I THI U
Các b x lý s tín hi u c s d ng trong r t nhi u ng d ng th c t , t truy n thông và i u khi n cho n x lý ti ng nói và hình nh... H u h t các thi t b gia d ng hi n nay c ng tích h p các b x lý s tín hi u. Chúng c s d ng trong i n tho i di ng, máy nh s , HDTV, radio, truy n fax, các modem, máy in, máy tr thính và nhi u thi t b khác… H th ng x lý s tín hi u c b n bao g m m t b bi n i A/D thu nh n tín hi u vào. Sau ó, d ng bi u di n s c!a tín hi u vào s" c x lý b#i m t b x lý s tín hi u và tín hi u ra c a qua b bi n i D/A. H th ng c b n này c ng bao g m m t b l c ngõ vào ch ng ch ng l n ph và m t b l c ngõ ra khôi ph c tín hi u ã x lý. Trong các bài thí nghi m này, chúng ta c trang b kit TMS320C6713 c!a Texas Instruments. Kit TMS320C6713 là m t công c m nh v$i các ph n c ng và ph n m m c n thi t cho x lý tín hi u th i gian th c. Nó là m t h th ng x lý s tín hi u hoàn ch%nh, bao g m m t b x lý s d u ch m ng C6713 và b codec 32-bit stereo TLV320AIC23 (g i t t là AIC23) cho vi c xu t nh p tín hi u. Qua các bài thí nghi m này, hi v ng các b n sinh viên s" hi u rõ thêm các khái ni m ã h c trong môn X lý s tín hi u, c ng nh n m c các b $c c b n trong vi c th c hi n m t ng d ng x lý s tín hi u lên m t b x lý s , nh chip C6713 c!a Texas Instruments.

2

Tài li u thí nghi m X lý s tín hi u

BÀI 1: S
1. S
1.1

D NG MATLAB
THI T K B

THI T K B
L CS

L CS

D NG MATLAB

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:

Hình 1. Giao di n c a SPTool

Khi m$i m# SPTool, nó ch a m t t p h p các tín hi u, b l c và ph m&c nh. Trên giao di n c!a SPTool, có 3 c t: Signals, Filters và Spectra. D $i m'i c t có các nút s d ng cho c t ó. C t Signals hi n th các tín hi u, c t Filters hi n th các b l c và c t Spectra hi n th các ph trong workspace (vùng làm vi c) c!a SPTool. Các tín hi u, b l c ho&c ph trong workspace c!a MATLAB có th c a vào SPTool b(ng l nh Import trong menu File c!a SPTool. Các tín hi u, b l c ho&c ph c t o ra ho&c c import vào SPTool t n t i d $i d ng các c u trúc c!a MATLAB. l u l i các tín hi u, b l c và ph ã t o ra ho&c ch%nh s a trong SPTool, s d ng l nh Export trong menu File, chúng c ng s" c l u l i d $i d ng các c u trúc MATLAB. b t u thi t k m t b l c m$i, các b n hãy nh n vào nút New ngay d $i c t Filter. Khi ó, giao di n Filter Designer dùng thi t k b l c nh sau s" xu t hi n. Filter Designer cung c p m t môi tr ng h a t ng tác thi t k các b l c s IIR ho&c FIR d a trên các tiêu chu)n do ng i dùng xác nh. - Các lo i b l c có th thi t k : Thông th p, thông cao, thông d i, ch n d i. - Các ph ng pháp thi t k b l c FIR: Equiripple, Least squares, Window 3

Tài li u thí nghi m X lý s tín hi u Các ph ng pháp thi t k b l c IIR: Butterworth, Chebyshev lo i I, Chebyshev lo i II, Elliptic.

Hình 2. Giao di n Filter Designer

Ví d 1: Thi t k m t b l c FIR ch n d i b ng SPTool B l c, c thi t k b(ng ph ng pháp c a s Kaiser, v$i các thông s sau: Chi u dài c a áp ng xung: N = 89 (MATLAB hi n th b c b l c b ng 88) T n s trung tâm: 2700 Hz T n s c t: 2500 Hz và 2900 Hz Giá tr c a β = 4 T n s l y m u 8000 Hz Các b $c thi t k nh sau: 1. Kh#i ng SPTool. D $i c t Filters, nh n nút New m# c a s Filter Designer. 2. Trong giao di n c!a Filter Designer: a. Trong text box Filter: Tên b l c c t &t (# ây là filt1). Tên này có th thay i sau này. b. Nh p các thông s thi t k vào: i. Design method -> FIR -> Windows ii. Option -> Windows -> Kaiser iii. B* ch n # check box Minimum Order. (n u ch n thì s" thi t k b l c có b c t i thi 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

ta s" th y các h s áp ng xung c!a b l c.Tài li u thí nghi m X lý s tín hi u Hình 4. c c!a vector áp ng xung s" c s d ng th c hi n b l c s Ví d 2: Thi t k b l c IIR ch n d i b ng SPTool S d ng ph ng pháp Elliptic thi t k m t b l c IIR ch n d i b c 10. hàm truy n ch% có t s và các h s c!a t s chính là áp ng xung c!a b l c. trong MATLAB có th dùng l nh sau: >> h = bs2700.num. Trong c a s Array Editor trên.num Hình 5. field tf th hi n hàm truy n c!a b l c. ( i u này úng v i các b l c IIR thông d i và ch n d i) 6 . l n l t nh n úp vào field tf r i nh n úp vào num.num và tf. Trong các field này. i v$i b l c FIR.tf. Vector áp ng xung c a b l c ã thi t k Các giá tr thu lên trên kit DSP. Chú ý r(ng MATLAB hi n th b c b l c là 5. Các field c a bs2700 4. gán các h s này vào m t vector h. các giá tr c!a vector áp ng xung c l u trong bs2700. bi u di n s ph n b c 2 c!a b l c. t n s trung tâm 1750Hz. Do ó.tf. Field này c ng là m t c u trúc g m 2 field: tf.den th hi n t ng ng các h s c!a a th c t s và a th c m+u s . v$i b l c trên.

l u b l c thi t k v$i tên bs1750 và xu t ra workspace..den..tf. áp ng t n s c a b l c IIR ã thi t k D ng c c – zero c!a m t hàm truy n H(z) nh sau: (z − z1 )(z − z 2 ). các ph n b c 2 c!a H(z) c l u trong 1 ma tr n nh sau: 7 . Trong workspace s" có m t c u trúc tên là bs1750.(z − pm ) Hàm truy n trên có th c vi t l i nh sau: L k =1 H ( z ) = g ∏ H k (z ) = g ∏ b0 k + b1k z −1 + b2 k z −2 −1 + a2 k z −2 k =1 1 + a1k z L 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.(z − z n ) H ( z) = k (z − p1 )(z − p2 )..tf.Tài li u thí nghi m X lý s tín hi u Các thông s c!a b l c này nh sau. Các h s t s và m+u s c!a hàm truy n c l u t ng ng trong các bi n bs1750. Hình 6.num và bs1750. Trong MATLAB. T n s c t: 1700 Hz và 1800 Hz g n d i thông và d i ch n t ng ng là 1 dB và 60 dB T n s l y m u: 8000 Hz Th c hi n t ng t nh ví d trên..

áp ng t n s c a b l c multiband FIR c n thi t k B l c mong mu n có 2 d i thông. Các l nh này có th c s d ng khi thi t k m t s lo i b l c mà SPTool không có s.2 Thi t k b l c b ng l nh c a MATLAB Bên c nh vi c s d ng công c SPTool thi t k b l c nh trên.num.p.p.8 0. Chúng ta s d ng hàm remez c!a MATLAB.1 Biên 0 8 . ta s" chuy n thành d ng các ph n b c hai b(ng các l nh sau: >> [z. c s d ng th c hi n b l c IIR này lên kit 1.tf. T n s l y m+u là 10 kHz. Ví d 1: Thi t k b l c FIR multiband b ng các l nh MATLAB Trong ví d này.2 1 0. Hàm remez s d ng gi i thu t Parks – McClellan d a trên gi i thu t Remez và lý thuy t x p x% Chebyshev.2 0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Hình 7.4 0.Tài li u thí nghi m X lý s tín hi u sos = b01 b02 b0 L b11 b12 b1L b21 1 a11 b22 1 a12 b2 L 1 a1L a21 a 22 a2 L T các h s t và m+u # trên.k) Các ph n t c!a ma tr n sos này s" DSP. MATLAB c ng có m t s l nh có th s d ng thi t k b l c.n.k] = tf2zp(bs1750. B l c c n thi t k có áp ng t n s nh sau: 1.tf. D i 1 T n s (Hz) 0 – 500 c bi u di n b#i 5 d i nh sau: T n s chu n hóa f/FN 0 – 0. bs1750. ví d nh các b l c multiband. chúng ta s" thi t k m t b l c FIR multiband g m 63 h s .6 0.den) >> sos = zp2sos(z.

m = [0 0 1 1 0 0 1 1 0 0].1.f.18 0. n = 63. % plot magnitude of the filter plot(5000*f.18 0.256). den] = yulewalk(n-1. chúng ta thi t k m t b l c IIR multiband có áp ng mong mu n nh b l c # ví d 1. plot(w/pi. Ví d 2: Thi t k b l c IIR multiband b ng các l nh c a MATLAB Trong thí nghi m này.ây.L nh plot th nh t v" áp ng t n s mong mu n d a trên f và m.m dùng thi t k nh sau: %multibandiir63.12 – 0.m) tr v vector h s c!a b l c FIR b c n – 1.3 0.3 0.18 0.2 – 0. figure.m: Multiband IIR filter with 63 coefficients f = [0 0. l c ã thi t k .2 0. m = [0 0 1 1 0 0 1 1 0 0].38 0. n = 63.3 0.m thi t k b l c này. Trong o n ch ng trình trên. cof = remez(n-1.m).4 – 1 1 0 1 0 Trong ó FN là t n s Nyquist.38 0. v$i f và m xác nh các d i t n s theo b ng # trên. có m t s l u ý: .f.Dòng l nh cof = remez(n-1.m: Multiband FIR filter with 63 coefficients f = [0 0.38 0. k t qu c!a quá trình thi t k mà ta c n nh n c chính là các h s ch a trong bi n cof.den. . 9 .m N i dung c!a file này nh sau: %multibandfir63.1 0.12 0. Chúng ta vi t m t file . b(ng ½ t n s l y m+u.abs(h)).4 1].4 1]. .2 0.Tài li u thí nghi m X lý s tín hi u 2 3 4 5 600 – 900 1000 – 1500 1600 – 1900 2000 – 5000 0.m). % frequency response with 256 points [h w] = freqz(num. Chúng c s d ng khi th c hi n b l c lên trên kit DSP.L nh figure t o ra m t c a s m$i và l nh plot th hai v" áp ng t n s c!a b c lên c a s m$i này.1 0. T n s l y m+u c ng là 10 kHz.m). Các b $c thi t k gi ng nh trên v$i n i dung file multibandiir63. l u l i v$i tên multibandfir63.12 0. [num.32 0. % frequency response with 256 points [h w] = freqz(cof.32 – 0.f.256).32 0.L nh freqz tính áp ng t n s c!a b l c .

L nh freqz c s a i v" áp ng t n s c!a b l c IIR ã thi t k . figure. L nh này tr v các h s c!a t s và m+u s c!a hàm truy n b l c.Tài li u thí nghi m X lý s tín hi u % plot magnitude of the filter plot(5000*f. l u ý: . Các giá tr c!a num và den c s d ng khi c n th c hi n b l c này lên kit DSP.L nh remez c thay b(ng l nh yulewalk dùng thi t k b l c IIR. 10 . plot(w/pi. .abs(h)). c ch a t ng ng trong bi n num và den.m). Trong o n ch ng trình trên.

Các b x lý C67xx (ví d C6701. Trình d ch C s" d ch ch ng trình ngu n vi t b(ng C (t p tin có ki u . trong khi ó C62xx và C64xx thu c v h các b x lý C6x d u ch m t0nh. B n jack c m trên boad cho phép xu t nh p: MIC IN (microphone input).3 D NG KIT X LÝ S C6713 DSK (DSP STARTER KIT) Kit C6713 DSK Kit DSK là m t h th ng DSP hoàn ch%nh. phù h p cho các gi i thu t n&ng v tính toán s . C6711 và C6713) thu c v h các b x lý C6x d u ch m ng.4 Code Composer Studio (CCS) CCS là m t môi tr ng phát tri n tích h p (IDE). Tr ng thái c!a 4 dip switch trên DSK có th c c t ch ng trình. B x lý TMS320C6713 d a trên ki n trúc VLIW (very-long-instruction-word). S kh i c a DSK 1.26V cho nhân C6713 và 3. m'i instruction dài 32 bit. LINE OUT (line output) và HEADPHONE (headphone output). B codec onboard AIC23 s d ng k. Hình 8. C6713 có th x lý c d u ch m ng và d u ch m t0nh. Board DSK bao g m b x lý s d u ch m ng C6713 và b codec 32 bit stereo TLV320AIC23 (AIC23) xu t nh p. Trên board DSK c ng bao g m các n áp cung c p 1. T p tin th c thi này có th c n p và ch y tr c ti p trên b x lý C6713. m t ch ng trình assembler và m t ch ng trình linker.Tài li u thí nghi m X lý s tín hi u BÀI 2: S 1. Trình linker s" k t h p các t p tin i t ng và các th vi c i t ng t o ra m t t p tin th c thi v$i ki u . LINE IN (line input).asm). 11 .obj) t các t p tin . Nó có kh n1ng h a và h' tr real-time debug. thu t sigma – delta bi n i A/D và D/A.out. Nó ck t n i v$i m t ng h h th ng 12 – MHz.3V cho b nh$ và các ngo i vi. T n s l y m+u có th thay i t 8 n 96 KHz.c) t o thành m t t p tin ngu n assembly (ki u . B nh$ ch ng trình n i c t ch c m'i chu k/ có th n p 8 l nh (instruction). DSK ho t ng # t n s 225 MHz. Board DSK bao g m 16MB SDRAM và 256kB Flash memory. Trình assembler s" t o ra các t p tin i t ng ngôn ng2 máy (. nh m t b biên d ch C. Nó cung c p m t công c ph n m m thu n ti n cho vi c xây d ng và s a l'i ch ng trình. CCS cung c p các công c sinh mã.asm.

h: t p tin header 5. M t s tính n1ng debug có s. m&c nh là C:\CCStudio_v3. s d ng các công c sinh mã và ch y m t ch ng trình trên b x lý C6713. file. C6713dskinit. codec. #include "tonecfg. 1. T p tin này không c bao g m v$i CCS. Chúng ta s" làm vi c v$i m t vài ki u t p tin khác nhau.1\myprojects\source\support (tr các t p tin th vi n) c s d ng trong h u h t các bài thí nghi m. Chúng c dùng cho các ch ng trình có s d ng ng t.lib: t p tin th vi n 6. vectors_intr. 1. các k t qu h a. 5.asm: t p tin vector cho các ch ng trình h*i vòng (polling) 6. Quan tr ng h n. csl6713. file.6 Ví d 1: T"o tín hi u hình sine Ví d này t o ra m t tín hi u hình sine b(ng ph ng pháp tra b ng. dsk6713bsl. 2.Tài li u thí nghi m X lý s tín hi u t o m t project.asm: m t t p tin vector bao g m trong CCS ã c s a i qu n lý ng t. và theo dõi th i gian th c thi.5 Các t p tin h tr! Các t p tin h' tr sau c ch a trong folder C:\CCStudio_v3.1\) Các ví d l p trình trên DSK Sau ây là m t s ví d l p trình minh h a cho m t s &c tính c!a CCS và board DSK. file. (Th m c C6000 n(m trong th m c cài &t c!a CCS. xem b nh$. các thanh ghi và tr n C v$i assembly code.h: t p tin header ch a các prototype c!a các hàm.cmd: T p tin l nh linker. C6713dsk. 3. file. M c tiêu chính là làm quen v$i các công c ph n m m và ph n c ng.pjt: t o và xây d ng m t project có tên là “file” 2. rts6700. và ng t 11 c ch n trong t p tin này.asm: ch ng trình ngu n b(ng ngôn ng2 assembly. ng i dùng có th thêm vào các t p tin phù h p. Ch ng trình ngu n tone.lib: T p tin th vi n h' tr run – time.c: ch a các hàm kh#i ng DSK.lib. Các tùy ch n v compiler/linker có th xác nh d dàng. ánh x các section vào b nh$ 7.n. file.c: ch ng trình ngu n vi t b(ng C 3.lib. c t o b#i ng i dùng ho&c b#i b d ch C. nó minh h a vài &c tính c!a CCS trong hi u ch%nh. nh &t các breakpoint và xem các bi n. file. các c ng n i ti p và xu t nh p. Các t p tin này c cung c p v$i CCS và c ch a trong các folder C6000\cgtools\lib. 4.c th c hi n vi c t o sóng sine có n i dung nh d $i ây.cmd: t p tin l nh c!a linker. T p tin này có th c s a i khi s d ng b nh$ ngoài thay cho b nh$ trong. file. C6000\dsk6713\lib và C6000\csl\lib m t cách t ng ng. bao g m: 1. vectors_poll. xây d ng m t project.obj: t p tin i t ng c t o ra b#i assembler 8.out: t p tin th c thi c t o ra b#i linker n p và ch y trên b x lý C6713 1.h" /* 12 . 4. board và chip. C6713dskinit. Có 12 ng t. file. t INT4 n INT15.

0xa57f. 0x2120. 0x0000.h must be included * in every program that uses the BSL. 0x7ee5. 0x763f. 0x658b. 0x0000. 0x30fb. 0x10b4. 16-bit signed samples */ Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000. 0xcf06. 0x30fb. // 0 DSK6713_AIC23_LEFTINVOL Left line input channel volume 0x0017. // 5 DSK6713_AIC23_DIGPATH Digital audio path control 0x0000. 0x10b4. 0x7ba1. 0x7ba1. 0x30fb. 0xa57f. 0xb216. 0x5a81. 0xc002. 0x9128. // 6 DSK6713_AIC23_POWERDOWN Power down control 0x0043. 0xef4c /* 13 . 0x10b4. 0x2120. 0x9a75. 0x4dea. 0xdee0. 0x763f. 0x76ef. 0x0000. // 3 DSK6713_AIC23_RIGHTHPVOL Right channel headphone volume 0x0011. 0x89c1. 0x89c1. 0x8002. 0x845f. 0x7ba1. /* Pre-generated sine wave data. 0x7ee5. 0xc002.h" #include "dsk6713_aic23. // 8 DSK6713_AIC23_SAMPLERATE Sample rate control 0x0001 // 9 DSK6713_AIC23_DIGACT Digital interface activation }.h because it uses the AIC23 codec module. 0x811b. 0x6ed8. 0x811b. 0xb216. This example also includes * dsk6713_aic23. 0x6ed8. 0x3fff. 0x811b.h" /* Length of sine wave table */ #define SINE_TABLE_SIZE 96 /* Codec configuration settings */ DSK6713_AIC23_Config config = { 0x0017. 0xdee0. 0x658b. 0x3fff. 0x4dea. // 1 DSK6713_AIC23_RIGHTINVOL Right line input channel volume 0x00d8. 0x9128. 0x3fff. 0x9128. 0x845f. 0x10b4. 0xcf06. 0x5a81. // 7 DSK6713_AIC23_DIGIF Digital audio interface format 0x0001. 0x2120. 0x89c1. 0x5a81. 0x7ffd. 0xef4c. 0xb216. 0x2120. 0x845f. 0xcf06. 0x658b. 0xdee0. // 4 DSK6713_AIC23_ANAPATH Analog audio path control 0x0000. 0x658b. 0xef4c. 0xa57f. // 2 DSK6713_AIC23_LEFTHPVOL Left channel headphone volume 0x00d8.Tài li u thí nghi m X lý s tín hi u * The 6713 DSK Board Support Library is divided into several modules. 0x7ffd. 0x9a75. 0xb216. 0x845f. 0x7ee5. 0xcf06. 0x30fb. 0x89c1. each * of which has its own include file. 0x6ed8. 0x4dea. 0xa57f. }. 0x9a76. 0x9a76. 0x4dea. 0x6ed8. 0x3fff. 0x8002. 0x811b. */ #include "dsk6713. 0xdee0. 0x5a81. 0xc002. 0xc002. 0x7ee5. 0x76ef. The file dsk6713. 0xef4c. 0x7ba1. 0x9128.

/* Initialize the board support library.Main code routine. Int16 msec. Trong h p tho i t o Project.out). ch n ng d+n: C:\CCStudio_v3. } } /* Close the codec */ DSK6713_AIC23_closeCodec(hCodec). initializes BSL and generates tone */ void main() { DSK6713_AIC23_CodecHandle hCodec. msec < 5000. sample < SINE_TABLE_SIZE. /* Generate a 1KHz sine wave for 5 seconds */ for (msec = 0. msec++) { for (sample = 0. /* Start the codec */ hCodec = DSK6713_AIC23_openCodec(0. sample. và Target là TMS320C67xx. ch n Project New.Tài li u thí nghi m X lý s tín hi u * main() . Project Type là Executable (. /* Send a sample to the right channel */ while (!DSK6713_AIC23_write(hCodec. thêm các t p tin c n thi t biên d ch project sine_graph. sinetable[sample])). H p tho"i Project Creation 14 . Hình 9. 1. sample++) { /* Send a sample to the left channel */ while (!DSK6713_AIC23_write(hCodec. must be called first */ DSK6713_init(). sinetable[sample])). Trong CCS. } T"o project Ph n này s" minh h a cách t o m t project m$i.1\Myprojects. &config). nh p tên project là sine_graph.

c nh # trên và l u l i v$i tên sine_graph.1\cc\gel vào Gel file Và file tone. 2.1\examples\dsk6713\bsl\tone vào th m c c!a project sine_graph Ch n Project Scan All File Dependencies CCS t thêm vào các t p tin header.h t i ng d+n C:\CCStudio_v3.1\Myprojects. c a s Project View s" hi n th các t p tin ã c thêm vào Project.gel t i ng d+n: C:\CCStudio_v3.1\Myprojects\sine_graph m c ng B sung Source file v a t o vào project: Click ph i vào Source.c t i d+n: C:\CCStudio_v3. Xác #nh các tùy ch n $ biên d#ch ch% ng trình 15 .1\examples\dsk6713\bsl\tone vào DSP/BIOS Config Copy file tonecfg. ch n Add File to Project… Ch n ng n n file sine_graph. T ng t . Sau khi t o project. ta b sung file dsk6713. c n th c hi n các b $c config nh sau: T o Source file: vào m c File -> New -> Source file… Gõ l i ch ng trình sine_graph.Tài li u thí nghi m X lý s tín hi u CCS s" t t o ra m t th m c tên là sine_graph trong th C:\CCStudio_v3.cdb t i ng d+n C:\CCStudio_v3. Sau khi th c hi n các b $c trên.c v a t o.

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.gel. Tr $c h t. Trong khi ch ng trình ang ch y và DIP Switch 0 ang c nh n. 1.b $c này.gel Trong ph n trên chúng ta ã c p n t p tin gain. 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.gel Create slider sinewave*/ menuitem "Sine Gain" and vary amplitude (gain) of 16 .gel. Nh p gain và nh n “Add to Watch”. 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ó. Giá tr gain b(ng 10 ( ã c &t trong ch ng trình) s" xu t hi n trong c a s Watch.CHIP_6713 D#ch và ch"y ch% ng trình Sau khi ã thi t l p các tùy ch n phù h p cho Compiler và Linker. chúng ta hãy ti n hành biên d ch ch ng trình và n p lên trên kit ch y. Thay i gain t 10 thành 30 trong c a s Watch r i nh n Enter. S d ng t p tin gain. Nh n F7 Rebuild All và load xu ng Kit. 2. 1. Th ng c a s này hi n th # ph n bên d $i c!a CCS. (L u ý dòng ch2 DSP RUNNING trên thanh Status c!a CCS). 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. 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. D ng sóng quan sát s" thay i khi bi n gain thay i giá tr . Ch n View Quick Watch window. 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.Tài li u thí nghi m X lý s tín hi u . /*gain. Sau ó nh n F5 ch y ch ng trình C a s& Watch window C a s Watch Window cho phép thay i giá tr c!a m t thông s ho&c theo dõi m t bi n.

1. Output buffer plotted within CCS #include "dsk6713_aic23. có tín hi u sine ra có t n s là 2kHz. //set sampling rate 17 . B codec AIC h' tr các t n s l y m+u 8. c a s sau s" xu t hi n cho phép thay i giá tr c!a bi n gain.gain_parameter) /*incr by 35*/ { gain = gain_parameter. /*vary gain of sine*/ } 5. 44. Ví d . C a s& slider cho phép thay &i bi n gain 3. Giá tr này là 1 h(ng s nguyên ã c nh ngh0a s.h" //codec-DSK support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ. Hình 10.1. Thay i t n s l y m+u.gel nh trên.1. Hai thanh tr t có th c s d ng v a thay i gain. s d ng m t DIP Switch khác. Ch n GEL Sinde Gain Gain. 24. t1ng gain t 10 n 15 và quan sát d ng sóng sine Thay &i t n s c a tín hi u sine t"o ra T n s c!a tín hi u sine t o ra có th thay i b(ng m t trong các cách sau. Thay i s i m # trong b ng tra. ví d DIP Switch 3. 2.35.5. Hãy ch ng minh r(ng t n s t o ra là f = fs/(s i m). DSK6713_LED_on(3) và DSK6713_LED_off(3). 48 và 96kHz. ví d còn 4 i m thay vì 8 i m – ví d .Tài li u thí nghi m X lý s tín hi u slider Gain(10. Ch ng trình chính sine8_buf. 1000. v a thay i t n s . Nh n nút m i tên h $ng lên t o ra th y s thay i. 0. 32. trong ch ng trình ph i s d ng các hàm DSK6713_DIP_get(3). Khi ó c n thay i kích th $c c!a m ng sine_table và giá tr bi n loop. t n s l y m+u fs c gán giá tr là DSK6713_AIC23_FREQ_8KHZ. Trong t p tin ngu n # trên.up to N i dung c!a t p tin gain. 16. -1000}. hàm slider Gain c t o ra hi n th thanh tr t. Ví d 2: T"o tín hi u sine và v' v i CCS Ví d này c ng t o ra m t tín hi u sine v$i 8 i m nh trong ví d 1 nh ng nó minh h a kh n1ng v" d ng sóng trong mi n th i gian và mi n t n s c!a CCS. L u ý r(ng v$i ch ng trình trên sóng sine ch% c t o ra khi DIP Switch 0 c nh n. c n t1ng t n s l y m+u lên 16kHz b(ng cách &t fs=DSK6713_AIC23_FREQ_16KHZ.n. Thanh tr t này b t u t giá tr 10 và k t thúc # giá tr 35 và m'i m c t1ng là 5 n v . 2. Trong ó. Các t n s tín hi u khác nhau có th t o ra b(ng cách thay i bi n loop trong ch ng trình (ví d nh nh y cách m t i m l y m t i m). {0.c có n i dung nh sau: //sine8_buf Sine generation.

//increment buffer count if(i==BUFFERLENGTH) i=0.-707. 18 c s d ng v" . //output sine values out_buffer[i] = sine_table[loop]*gain. //for buffer count interrupt void c_int11() //interrupt service routine { output_sample(sine_table[loop]*gain). //gain factor short sine_table[8]={0. //init DSK. comm_intr c g i. //infinite loop } Trong ch ng trình này.0.-1000. Trong ISR này. //check for end of table return. //return from interrupt } void main() { comm_intr(). m t vùng m out_buffer có kích th $c 256 c s d ng l u l i các d2 li u xu t ra. N p và ch y ch ng trình trên kit và ki m tra r(ng có m t sóng sine 1KHz c t o ra. T p tin sine8_buf. short out_buffer[256]. Ch% s loop c t1ng cho n h t b ng r i l&p l i t 0. a ch% c!a ISR này c xác nh trong t p tin vectors_intr. M t b m ra ct o gi2 256 (xác nh b#i BUFFERLENGTH) m+u tín hi u sine xu t ra.asm c s d ng thay cho t p tin vectors_polls.pjt và thêm các t p tin c n thi t nh trong ví d 1. Hàm này n(m trong c6713dskinit. McBSP while(1). Sau ây CCS s" d2 li u ra hi n t i ch a trong b m out_buffer.3\myprojects\source\project_2. codec. ch a trong t p tin c6713dskinit.asm. //output buffer const short BUFFERLENGTH = 256. Xây d(ng ch% ng trình Hãy t o project sine8_buf.707. //size of output buffer int i = 0. ng t 11 x y ra và trình ph c v ng t (ISR – interrupt service routine) c_int11 c g i. //if @ bottom reinit count if (++loop > 7) loop = 0.asm v$i m t ch% d+n r" nhánh n a ch% này.c. //table index short gain = 10. Phát bi u while(1) trong hàm main t o m t vòng l&p vô h n ch ng t x y ra.c h' tr ch ng trình có dùng ng t. V' v i CCS B m ra c c p nh t liên t c m'i 256 i m.-707}. //output to buffer i++. Xác l p các tùy ch n nh trong ví d 1 và d ch ch ng trình.1000.Tài li u thí nghi m X lý s tín hi u int loop = 0. Trong hàm main. s d ng vector ng t INT11. L u ý r(ng ch ng trình này s d ng ng t nên t p tin vectors_intr.707.c c ch a trong th m c C:\CCStudio_v1. Khi có xung l y m+u. hàm output_sample. c g i xu t ra d2 li u u tiên trong sine_table.

Hình 11. a ch% b t u c!a b m chính là tên m ng out_buffer c nh p vào Start Address. Thay i các tùy ch n trong c a s Graph Property Dialog nh sau v" trong mi n th i gian. Hình 12. Các tùy ch n $ v' trong mi n th)i gian 2. ch n các tùy ch n nh trong hình sau. Các tùy ch n $ v' trong mi n t n s K t qu v" c th hi n trên hình sau: 19 . Ch n b c c!a FFT (FFT Order ) sao cho FFT Framesize = 2order. Ch n View Graph Time/Frequency. v" trong mi n t n s .Tài li u thí nghi m X lý s tín hi u 1. Các tùy ch n khác có th nh m&c nh.

K t qu v' b ng CCS c trong mi n t n s và trong mi n th)i gian 20 .Tài li u thí nghi m X lý s tín hi u Hình 13.

2.Tài li u thí nghi m X lý s tín hi u BÀI 3: TH*C HI N CÁC B 1. các i n tr# và các t i n. V$i ph ng pháp x lý m+u. Các u i m này bao g m tin c y cao h n. Quá trình l c nh n tín hi u vào. Các &c tính l c nh t n s trung tâm. 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. H th ng l i các lý thuy t ã h c. b1ng thông và lo i b l c có th thay i d dàng. 2. chính xác cao h n và ít nh y v$i nhi t và tu i i. b l c có th c th c hi n d ng tr c ti p nh sau: 21 . trong ó ph ng pháp n gi n nh t là ph ng pháp c a s . Gi i thi u L c là m t trong nh2ng ho t ng x lý tín hi u quan tr ng. x lý các m+u vào r i g i bao g m s d ng m t b bi n i A/D k t qu ra thông qua m t b bi n i D/A. M t s công c có s. C s+ lý thuy t B l c FIR nhân qu b c M có áp ng xung h = [h0. 4. Hi u rõ các b $c t thi t k n hi n th c b l c FIR lên trên m t kit DSP. Hàm truy n c!a b l c c xác nh t bi n M i Z c!a h(n): H ( z) = n =0 h(n) z −n = h0 + h1 z −1 + . M c ích thí nghi m L C FIR TRÊN KIT C6713 DSK 1..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.. 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. + hM z − M trong ó các h s c!a hàm truy n chính là áp ng xung h c!a b l c. B l c có th c th c hi n b(ng hai ph ng pháp: Ph ng pháp x lý kh i và ph ng pháp x lý m+u. 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 . h1. Thi t b# thí nghi m STT 01 02 03 04 Máy vi tính Kit C6713 DSK Máy phát song B dây n i tín hi u Tên thi t b# S l%!ng 01 01 01 01 3. 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) = m h ( m) x ( n − m) = m x ( m) h ( n − m) trong ó x(n) là ngõ vào c!a b l c. B l c FIR có th thi t k b(ng nhi u ph ng pháp. ….

3. Hãy xác nh: a. Trình bày tóm t t các b $c thi t k m t b l c FIR b(ng SPTool c!a MATLAB. Tóm t t các b $c s" làm th c hi n các ph n thí nghi m sau. Có m y ph ng pháp thi t k b l c FIR trong SPTool? Hãy li t kê. -4]. -2. -3. Chu n b# thí nghi m 1. B c b l c b.Tài li u thí nghi m X lý s tín hi u Hình 14. S kh i th c hi n d ng tr c ti p và gi i thu t x lý m+u. 22 . Cho m t b l c FIR có áp ng xung h = [1. Th(c hi n b l c FIR d"ng tr(c ti p N u &t các bi n tr ng thái v0(n) = x(n) v1(n) = x(n – 1) … vM(n) = x(n – M) Ta s" có gi i thu t x lý m+u ng v$i s V$i m'i m+u vào x: v0 = x y= M k =0 kh i trên nh sau: h k vk vM = vM-1 … v1 = v0 5. 2. Ph ng trình sai phân I/O c!a b l c c. Th nào là m t b l c multiband? Th phát h a áp ng t n s c!a m t b l c multiband? Có th dùng MATLAB thi t k m t b l c FIR multiband hay không? 4.

1 Th(c hi n b l c FIR Tr $c h t. 2. Thi t k b l c 1. Th c hi n nó trên kit C6713 DSK.c FIR filter.h" //coefficient file #include "dsk6713_aic23. dly[0]=input_sample(). 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. i--) //starting @ end of buffer 23 .h" //codec-dsk support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ. 2. n gi n sau. //set sampling rate int yn = 0. Sau ó. //delay samples interrupt void c_int11() //ISR { short i.Tài li u thí nghi m X lý s tín hi u 6. //initialize filter's output for (i = 0. i< N. //initialize filter's output short dly[N]. Include coefficient file with length N #include "coefficients. hãy th c hi n theo t ng b $c ví d các b l c FIR khác theo yêu c u. i++) yn += (h[i] * dly[i]). L u b l c ã thi t k v$i tên là lp2500 r i xu t ra workspace c!a MATLAB. Thi t k b l c FIR: k t qu c!a ph n này là có c áp ng xung h(n) c!a b l c. Ti n hành thí nghi m 6. t n s l y m u 8 kHz. Trong ví d này có 3 ph n chính c n ph i th c hi n: 1. Ki m tra b l c ã th c hi n: Trong ph n này.5 kHz. Ch ng trình s" c t ng m+u d2 li u vào và ti n hành gi i thu t x lý m+u tính ngõ ra. Ki m ch ng b l c ã th c hi n. //input newest sample yn = 0. //y(n) += h(i)* x(n-i) for (i = N-1. Th c hi n b l c lên trên kit C6713 DSK: S d ng áp ng xung thu ct ph n thi t k . 3. i > 0. Chúng ta s" s d ng m t máy phát sóng t o tín hi u ngõ vào và quan sát tín hi u ngõ ra c!a b l c khi thay i tín hi u ngõ vào. hãy t th c hi n Ví d : Thi t k m t b l c FIR thông th p b c 88 v i t n s c t 2. 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) //Fir. vi t ch ng trình th c hi n m ch l c lên kit. b l c ã th c hi n trên kit s" c ki m tra xem có áp ng yêu c u &t ra hay không.

nh n úp chu t vào tên bi n cof m# c a s Array Editor. ánh giá k t qu th c hi n 1. Trong c a s Project View. 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. codec. L y các h s c!a hàm truy n c!a b l c. m# r ng ph n Include. 6.1\myprojects\FIR. L u t p tin sau khi s a i. Ch n View Graph Time/Frequency. tab File View. Trong workspace. } void main() { comm_intr(). m# t p tin coeficients. Nh v y. các b $c th c hi n b l c lên kit nh sau: 1. 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. McBSP //infinite loop Trong ch ng trình này. L u ý r(ng các giá tr c!a áp ng xung cách nhau b(ng m t d u ph)y (. while(1). 3.n) FIR. hãy n p ch ng trình lên trên kit và ch y ch ng trình. nhân v$i h s t% l 215 >> cof = round(lp2500.pjt trong C:\CCStudio_v3.).num*2^15) 2. 5. hãy m# nó lên. chúng ta s" nhân nó v$i 215. output_sample(yn >> 15). &t các h s c!a b l c v a thi t k vào trong t p tin này.h. Khi có có xung l y m+u (t n s ch n # ây là 8KHz). Giá tr c!a N và vector h c khai báo trong t p tin coefficients. Tóm l i.Tài li u thí nghi m X lý s tín hi u dly[i] = dly[i-1]. T p tin này c g p vào nh ch% d+n #include. Sau khi d ch thành công.tf. c m+u vào và th c hi n gi i thu t x lý m+u tính ngõ ra. i u ch%nh giá tr N cho úng v$i chi u dài áp ng xung. } //update delays with data move //scale output filter sample //init DSK. trình ph c v ng t c_int11 c g i. 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. M# t p tin project ( ã c t o s.h. M# CCS (nh$ m# ngu n c!a DSK tr $c khi m# CCS). N u c a s workspace c!a MATLAB ch a hi n th .h. (Có th copy và paste t c a s Array Editor trên). Do các h s c!a áp ng xung nh n c t quá trình thi t k là khá nh*. 4. 7. return. khi mu n thay i b l c. Ch ng trình trên có s d ng ng t. 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 . ch% c n thay i n i dung c!a t p tin coefficients. Ch n 24 .

Giá tr c!a β = 4 d. M# ngu n c!a máy phát sóng. Thi t k b l c FIR thông d i b(ng ph ng pháp Kaiser Window v$i các thông s nh sau: a. t c là tên m ng h.Tài li u thí nghi m X lý s tín hi u Display Type là FFT Magnitude và Start Address là a ch% b t u c!a vector áp ng xung. Gi i thích s thay i. 3. V$i m'i bài thí nghi m. Quan sát ph ngõ ra. Chi u dài áp ng xung: 81 b. T n s l y m+u: 8 kHz. Chi u dài áp ng xung: 81 b. T n s l y m+u: 8 kHz. 6.5kHz. Gi i thích? 25 . Các thông s c!a b l c nh sau: a. T n s c t: 1500 và 2000 Hz. V" ph c!a tín hi u ngõ ra khi t n s c!a tín hi u vào là 0. T n s l y m+u là 8 kHz. V" áp ng t n s c!a b l c. 1. 2. Th c hi n và thi t k b l c thông cao sau b(ng ph ng pháp Kaiser Window. 2. Gi i thích k t qu . Giá tr c!a β = 4 d. T n s l y m+u: 8 kHz. Thi t k m t b l c FIR ch n d i b(ng ph ng pháp Kaiser Window có các thông s nh sau: a. T o m t sóng vuông v$i t n s 800 Hz # u vào c!a b l c. Th c hi n b l c lên trên kit và ki m tra k t qu . (H ng d n: nêu sao chép th m c FIR ã 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). Chi u dài áp ng xung N = 89 (B c b l c: 88) b. hãy a áp ng t n s c!a b l c vào trong bài báo cáo. Thay i t n s c!a tín hi u vào. Gi i thích t i sao có d ng ph này? 3. T n s c t: 2200 Hz. Sau ó. 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. T n s c t: 2500 và 2900 Hz. 2.2 M t b l c FIR multiband Hãy thi t k và th c hi n lên kit C6713 DSK m t b l c FIR multiband v$i hai d i thông có t n s trung tâm l n l t là 2500 và 3500 Hz. c. hãy áp d ng nh2ng gì ã h c th c hi n các thí nghi m sau. 1kHz và 1. Hi n th d ng sóng và ph c!a ngõ ra. B1ng thông c!a m'i d i thông là 500 Hz. 4.5kHz. 1. Sau khi ã th c hi n ví d trên. Giá tr c!a β = 5 d. c. cho m t tín hi u xung vuông t n s 1 kHz vào và hi n th tín hi u ra. c. 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. Th c hi n b l c và ki m tra k t qu .

Tài li u thí nghi m X lý s tín hi u BÀI 4: TH*C HI N CÁC B 1. x lý các m+u vào r i g i bao g m s d ng m t b bi n i A/D k t qu ra thông qua m t b bi n i D/A. Các &c tính l c nh t n s trung tâm. …. M c ích thí nghi m L C IIR TRÊN KIT C6713 DSK 1. Quá trình l c nh n tín hi u vào. chính xác cao h n và ít nh y v$i nhi t và tu i i. x(n – 2). các i n tr# và các t i n. x(n – N). y(n – 2). C s+ lý thuy t Hãy xem xét m t ph y ( n) = k =0 ng trình I/O t ng quát có d ng: N M a k x(n − k ) − j =1 b j y (n − j ) + a N x(n − N ) = a0 x(n) + a1 x(n − 1) + a 2 x(n − 2) + − b1 y (n − 1) − b2 y (n − 2) − − bM y (n − M ) D ng ph ng trình quy này bi u di n m t b l c IIR. Ngõ ra y(n) # th i i m y(n) không ch% ph thu c vào ngõ vào hi n t i x(n) # th i i m n và các ngõ vào trong quá kh x(n – 1). 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 . Thi t b# thí nghi m STT Tên thi t b# S l%!ng 01 02 03 04 Máy vi tính Kit C6713 DSK Máy phát song B dây n i tín hi u 01 01 01 01 3. M t s công c có s. 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. mà còn ph thu c vào các ngõ ra tr $c ó y(n – 1). Các u i m này bao g m tin c y cao h n. …. b1ng thông và lo i b l c có th thay i d dà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.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. N u chúng ta gi s các i u ki n ban u u b(ng 0. 4. y(n – M). H th ng l i các lý thuy t ã h c. 2. bi n i Z ph ng trình trên s" cho: Y ( z ) = a0 X ( z ) + a1 z −1 X ( z ) + a2 z −2 X ( z ) + − b1 z −1Y ( z ) − b2 z −2Y ( z ) − + aN z − N X ( z) − bM z − M Y ( z ) 26 . Gi i thi u L c là m t trong nh2ng ho t ng x lý tín hi u quan tr ng. 2. Hi u rõ các b $c t thi t k n hi n th c b l c IIR lên trên m t kit DSP.

h th ng n nh. D( z ) Khi ó: Y ( z) = N ( z) X ( z ) = N ( z )U ( z ) D( z ) aN z − N = U ( z )(a0 + a1 z −1 + a2 z − 2 + v$i N(z) là t s c!a hàm truy n. H(z) tr# thành: H ( z) = N a 0 z N + a1 z N −1 + a2 z N −2 + a N z − zi = C∏ N N −1 N −2 z + b1 z + b2 z + bN i =1 z − pi ây là m t hàm truy n v$i N zero và N c c. hàm truy n H(z) là H ( z) = Y ( z ) a 0 + a1 z −1 + a 2 z −2 + a N z − N N ( z ) = = X ( z ) 1 + b1 z −1 + b2 z −2 + bN z − N D( z ) trong ó N(z) và D(z) bi u di n a th c t s và a th c t s c!a hàm truy n. D"ng tr(c ti p 1 Hình 15. t t c các c c ph i n(m trong vòng tròn n v . 2. hàm truy n này tr# thành hàm truy n c!a m t b l c FIR. Th(c hi n b l c IIR d"ng tr(c ti p 1 Khi th c hi n # d ng này. X ( z) &t U ( z ) = trong ó D(z) là m+u s c!a hàm truy n b l c IIR. m t b l c b c N c n dùng 2N kh i làm tr . D"ng tr(c ti p 2 (D"ng chính t c) ây là m t trong nh2ng c u trúc th ng c s d ng. Và: X ( z ) = U ( z ) D( z ) = U ( z )(1 + b1 z −1 + b2 z −2 + Bi n i Z ng c ta s" có: 27 bN z − N ) . Nó ch% c n m t n a s kh i tr so v$i d ng tr c ti p 1. Nhân và chia cho zN. Các b l c IIR có th c th c hi n theo các c u trúc sau: 1.Tài li u thí nghi m X lý s tín hi u Khi N = M. N u t t c các h s bj b(ng 0.

Tài li u thí nghi m X lý s tín hi u u (n) = x(n) − b1u (n − 1) − b2u (n − 2) − y (n) = a0u (n) + a1u (n − 1) + a2u (n − 2) + Th c hi n d $i d ng s kh i: − bN u (n − N ) + aN u (n − N ) Hình 16. V" l i s sao cho u vào # bên trái và u ra # bên ph i Hình 17. D"ng tr(c ti p 2 chuy$n v# D ng tr c ti p 2 chuy n v là m t bi n th c!a d ng tr c ti p 2 và c n cùng s kh i tr . i u vào v$i u ra c. Th(c hi n b l c IIR d"ng tr(c ti p 2 3. o h $ng t t c các nhánh b. Th(c hi n b l c IIR d"ng tr(c ti p 2 chuy$n v# 4. D"ng cascade các t ng b c 2 Hàm truy n trên có th c phân tích thành tích các hàm truy n b c 1 ho&c b c 2 nh sau: H ( z ) = CH 1 ( z ) H 2 ( z ) H r ( z ) C u trúc n i ti p (cascade) này c v" nh sau: 28 . Các b $c sau chuy n m t b l c t d ng tr c ti p 2 sang d ng chuy n v : a.

B l c IIR b c 4 v i 2 ph n b c 2 d"ng tr(c ti p 2 5.Tài li u thí nghi m X lý s tín hi u Hình 18. Hàm truy n H(z) d $i d ng cascade các hàm truy n b c hai có th vi t nh sau: N /2 H ( z) = ∏ i =1 a0i + a1i z −1 + a2i z −2 1 + b1i z −1 + b2i z −2 Hình sau v" m t b l c IIR b c 4 d $i d ng cascade c!a hai ph n b c 2. C. d ng tr c ti p 2 ho&c chuy n v c!a nó có th c s d ng. i v$i m'i ph n.u trúc cascade c a b l c IIR Hàm truy n toàn b có th c bi u di n b(ng s ghép cascade các hàm truy n.u trúc song song c a b l c IIR 29 . Hình 19. D"ng song song Hàm truy n b l c IIR c ng có th c bi u di n nh sau (b(ng ph tri n phân s t ng ph n): H ( z) = C + H1 ( z) + H 2 ( z) + H r ( z) ng pháp khai C u trúc song song này có th v" nh sau: Hình 20. C.

t n s c t 1700 và 1800 Hz. Hãy v" cách th c hi n d ng tr c ti p (direct form) c!a h th ng.25 z 1 − 0. Sau ó. Ti n hành thí nghi m 6. Thi t k b l c IIR: k t qu c!a ph n này là có c các h s c!a t s và m+u s c!a hàm truy n b l c. + a N u (n − N ) n gi n sau. hãy t th c hi n Ví d : Thi t k m t b l c IIR ch n d i b c 10 b ng ph ng pháp Elliptic v i t n s trung tâm 1750 Hz. g n d i ch n và d i thông t ng ng là 60dB và 1dB. Chúng ta s" s d ng m t máy phát sóng t o tín hi u ngõ vào và quan sát tín hi u ngõ ra c!a b l c khi thay i tín hi u ngõ vào. 4. b l c ã th c hi n trên kit s" c ki m tra xem có áp ng yêu c u &t ra hay không. Ki m tra b l c ã th c hi n: Trong ph n này. Hãy v" cách th c hi n d ng chính t c (canonical form) c!a h th ng. Chu n b# thí nghi m 1.25 z −2 a.Tài li u thí nghi m X lý s tín hi u 5. 3. 6. Chúng ta s d ng ph ng trình sau ng v$i m'i t ng: u (n) = x(n) − b1u (n − 1) − b2 u (n − 2) − − bN u (n − N ) y (n) = a0 u (n) + a1u (n − 1) + a 2 u (n − 2) + Tr $c h t.1 Th(c hi n b l c IIR d"ng ghép cascade các t ng b c 2 Trong thí nghi m này. c. chúng ta s" th c hi n m t b l c IIR trên kit C6713 DSK. Ch ng trình s" c t ng m+u d2 li u vào và ti n hành gi i thu t x lý m+u tính ngõ ra. b. Các h s này s" c chuy n thành m t ma tr n trong ó m'i hàng bi u di n cho m t t ng b c hai (second-order section). Trong ví d này có 3 ph n chính c n ph i th c hi n: 1. Ki m ch ng b l c ã th c hi n. Th c hi n nó trên kit C6713 DSK d ng ghép cascade các ph n b c 2. vi t ch ng trình th c hi n m ch l c lên kit. Cho m t h th ng có hàm truy n nh sau: 5 4 H ( z) = − −2 1 + 0. Chebyshev 1. 3. Th c hi n b l c lên trên kit C6713 DSK: S d ng k t qu thu c t ph n thi t k . 30 . Hãy v" cách th c hi n d ng ghép n i ti p các t ng b c hai (cascade form) c!a h th ng. Hãy phân bi t &c i m c!a áp ng t n s c!a các lo i b l c Butterwork. Có m y lo i b l c IIR trong SPTool? Hãy li t kê. hãy th c hi n theo t ng b $c ví d các b l c IIR khác theo yêu c u. Chebyshev 2 và Elliptic. 2. Trình bày tóm t t các b $c thi t k m t b l c IIR b(ng SPTool c!a MATLAB. t n s l y m u 8 kHz. Tóm t t các b $c s" làm th c hi n các ph n thí nghi m sau. 2. s d ng c u trúc ghép cascade các ph n b c 2.

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.Tài li u thí nghi m X lý s tín hi u Thi t k b l c 1. L%u ý: i v i b l c IIR ch n d i và thông d i. i++) //repeat for each stage { un=input-((b[i][0]*dly[i][0])>>15)((b[i][1]*dly[i][1])>>15). //update delays input = yn.h" //BS @ 1750 Hz coefficient file short dly[stages][2] = {0}. S d ng công c SPTool trong MATLAB thi t k b l c trên v$i ph ng pháp Elliptic.den) >> sos = zp2sos(z. bs1750. b c %!c th$ hi n trên MATLAB b ng s ph n b c 2. input = input_sample(). a2i là các h s m+u s hàm truy n c!a ph n b c 2 th i. int un. t c là b ng m t n a b c c a b l c th(c. yn=((a[i][0]*un)>>15)+((a[i][1]*dly[i][0])>>15)+ ((a[i][2]*dly[i][1])>>15). 2.p. ta s" chuy n thành d ng các ph n b c hai b(ng các l nh sau: >> [z. b2i là các h s t s hàm truy n c!a ph n b c 2 th i và 1.tf. a1i. 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. i < stages. dly[i][1] = dly[i][0].p. //return from ISR } 31 .tf.k) Ma tr n sos trong MATLAB nh sau: b01 sos = b02 b0 L b11 b12 b1L b21 1 a11 b22 1 a12 a21 a 22 a2 L b2 L 1 a1L trong ó b0i. //output final result for time n return. //intermed out->in to next stage } output_sample((short)yn). //update delays dly[i][0] = un.num. L u b l c ã thi t k v$i tên là bs1750 r i xu t ra workspace c!a MATLAB. //input to 1st stage for (i = 0. T các h s t và m+u # trên.k] = tf2zp(bs1750. //set sampling rate #include "coefficients. 3. yn. b1i. input.h" //codec-DSK support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ. //delay samples per stage interrupt void c_int11() //ISR { short i.

{-10221.1\myprojects\IIR.cof coefficient file #define stages 5 int a[stages][3]= { {27940. c m+u vào và th c hi n gi i thu t x lý m+u tính ngõ ra. Khi có xung l y m+u (t n s # ây là 8 KHz). 25710}. 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 . 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. ma tr n b include vào nh ch% d+n #include. //a40. 31581}. stages là s t ng c!a b l c (s ph n b c 2). hãy kh#i ng nó. McBSP while(1). i v$i các t ng ti p theo. trình ph c v ng t c_int11( ) c g i. 32768}. x(n) là ngõ ra c!a t ng tr $c ó. //a20. {32768. khi mu n thay i b l c. 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)). a21. 32768}.pjt có s. {-15860. Các giá tr dly[i][0] và dly[i][1] t ng ng v$i các delay u(n – 1) và u(n – 2) # t ng th i. 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. 32768} }. b22 for //b31. Giá tr c!a các ph n t c!a a và b thu c t vi c thi t k b l c # trên. Ch ng trình trên c th c hi n có s d ng ng t.h. {-9204. //infinite loop } Trong ch ng trình này. -11841. Sau khi k t n i v$i kit. Do các h s a và b nh n c t quá trình thi t k là khá nh*. -14239. T p tin này c stages. chúng ta s" nhân nó v$i 215. 32 . ma tr n a. ch% c n thay i n i dung c!a t p tin coefficients. N i dung c!a t p tin coefficients.Tài li u thí nghi m X lý s tín hi u void main() { comm_intr(). {32768. Ph n l&p c!a o n mã trong ch ng trình c th c hi n stages l n v$i m'i giá tr c!a n. //a30. Giá tr c!a c khai báo trong t p tin coefficients. -10910. x(n) là m+u m$i nh n vào. a11.h. -13744. b52 for coefficients 1st stage 2nd stage 3rd stage 4th stage 5th stage T p tin này khai báo m t b l c có 5 t ng b c 2. 32768}. b12 for //b21. hãy m# project IIR. 31605}. N u CCS ch a ch y.n trong th m c C:\\CCStudio_v3. //number of 2nd-order stages //numerator //a10. codec. i v$i t ng u tiên.h có d ng nh sau: //coefficients. int b[stages][2]= { {-11417. 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. 27940}. b32 for //b41. -11338. Nh v y. a31. a41. {32768. Hãy làm theo các b $c sau hoàn thành ví d này: 1. //init DSK. 32584} }. {-15258. b42 for //b51. 32581}. coefficients a12 for 1st stage a22 for 2nd stage a32 for 3rd stage a42 for 4th stage //*denominator //b11. {32768.

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. M# ngu n c!a máy phát sóng. T n s l y m+u: 8 kHz. Th c hi n b l c và ki m tra k t qu . T n s l y m+u: 8 kHz. chúng ta s" t o và c ng hai tone b(ng ph ng pháp ph sai phân. hãy ch ng minh r(ng y(n) = sin(n3T) 33 1 1 = = 0. T n s c t d i ch n: 1600 và 2400 Hz c. hãy a áp ng t n s c!a b l c vào trong bài báo cáo. C nh d i d i ch n: 1. 6.h (trong ph n Include). g n d i ch n: 60 dB d. Tín hi u ra c ng c l u trong b nh$ và c v" b(ng CCS. S d ng bi n i Z. 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. hãy m# t p tin coefficients. 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. xác nh t n . hãy áp d ng nh2ng gì ã h c nghi m sau. tab File View. 2. H s A c!a ph s c t o ra. B c b l c: 36 (Matlab hi n th là 18) b. a. g n d i ch n 100 dB. Trong c a s Project View. 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. B c b l c: 10 b. y(-1) và y(-2).Tài li u thí nghi m X lý s tín hi u 2. d. 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. Ph sai phân dùng t o m t sóng hình sine là y (n) = Ay (n − 1) − y (n − 2) ng trình ng trình trong ó: A = 2 cos(ωT ) y (− 1) = − sin (ωT ) y (− 2 ) = − sin (2ωT ) v$i hai i u ki n ban u. 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.6 KHz.125ms là chu k/ FS 8kHz ng trình sai phân. th c hi n các thí Sau khi ã th c hi n ví d trên. V$i m'i bài thí nghi m. c.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. Th c hi n b l c lên trên kit và ki m tra k t qu . 3=2πf và T = l y m+u. 1. (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). cùng v$i hai i u ki n u.

//buffer count index short y1[3] = {0.c. D ch và ch y ch ng trình trên kit. Hãy s d ng CCS v" ph biên FFT c!a tín hi u ra. //set sampling rate short sinegen(void). //y2(0). Ki m ch ng r(ng tín hi u ra là t ng c!a hai tone có t n s 1.1\myprojects\two_tones. d. N i dung c!a t p tin này nh sau: //two_tones. //if buffer count = size of buffer return.y2(-2) for 2kHz const short A2 = 0.y1(-2) for 1. } void main() { comm_intr(). Hàm sinegen() s d ng ph ng trình sai phân b c hai t o m'i tone. //output into buffer output_sample(output).Tài li u thí nghi m X lý s tín hi u b.0}. //update y1(n-2) y1[1] = y1[0]. McBSP //infinite loop M ng y1[3] ch a các giá tr c!a y1(0). Hãy ch y ch ng trình Code Composer Studio (CCS) và m# project two_tones. while(1). Hãy m# t p tin ngu n c!a ch ng trình two_tones.5kHz? 2kHz? c. //A2 = 2coswT scaled by 2^14 interrupt void c_int11() //ISR { output = sinegen().5kHz const short A1 = 12540. Tính A. //for generating tone short output.y2(-1). //update y2(n-2) y2[1] = y2[0]. e. 34 . Các m+u tín hi u ra c ng c l u trong m t vùng nh$ m.-16384. //increment buffer count if (i == bufferlength) i = 0. //y1(n)= A1*y1(n-1)-y1(n-2) y1[2] = y1[1]. //buffer for output data const short bufferlength = 256. //A1 = 2coswT scaled by 2^14 short y2[3] = {0. y(-1) và y(-2) c n thi t t o ra m t sóng sine có t n s 1. y2(-1) và y2(-2) t o tone có t n s 2kHz. //return to main } short sinegen() //function to generate tone { y1[0] =((y1[1]*A1)>>14)-y1[2].y1(-1).h" //codec-DSK support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ. //y2(n)= A2*y2(n-1)-y2(n-2) y2[2] = y2[1]. //for output short sinegen_buffer[256]. } //add the two tones //init DSK.-11585}. và m ng y2[3] ch a các giá tr c!a y2(0).5kHz. codec.-15137.//y1(0).5kHz và 2kHz. //buffer size for plot with CCS short i = 0.pjt trong th m c C:\CCStudio_v3. L u ý a ch% b t u c!a vùng m này là sinegen_buffer. sau ó c ng chúng l i. //update y2(n-1) return (y1[0] + y2[0]). //update y1(n-1) y2[0] =((y2[1]*A2)>>14)-y2[2]. //out from tone generation function sinegen_buffer[i] = output. y1(-1) và y1(-2) t o tone có t n s 1.c Generates/adds two tones using difference //equations #include "DSK6713_AIC23. //output result i++.

hãy m# project sinegenDE. a. x(n – 1) = x(0) = 1. ng trình sai phân khác: Khi có m t xung # n = 0.1\myprojects\sinegenDE b. c. Trong CCS. V$i n = 1: y (1) = Ay (0) + By (−1) + Cx (0) = C v$i y(0) = 0 và y(-1) = 0. Hãy m# t p tin ngu n chính sinegenDE. Biên d ch ch ng trình và ch y. V" ph c!a nó. Hãy th t o và c ng hai tone có t n s 697 và 1209 Hz. Xác nh t n s c!a tín hi u ra. K.Tài li u thí nghi m X lý s tín hi u f.pjt t i th m c có ng d+n C:\CCStudio_v3. thu t này có th c dùng t o tín hi u DTMF (Dual – tone multifrequency). Ki m tra tín hi u ra có ph i là tone có t n s 1kHz không? 35 . Sau ó hãy hi u ch%nh project và d ch l i. Tính A và y[3] t o m t tone có t n s 1kHz. V$i n 4 2: y (n) = Ay (n − 1) − y (n − 2) H s A = cos(ωT ) và C = sin(ωT ) c tính v$i chu k/ l y m+u T = 1/Fs và t n s mong mu n 3.c.3 T"o tín hi u sine b ng m t ph% ng trình sai phân M t tín hi u hình sine c ng có th c t o ra b(ng m t ph y (n) = Ay (n − 1) + By (n − 2) + Cx (n − 1) v$i B = -1. Tín hi u DTMF này c t o ra khi nh n phím s 3 trên i n tho i. 6.

2. Trong các tr ng h p này. Thi t b# thí nghi m STT Tên thi t b# S l%!ng 01 02 03 Máy vi tính Kit C6713 DSK B dây n i tín hi u 01 01 01 3. 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 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. 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. Các h s c!a b l c thích nghi c i u ch%nh. Làm quen v$i các thi t k ng d ng th c t 2.Tài li u thí nghi m X lý s tín hi u BÀI 5: TH*C HI N CÁC H TH NG -NG D NG TRÊN KIT C6713 DSK 1. các thông s xác nh &c tính c!a b l c c gi s là ã bi t. 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. ho&c c t i u. Trong nhi u v n th c t . c h i ti p tr# l i b l 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. chúng ta ch% th o lu n gi i thu t tìm ki m LMS v$i 36 . phân tích thi t k làm n n t ng cho các h th ng l$n h n. s d ng gi i thu t LMS d a trên tín hi u sai s . 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. Gi i thi u Trong các b l c FIR và IIR thông th ng. th c ch t là m t bô l c FIR thích nghi. 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: Hình 21. 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. . Nghiên c u.ây. tín hi u ra ho&c thông s c!a h th ng. 4. 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). M c ích thí nghi m 1.u trúc b l c thích nghi c b n ây là m t c u trúc b l c thích nghi c b n trong ó ngõ ra y c!a b l c c so sánh v$i m t tín hi u mong mu n d t o ra m t tín hi u sai s e. C. Tín hi u sai s này là u vào c!a gi i thu t thích nghi thay i b l c sao cho th*a mãn m t tiêu chu)n ho&c m t quy lu t xác nh tr $c.

ng c!a b l c.. Khi i u này x y ra. cho k t qu : wk (n + 1) = wk (n ) + 2βe(n )x(n − k ). Ngõ ra y c!a b l c thích nghi c i u ch%nh theo nhi u n. chúng ta s d ng m t phép o l e(n ) = d (n ) − y (n ) ng d a trên tín hi u 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. Tín hi u mong mu n d b nh h #ng b#i nhi u c ng không t ng quan n. C. 4. Tín hi u sai s này c h i ti p l i b l c thích nghi và c dùng c p nh t các h s c!a b 37 . Ngõ ra c!a b l c N −1 k =0 y (n ) = wk (n )x(n − k ) v$i wk (n ) bi u di n N h s c!a b l c # th i i m n. tín hi u sai s s" ti n n tín hi u mong mu n d. Nh n d"ng h th ng (system identification) Hình sau v" m t c u trúc b l c thích nghi có th dùng nh n d ng ho&c mô hình h th ng. N − 1 th hi n gi i thu t LMS. K t qu toàn c c là tín hi u sai s này ch không ph i ngõ ra y c!a b l c thích nghi.Tài li u thí nghi m X lý s tín hi u m t b l c FIR m&c dù có vài ph thích nghi # hình 26 là: ng pháp th c hi n l c thích nghi. a.1 Các c. M t s $c l ng có th cs d ng b(ng cách dùng gradient c!a e2(n). 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.. Nhi u n’ có th n t cùng ngu n nhi u v$i n nh ng b thay i b#i môi tr ng.. ánh giá ch t l sai s . N u d không t ng quan v$i n. c n tính gradient c!a hàm sai s trung bình bình ph ng. L c nhi u (noise cancellation) [ ] Hình 22. Cùng m t ngõ vào c a n h th ng c n nh n d ng song song v$i m t b l c thích nghi.u trúc b l c thích nghi dùng $ l c nhi u Hình trên v" l i c u trúc thích nghi # hình 26 c ch%nh s a cho ng d ng l c nhi u. Hàm này là E e 2 (n ) v$i E[] bi u di n giá tr k/ v ng. chi n thu t là làm t i thi u E(e2) b.u trúc thích nghi M t s c u trúc thích nghi c s d ng trong các ng d ng khác nhau c!a l c thích nghi. Ngõ vào c!a b l c thích nghi là m t nhi u n’ t ng quan v$i nhi u n. k = 0..1. Do có N h s (hay tr ng s ). Tín hi u sai s e là s khác bi t gi2a áp ng d c!a h th ng ch a bi t và áp ng y c!a b l c thích nghi.

n ) Ngõ vào có th c bi u di n nh m t vector (K+1) chi u. Khi i u này x y ra. X (n ) = [x(0.2 B k t h!p thích nghi tuy n tính (Linear Adaptive Combiner) Chúng ta s" xem xét m t trong nh2ng c u trúc thích nghi h2u ích nh t – b k t h p thích nghi tuy n tính. y (n ) = K k =0 w(k . Hai tr ng h p x y ra khi s d ng b k t h p tuy n tính: (1) nhi u ngõ vào và (2) m t ngõ vào.u trúc b l c thích nghi dùng $ nh n d"ng h th ng 4. a. 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. 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. n ) x(K . Nhi u ngõ vào Hình 24. n )x(n − k ) 38 . y (n ) = K k =0 w(k . C. quá trình nh n d ng k t thúc và e ti n n 0. B k t h!p tuy n tính nhi u ngõ vào Hình trên mô t tr ng h p nhi u ngõ vào. n )] T b. n )x(k . C u hình bao g m K tín hi u vào c l p. Hình 23.Tài li u thí nghi m X lý s tín hi u l c thích nghi cho n khi y = d. m'i ngõ vào c nhân v$i tr ng s w(k) và ck th p t o tín hi u ra. n ) x(1.

n ) w(1.Tài li u thí nghi m X lý s tín hi u Hình 25. Bây gi . Tuy nhiên.3 x(n − K )] T T w(K . Hàm m c tiêu này s" d a trên sai s e(n ) = d (n ) − y (n ) Bình ph ng c!a hàm này là: e 2 (n ) = d 2 (n ) − 2d (n ) y (n ) + y 2 (n ) chính là hàm bình ph ng sai s t c th i. K/ v ng c!a hàm sai s bình ph ng là: 2 E e (n ) = E d (n ) − 2 E [d (n )x(n )]w(0 ) + E x (n ) w 2 (0 ) 2 2 [ ] [ ] [ ] N u tín hi u d và x là b t bi n th ng kê theo th i gian. B k t h!p tuy n tính thích nghi v i m t ngõ vào Ngõ vào và các tr ng s có th c vi t nh là các vector. và ta có th vi t l i: E e 2 (n ) = A − 2 Bw(0 ) + Cw 2 (0 ) [ ] V$i A. th c!a hàm này theo w(0) nh sau: 39 . Ta có y(n) = w(0)x(n) và bình ph ng sai s tr# thành e 2 (n ) = d 2 (n ) − 2d (n )x(n )w(0 ) + x 2 (n )w 2 (0 ) Là m t hàm b c 2 c!a w(0). các k/ v ng c!a tích c!a d và x là h(ng s . B và C là các h(ng s . chúng ta v+n c n m t s ánh giá ch t l ng c!a b l c. n )] Hàm m c tiêu Trong ph n trên chúng ta ã xem xét m t c u trúc c!a b l c mà &c tính có th thay i b(ng cách i u ch%nh các tr ng s . X (n ) = [x(n ) x(n − 1) W (n ) = [w(0. hãy xem xét tr ng h p b l c ch% có m t tr ng s . n ) 4.

t ng t .grad{E[e2]} W (n ) = [w(0.n) là # bên ph i c!a i m c c ti u.n) và c i u ch%nh theo t ng b $c ti n v giá tr c c ti u c!a hàm m c tiêu. tìm c c ti u c!a E e 2 (n ) . b $c nh y ph i âm (nh ng o hàm c!a ng cong là d ng). Chi u dài và h $ng c!a b $c là 2 th c n c xác nh. n ) − β dE e 2 dw(0 ) [ ] V$i 5 là m t h(ng s d ng b t k/. n u giá tr hi n t i # bên trái c!a c c ti u. n + 1) = w(0. &t o hàm c!a E e 2 (n ) theo w(0) b(ng 0. l ng t1ng ph i d ng (nh ng o hàm là âm). Hình 27. d+n n k t qu là m t i m c c ti u c nh: w(0) = B/C Trong th c t . 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.Tài li u thí nghi m X lý s tín hi u Hình 26.β. n )] T 40 . n ) w(K . Tìm i$m c(c ti$u theo m t tr ng s K t qu trên có th Trong ó c t ng quát cho các h th ng có nhi u h n m t tr ng s : W(n+1) = W(n) . M'i b $c s" bao g m vi c thêm m t l ng t1ng nh* vào w(0. tr ng s s" b t u # m t giá tr ban u nào ó w(0. n ) w(1.n). Nh v" trên hình sau. L u ý r(ng n u giá tr hi n t i c!a w(0. %)ng cong m c tiêu 1 tr ng s Chúng ta c n tìm giá tr c!a w(0) t i thi u giá tr k/ v ng c!a sai s trung bình bình ph ng. Do ó chúng ta có: [ ] [ ] w(0.

s" c tr kh*i tín hi u có l+n nhi u. Hãy trình bày gi i thu t LMS ? 3.and sin1500. m t b l c FIR thích nghi s" c th c hi n v$i c u trúc trên hình 27. %sin(312) refnoise(i) = round(100*cos(2*pi*(i-1)*312/8000)). M t trong các ngõ vào c!a b l c thích nghi là tín hi u có c ng nhi u. B ng này c t o b(ng MATLAB.h for i=1:128 desired(i) = round(100*sin(2*pi*(i-1)*1500/8000)). Chu n b# thí nghi m 1.h cos(312). refnoise. Hình 28. Ngõ vào còn l i là tín hi u tham kh o d ng cosine. sine(1500Hz) + sine(312Hz) và cosine(312Hz). t t c các tín hi u c t o ra t b ng. Ti n hành thí nghi m 6.h (s312+s1500). %sin(1500) addnoise(i) = round(100*sin(2*pi*(i-1)*312/8000)). Tín hi u ra c!a b l c là $c l ng c!a tín hi u nhi u sine t n s 312Hz. 5. %cos(312) 41 . Trong thí nghi m này.Tài li u thí nghi m X lý s tín hi u Và ∂P ∂P grad {E[e ]} = grad {P} = ∂w(0) ∂w(1) 2 ∂P ∂w( K ) T 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. chúng ta s d ng b l c thích nghi cho m c ích ó. Ch ng trình MATLAB sau c s d ng t o các giá tr d2 li u cho tín hi u sine(1500Hz). Tóm t t các b $c s" làm th c hi n các ph n thí nghi m sau. Tín hi u tham kh o này s" c l c b#i b l c FIR thích nghi 30 h s .M Generates: dplusn. %Adaptnoise. S thí nghi m Trong thí nghi m này.1 B l c thích nghi dùng $ l c nhi u hình sine Trong thí nghi m này. 6. Th nào là m t b l c thích nghi ? Hãy k m t s ng d ng c!a b l c thích nghi và v" c u trúc b l c thích nghi t ng ng v$i t ng ng d ng ó ? 2. t n s 312Hz và t ng quan v$i tín hi u nhi u hình sine # trên. Chúng ta có m t tín hi u sine t n s 1500Hz b nh h #ng b#i nhi u c ng hình sine t n s 312Hz. Chúng ta c n l c nhi u thu tín hi u mong mu n.

dplusn(1:127)). M t c a s m$i xu t hi n v$i thanh tr t # trên ó. Trong CCS. Sau ó ch n GEL Output signal Output.'short sin1500[128]={').h'. fprintf(fid. 4. fclose(fid). ngõ ra là tín hi u sine mong mu n (t n s 42 Ch . ' .gel.dplusn(128)). 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 ây.'%d. Sau khi quá trình biên d ch thành công. 3. fclose(fid).'%d. fprintf(fid. ' .h: ch a m t b ng 128 – i m t o tín hi u sine mong mu n có t n s 1500Hz Các t p tin này ã c t o s n trong th m c ch a project. hãy m# project AdaptNoise (trong th m c C:\CCStudio_v3. hãy ti n hành thí nghi m theo các b $c sau ây: 1.'}.h'. fprintf(fid. hãy ch y ch ng trình. M# t p tin ngu n chính adaptnoise. %desired sin(1500) fprintf(fid. Ch n File Load GEL n p t p tin out_type. ng trình này s" t o 3 t p tin (trong th m c làm vi c hi n hành c!a MATLAB): • dplusn. ngõ ra là tín hi u sai l ch. • sin1500. fprintf(fid. hãy n p ch ng trình lên kit DSP. fprintf(fid.'}. fid=fopen('sin1500.'}.'short refnoise[128]={'). Trong CCS.'w'). %reference noise fprintf(fid.\n').'w'). fclose(fid). M# Code Composer Studio.c và xem xét gi i thu t LMS c hi n th c nh th nào trong ch ng trình.desired(128)). fprintf(fid.'%d' .'%d' . fprintf(fid.'%d' . fprintf(fid.'%d. %desired + noise fprintf(fid. fprintf(fid.refnoise(1:127)).1\myprojects\AdaptNoise) 2.\n').'w').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.desired(1:127)).\n').h: ch a m t b ng 128 – i m t o tín hi u sine t n s 1500Hz c ng v$i nhi u sine t n s 312Hz.'short dplusn[128]={'). Khi thanh tr t # v trí s 2. 5. fid=fopen('refnoise.h: ch a m t b ng 128 – i m t o tín hi u cosine tham kh o có t n s 312Hz. • refnoise. Khi thanh tr t này # v trí s 1.refnoise(128)). Quan sát ngõ ra c!a kit DSP (ngõ Line Out) v$i ch ng trình DSP Tool.h'.

các b n ã th c hi n xong m t b l c FIR thích nghi nhi u. Hãy biên d ch và ki m tra k t qu . tín hi u ra là u ra c!a b l c thích nghi. Các h s c!a b l c này c ch a trong t p tin bp55. Phác h a d ng sóng t ng ng. 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. Trong CCS. Khi thanh tr t # v trí 1. 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 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. 43 .2 S d ng b l c FIR thích nghi $ nh n d"ng m t b l c FIR c #nh ch%a bi t Trong thí nghi m này. gi s chúng ta có m t h th ng ch a bi t c n c nh n d ng. 1. Bây gi . M# project AdaptIDFIR (# C:\CCStudio_v3.cof. Trong thí nghi m này. M t chu'i nhi u ng+u nhiên c t o ra trong ch ng trình và tr# thành ngõ vào ng th i c!a b l c ch a bi t và b l c FIR thích nghi. Sau ó. Tín hi u này c xem nh tín hi u hu n luy n. 2. t n s trung tâm là 2KHz. Hãy so sánh u ra c!a h th ng thích nghi v$i u ra c!a h th ng ch a bi t. Quá trình thích nghi s" di n ra cho n khi tín hi u sai s c c c ti u hóa.exe).gel.c) include t p tin h s bs55. chúng ta s" dùng m t b l c thích nghi. B l c thích nghi có mô hình hóa thành công b l c FIR ch a bi t hay không? Bài t p 1. Hi n th d ng sóng ra (b(ng cách dùng DSP_Tool. H th ng c n nh n d ng # ây c ch n là m t b l c FIR thông d i có 55 h s .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). tín hi u ra là ngõ ra c!a b l c c nh ch a bi t. Qua ph n trên. Chúng ta s d ng ph ng pháp l c thích nghi cho vi c nh n d ng. biên d ch và ch y l i ch ng trình ki m ch ng k t qu . Hãy s a ch ng trình chính (t p tin AdaptIDFIR.cof. hãy m# ngu n c!a kit và m# Code Composer Studio và th c hi n theo các b $c sau: 1. 3. chúng ta s d ng m t b l c FIR c nh nh là h th ng c n nh n d ng. Gi s lo i nhi u.m t o các tín hi u t ng ng. Tín hi u sai s h i ti p này là s khác bi t gi2a ngõ ra c!a b l c ch a bi t và ngõ ra c!a b l c FIR thích nghi. Hãy v n d ng ki n th c v a h c làm bài t p nh* sau: ng d ng tri t 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. Hãy m# CCS. M t h p tho i có thanh tr t xu t hi n. Bây gi . Khi nó # v trí 2. trong menu GEL. ch n File Load GEL và m# t p tin AdaptIDFIR. Hãy s a ch ng trình MATLAB AdaptNoise. ch n OutputType Output-signal. 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. Chúng ta s" ki m ch ng r(ng b l c thích nghi có th c hu n luy n mô hình cho h th ng ch a bi t này. 6. i u này có ngh0a là chúng ta c n ph i hu n luy n m t b l c thích nghi sao cho khi có cùng tín hi u u vào i qua thì b l c thích nghi này s" cho tín hi u u ra gi ng nh u ra c!a h th ng c n nh n d ng.1\MyProjects\AdaptIDFIR) 2.

ban u. t n s trung tâm là 3KHz. 2. Hãy biên d ch project và ch y ch ng trình trên kit DSP. bi u di n m t b l c FIR thông th p v$i 55 h s .cof. Do ó. Hãy biên d ch ch ng trình và ki m ch ng k t qu t c. B l c FIR này bi u di n cho h th ng ch a bi t c n nh n d ng. 44 .c) include t p tin h s lp55. Sau ó.3 S d ng b l c FIR thích nghi $ nh n d"ng h th ng ch%a bi t. bi t ban u b l c thích nghi %!c kh+i t"o là m t b l c FIR thông d i. N u nh xem tín hi u nhi u ng+u nhiên ngõ vào g n nh là nhi u tr ng thì ta có ph c!a tín hi u ngõ ra s" có d ng c!a áp ng t n s c!a b l c. ta có th quan sát áp ng t n s c!a b l c thích nghi thay i d n thích nghi v$i b l c ch a c!a tín hi u ngõ ra (c!a b l c thích nghi). Trong CCS. B l c c n nh n d ng # ây c ng là m t b l c FIR thông d i 55 h s nh ng v$i t n s trung tâm là 2KHz. M t h p tho i có thanh tr t xu t hi n. Khi nó # v trí 2. các h s c!a b l c FIR thích nghi c kh#i t o b(ng v$i các h s c!a m t b l c FIR thông d i có 55 h s . các giá tr ban u c!a các h s c!a b l c FIR thích nghi c kh#i t o b(ng zero. ch n GEL Output Type Output-signal trên thanh menu. Hãy quan sát d ng sóng u ra c!a b l c thích nghi và b l c FIR c n nh n d ng. Trong thí nghi m tr $c. Hãy s ch ng trình chính (t p tin AdaptIDFIR.gel. 6. hãy m# ngu n c!a kit DSP. Bây gi . Trong thí nghi m này.1\MyProjects\AdaptIDFIRW). ch n File Load GEL và m# t p tin AdaptIDFIR.c) include t p tin h s lp55. 4. B l c FIR này c xem nh h th ng c n nh n d ng. tín hi u ngõ ra là u ra c!a b l c thích nghi. Hãy l u l i m t vài hình v" áp ng t n s c!a b l c thích nghi (trong quá trình thích nghi).Tài li u thí nghi m X lý s tín hi u 2. Sau ó ch y Code Composer Studio và th c hi n theo các b $c sau ây: 1. tín hi u ngõ ra là u ra c!a b l c ch a bi t. L%u ý: ch n File Reload program ch y l i t u quá trình thích nghi c a b l c. Chúng ta s" th y b l c thích nghi s" thay i d n t m t b l c thông d i t n s trung tâm 3KHz thành m t b l c thông d i t n s trung tâm 2KHz. bi u di n m t b l c FIR thông th p có 55 h s . M# project AdaptIDFIRW (trong C:\CCStudio_v3.cof. 3. 5. Bài t p Hãy s a ch ng trình chính (t p tin AdaptIDFIR. Hãy biên d ch và ki m tra k t qu . Hãy bi t b(ng cách quan sát ph biên th c hi n vi c quan sát này trên DSP_Tool và l u 5 hình cho th y quá trình thích nghi c!a b l c. Khi thanh tr t # v trí 1. ch a trong t p tin bp3000.cof.

m t d ng sóng hình sine cao t n cs d ng làm sóng mang. Thi t b có th th c hi n c hai quá trình g i là modem. trong m t s tr ng h p. 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.CH I/U CH S KIT C6713 DSK 1. 2. 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. 4. TRÊN 2. Ba thông s c!a m t sóng sine là biên . còn g i là mã hóa ng truy n. 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.1 Các k0 thu t i u ch t% ng t( Trong i u ch t ng t . Th c hi n m t s m ch i u ch s trên kit C6713. Kh o sát m t s k. 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. 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. Thi t b# thí nghi m STT 01 02 03 04 Máy vi tính Kit C6713 DSK Máy phát song B dây n i tín hi u Tên thi t b# S l%!ng 01 01 01 01 3.sideband modulation (DSB) 45 . Thông th ng. Các k. trên m t kênh truy n t ng t bandpass. 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). thu t i u ch t ng t thông d ng g m: • i u ch biên : o Double . M c ích thí nghi m 1. 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 . thu t i u ch s . 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.Tài li u thí nghi m X lý s tín hi u BÀI 6: TH*C HI N M T S M. M c ích c!a các ph ng pháp i u ch s d i n n (baseband). nh là m t chu'i bit trên m t h th ng truy n thông s khác. Trong khi ó. 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 . ví d nh tín hi u âm t n. C s+ lý thuy t 4.

m t sóng mang t ng t c i u ch b#i m t chu'i bit c!a tín hi u thông tin. Trong tr ng h p PSK. m'i pha. m'i ký hi u bi u di n m t thông i p g m N bit. Các k. Chu'i bit c chia 46 . Tín hi u thu c là k t h p c!a PSK và ASK. ASK và QAM. • Trong FSK.Tài li u thí nghi m X lý s tín hi u AM modulation Double – sideband suppressed-carrier (DSB – SC) Single – sideband modulation (SSB) Vestigial sideband modulation (VSB) Quadratude amplitude modulation (QAM) u ch góc: Frequency modulation (FM) Phase modulation (PM) • o o o i o o 4. N u b ký hi u (symbol) g m M = 2N symbol khác nhau. Polar modulation: gi ng QAM. b ký hi u i u ch th ng c bi u di n trên m t gi n d ng chòm sao (constellation diagram). N u t c ký hi u (hay t c baud) là fs symbols/s (ho&c baud). biên ho&c t n s mã hóa m t s l ng bit b(ng nhau. OFDM d a trên ý t #ng c!a FDM nh ng s d ng m t d ng i u ch s . thu t i u ch s c b n nh t bao g m: • • • • • • Phase – shift keying (PSK) Frequency – shift keying (FSK) Amplitude – shift keying (ASK) và d ng th ng g&p c!a nó là On – off keying (OOK) Quadratude Amplitude Modulation (QAM): m t k t h p c!a PSK và ASK. M'i giá tr pha. Thông th ng. m t tín hi u cùng pha (tín hi u I. • Trong ASK. S thay i c!a tín hi u sóng mang c ch n t m t s h2u h n các ký hi u (symbol). là k t h p c!a PSK và ASK. biên ho&c t n s c gán m t chu'i bit nh phân duy nh t. m t t p h p h2u h n các pha c s d ng. ví d d ng sóng cosine) và m t tín hi u vuông pha (tín hi u Q.2 Các k0 thu t i u ch s Trong i u ch s . ví d d ng sóng sine) c i u biên v$i m t s l ng h2u h n các m c biên (ASK). • Trong QAM. S bit này t o thành m t ký hi u (symbol) c bi u di n b#i m t pha c th . m t t p h p h2u h n các biên c s d ng. • Trong PSK. bi u di n biên c!a tín hi u I trên tr c X và biên c!a tín hi u Q trên tr c Y. t c d2 li u là N×fs bps. Continuous phase modulation (CPM) o Minimum shift keying (MSK) o Gaussian minimum – shift keying (GMSK) Orthogonal frequency division multiplexing (OFDM) modulation Wavelet modulation Trellis coded modulation (TCM) hay còn g i là trellis modulation • • • MSK và GMSK là các tr ng h p &c bi t c!a i u ch pha liên t c (CPM). m t t p h p h2u h n các t n s c s d ng.

Các ví d th ng g&p là unipolar. b(ng cách i u ch m t chu'i xung (m t sóng vuông). OFDM có th c m# r ng thành m t ph ng pháp a truy c p trong OFDMA. 4. PAM ít c s d ng và h u nh c thay th b#i PCM và PPM. s d ng m t s r i r c các m c tín hi u. ví d nh -3V. ví d nh m t vài line code. Các sub-carrier c t ng h p thành m t ký hi u OFDM. Các ph% ng pháp i u ch xung Các ph ng pháp i u ch xung nh(m truy n m t tín hi u t ng t b1ng h6p trên m t kênh truy n thông th p nh m t tín hi u c l ng t hai m c. Các ph ng pháp này bao g m: • Pulse code modulation (PCM): i u ch xung mã • Pulse – width modulation (PWM): i u ch r ng xung • Pulse – amplitude modulation (PAM): i u ch biên xung • Pulse – position modulation (PPM): i u ch v trí xung • Pulse – density modulation (PDM): i u ch m t xung • Sigma – delta modulation (DM) • Adaptive delta modulation (ADM) Tr i ph tr c ti p (DSSS – direct-sequence spread spectrum) d a trên i u ch PAM. hai ph ng pháp i u ch s xung (PAM) và i u ch pha (PSK). thu t QAM. thu t bi n i A/D. T t c các modem i n tho i nhanh h n 300 bps s d ng k. 4. 47 . Ví d : m t b i u ch 2 bit (PAM – 4) s" l y 2 bit m t và ánh x biên tín hi u thành m t trong b n m c.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. thu t i u ch s thông th ng.4 Trong bài thí nghi m này. b(ng cách i u ch m t chu'i xung. c th c hi n là i u ch biên 4. 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. m'i chu'i c truy n trên m t sub-carrier s d ng các k. Chúng không ph i là cácd ng i u ch theo ngh0a thông th ng do chúng không ph i là các ph ng pháp mã hóa kênh (channel coding) mà nên c xem nh là mã hóa ngu n (source coding) và trong m t vài tr ng h p c xem nh các k. Manchester và AMI (alternate mark inversion). non-return-to-zero (NRZ). 1V và 3V. -1V. 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. OFDM c xem nh m t k. có th c truy n trên m t h th ng thông tin s bên d $i.5 i u ch biên xung (PAM) i u ch biên xung (PAM) là m t d ng i u ch tín hi u trong ó thông tin c mã hóa trong biên c!a m t chu'i xung. M t vài d ng i u ch xung c ng cho phép tín hi u t ng t b1ng h6p c truy n nh m t tín hi u s v$i m t t c bit c nh. Hi n nay. là t p truy n m t chu'i bit trên m t kênh truy n t ng t thông h p các ph ng pháp th p. Gi i i u ch c th c hi n b(ng cách c m c biên c!a sóng mang t i m'i chu k/ ký hi u.3 i u ch s d i n n (Digital baseband modulation) Thu t ng2 i u ch s d i n n ng ngh0a v$i mã hóa ng truy n (line coding).

+90°. +90°. Gi n constellation c a PAM 8 m c Tám i m trên gi n chu'i 3 bits. v+n s d ng PAM 5 m c cho m'i c&p dây. các pha s d ng có th là 0°. -135° và 180° và m'i l n d ch pha bi u di n 8 bits/symbol. m'i s d ch pha có th bi u di n 2 bits/symbol. -45°. H th ng PAM Chu'i bit vào c x lý thành các t dài J bits. Trong i u ch 4 pha. Ví d . thu t &c bi t c s d ng gi m nhi u liên ký t gi2a các c&p không dây. M t k. này bi u di n cho 8 m c v$i m'i m c c bi u di n b(ng m t 4. Trong i u ch 8 pha. chu)n giao ti p Ethernet v+n s d ng PAM. D $i ây là s kh i c!a m t h th ng PAM n gi n (b* qua b cân b(ng thích nghi và b ph c h i xung clock). các góc pha có th dùng là 0°. Các m c này các u nhau trên gi n constellation và i x ng quanh m c zero nh trên hình sau: Hình 30. Hình 29. +135°. M t vài ph ng pháp có th s d ng th c hi n PSK. cho phép d2 li u nh phân truy n # t c d nhanh h n. Các d ng ph c t p h n c!a PSK s d ng 4 ho&c 8 pha. khi J = 3 thì s" có 8 m c. 1000BASE-T nâng lên s d ng 4 c&p dây d+n # t c 125 megapulses/s tt c d2 li u 1000 Mb/s.6 i u ch d#ch pha (PSK) PSK là m t ph ng pháp truy n nh n tín hi u s trong ó pha c!a tín hi u truy n i c thay i mang thông tin. J bits này c ánh x thành m t trong 2J m c. n gi n nh t là PSK nh phân (BPSK) ch% s d ng hai pha c!a tín hi u: 0° và 180°. +45°. -90°. 90° và 180°. Ví d . 100BASE-T2 Ethernet (# t c 100Mb/s) s d ng i u ch PAM 5 m c ch y # t c 25 megapulses/s trên 2 c&p dây d+n.Tài li u thí nghi m X lý s tín hi u Tuy nhiên. 48 . Sau ó.

Hãy v" gi n constellation ng v$i i u ch PAM 16 m c. Tóm t t các b $c s" làm th c hi n các ph n thí nghi m sau. Gi i thu t i u ch M'i m+u vào i u ch g m 16 bits. b(ng cách thay i m t thành ph n ng pha (I) và thành ph n vuông pha (Q). Do có t t c 4 kh n1ng x y ra khi k t h p các bit d2 li u trong m t c&p (00. B thu gi i i u ch tín hi u và nhìn # ký hi u khôi ph c c xác nh c&p bit nào ã c g i i. c g i là tín hi u in-phase và quadratude. sóng mang c i u ch b#i d2 li u. H th ng truy n QPSK s d ng c sóng sine và cosine làm sóng mang truy n 2 tín hi u thông i p. s" c g i qua kênh truy n sau khi i u ch sóng mang. i u này òi h*i m t ký hi u duy nh t cho m'i s k t h p c!a các bit d2 li u trong m t c&p. C hai tín hi u này u c khôi ph c # phía thu. m ch i u ch PAM 4 m c. 6. Có 4 pha. Hãy xem xét tr ng h p PAM 16 m c (16-PAM). Trong ó. Hãy v" hình minh h a quá trình i u ch PAM m t tín hi u hình sine và gi i thích? Hãy tìm m t s ng d ng c!a i u ch PAM. PPM. QPSK t o ra 4 ký hi u khác nhau. K t qu c l c thông th p thu c tín hi u PCM. m t m&t n (mask) thích h p c s d ng. ngõ ra c!a nó c nhân v$i ngõ vào. t 1 sang 0 hay t 0 sang 1.n trong m t project giúp hi u rõ v gi i thu t th c hi n. 11). PCM. 8 m c và 16 m c s" cl nl t th c hi n trên kit DSP. g i là m t ký hi u (symbol).6. sinh viên s" t th c hi n m ch i u ch PAM 8 m c và 16 m c. Phân bi t (ng n g n) các ph ng pháp i u ch xung: PAM. Ti n hành thí nghi m 6. Do dó.M t b bình ph ng t o ra m t thành ph n DC và m t thành ph n # t n s 2fc . 4. cho pháp truy n d2 li u v$i l ng thông tin g p ôi # cùng t n s sóng mang.2 Quadratude Phase Shift Keying (QPSK) c i u ch trong khi t n s và biên QPSK là m t d ng i u ch trong ó pha c gi2 c nh. 10.1 Th(c hi n m"ch i u ch PAM trên kit C6713 DSK Trong thí nghi m này.6. Chu n b# thí nghi m 1. M'i c&p bit c bi u di n b#i m t d ng sóng c th . PWM 4. 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. m'i ký hi u cho m'i c&p. 2.1 i u ch pha nh phân (BPSK) M t kênh d2 li u i u ch sóng mang. BPSK và QPSK 3.M t b chia t n s . Gi i i u ch BPSK s d ng các b $c sau: . 01. Các pha này th ng c g i là các tr ng thái (state) và c bi u di n b#i m t c&p bit. QAM. Tùy vào lo i i u ch PAM. M t s chuy n bit. t ct c ký hi u 49 . m ch i u ch 4 m c ã c th c hi n s. Sau ó. m'i pha cách nhau 90°.Tài li u thí nghi m X lý s tín hi u 4. t o ra m t s d ch pha 180° ( o pha) c!a sóng mang. Trong tr ng h p này. sI[n] và sQ[n]. 5.M t b l c thông d i tách thành ph n t n s 2fc .

Nh v y.0x4CCD . m'i m+u vào s" g m 4 o n. 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). B ng tra PAM 16 m c Kh i ký hi u M c i n áp (bi$u di n d"ng s Hex) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0x7FFF 0x6EEE 0x5DDD 0x4CCC 0x3BBB 0x2AAA 0x1999 0x0888 . m+u vào c chia làm các o n dài 4 bits.0x8000 Ví d . ch% 4 bit cu i c!a m+u c gi2 l i. Do m'i ký hi u có chi u dài 4 bit nên s" có t t c 16 ký hi u. 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.0x5DDE . 1110 (sau khi l c m&t n l y 4 bit LSB) c ánh x thành m c -0x6EEF. 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 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 . Kho ng cách gi2a các m c c ch n là 0x111 có kho ng cách u nhau. d ch và b ng tra. khi AND m t m+u v$i m&t n này. 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. M c i n áp c ch n sau ó s" c truy n i nh m t sóng vuông. 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 . t o thành 1 ký hi u). m+u vào là 0xA52E (10100101 00101110). 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 mong mu n.0x199A .0x6EEF . i v$i 8-PAM. Khi ó.0x2AAB . 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. 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.0x3BBC .0x0889 .

0x36DB . C p ngu n i n cho kit và ch y ch ng trình Code Compose Studio trên máy tính. 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.Tài li u thí nghi m X lý s tín hi u c!a 3. -0x8000}.0x1249 . 0x2AAA.0x2AAB .0x5B6D . B ng tra PAM 8 m c Kh i ký hi u M c i n áp (d"ng s Hex) 000 001 010 011 100 101 110 111 0x7FFF 0x5B6D 0x36DB 0x1249 . ây là t p tin ch a mã ngu n chính c!a ch ng trình. int j_PAM. B ng tra PAM 4 m c Kh i ký hi u M c i n áp (d"ng Hex) 00 01 10 11 0x7FFF 0x2AAA . -0x2AAB.h> //Initialization: int i_PAM. 3. Trong c a s File View.1\MyProjects\PAM4\. output. 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. M# project PAM4 # folder C:\CCStudio_v3.c m# nó ra. int masked_value. int k. 51 .h" Uint32 fs=DSK6713_AIC23_FREQ_8KHZ.0x7FFF Ch ng trình th c hi n Hãy th c hi n theo các b $c sau: 1.0x8000 B ng 3. int data_4PAM[4] = {0x7FFF. N i dung c!a t p tin này nh sau: // PAM #include "DSK6713_aic23. 2. #include <math. double click lên t p tin PAM4.

M+u d2 li u này bi u di n # d ng s nguyên 16 bit có d u. //inputs data i_PAM=0. Do ó. output_sample(output). } i_PAM++. m+u d2 li u vào s" c chia ra làm 8 ký hi u (symbol). //repeated output counter if (j_PAM==12) { j_PAM=0. B ng này có 4 52 . th c hi n vi c chia này. } void main() { i_PAM=0. mà bi u di n c 4 m c thì c n 2 bit. //interrupt service routine if (i_PAM==96) { sample_data = input_sample(). sample_data = sample_data >> 2.Tài li u thí nghi m X lý s tín hi u int out_buffer[256]. output = data_4PAM[masked_value]. if (i==256) i = 0. return. Do # ây th c hi n i u ch PAM 4 m c. } masked_value = sample_data & 0x0003. McBSP //infinite loop Trong ch ng trình này. comm_intr(). m'i ký hi u 2 bit. 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. 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. int i=0. 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). j_PAM++. } //init DSK. 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 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. while(1). Khi có tín hi u xung l y m+u (t n s 8KHz). codec. interrupt void c_int11() { int sample_data. j_PAM=0. out_buffer[i++] = output.

Sau ó s" c vào m+u k ti p và th c hi n i u ch .0x2AAB m c i n áp -0x2AAB c xu t ra 12 l n . 1. 6.M!i symbol g"m 3bits. Th c hi n các bài t p sau trên folder m i không làm nh h ng n ph n ã làm.S$ d ng b ng tra ng v i 8-PAM khai báo các m c áp ra t ng ng 2. 7. Sau khi biên d ch thành công. hãy th c hi n m ch i u ch PAM 16 m c trên kit 53 .Ti p theo: sample_data d ch ph i 2 bit 00000000 00000110 + Sample_data AND 0x0003 = 00000000 00000010 ( = 2) + data_4PAM(2) = . 0x2AAA. Lúc này. 4. m'i l n xu t 12 l n s l n xu t t ng c ng i_PAM = 8 x 12 = 96 l n. Hãy s a câu l nh sample_data = input_sample( ) thành sample_data = 0x???? (m t giá tr b t k/ 16 bit d ng s hex) r i biên d ch.V" l i d ng sóng xu t ra trong CCS. Ch n Project Rebuild All biên d ch ch ng trình. . n p và ch y l i ch ng trình. + data_4PAM(3) = . Bi n m j_PAM ms l n xu t ra cho ! 12 l n. ta có 8 symbol. nh v y s l n xu t ra ng v$i m'i m+u là 8 x 12 = 96 c th hi n b#i bi n m i_PAM. Do m u vào có 16 bits. c n b# 1 bits LSB (b ng cách d ch ph i sample_data 1 bit) còn l i 15 bits là b i s c a 3 và m!i m u s t o ra 5 symbols. d ng sóng thay i liên t c nên k t qu ra khó ki m ch ng. n p ch ng trình lên kit (File Load Program) và ch y th ch ng trình. -0x2AAB. u tiên: sample_data = 00000000 00011011 + Sample_data AND 0x0003 = 00000000 00000011 (= 3). m+u vào là giá tr c nh do nh p vào và d ng sóng xu t ra s" d dàng ki m ch ng h n. cho d ng sóng xu t ra sau khi qua b A/D có d ng sóng vuông.Quá trình ti p t c cho n khi h t 16 bit c!a m+u vào.0x8000 m c i n áp – 0x8000 c xu t ra 12 l n . t c là d ch 8 l n. Hãy th m t vài giá tr nh p vào và v" d ng sóng xu t ra. M'i symbol s" cho ra 1 m c i n áp. Ví d : M+u vào có giá tr 0x001B (t c là 00000000 00011011). G i ý: . . Do # ây s d ng máy phát sóng. . M'i symbol s" xu t ra 12 l n. Ch%nh s a l i ch ng trình trên th c hi n i u ch PAM 8 m c. -0x8000) c khai báo # u ch ng trình. m t b m n i out_buffer có kích th $c 256 m+u c dùng l ul i giá tr xu t ra nh(m ph c v cho vi c v" tín hi u xu t ra b(ng công c Plot trong CCS (xem ph n h $ng d+n v" th trên CCS). ng v$i m'i m+u vào 16 bit. (2) quan sát tín hi u xu t ra # ngõ ra Line Out c!a kit b(ng Oscilloscope. T ng t . m'i m c s" c xu t ra 12 l n tr $c khi chuy n sang m c ng v$i symbol k ti p. Bài t p Hãy chép toàn b Folder PAM4 sang m t Folder m i và t tên tùy ý. Nh v y. M# máy phát sóng lên và quan sát d ng sóng xu t ra.M tn l y 3 bit LSB là 00000000 00000111 (0x0007) . M+u này u tiên c ch a vào bi n sample_data.ây. 5.Tài li u thí nghi m X lý s tín hi u giá tr ng v$i 4 m c i n áp (0x7FFF.ây hãy quan sát theo 2 cách: (1) s d ng Code Compose Studio v" các giá tr c!a b m n i out_buffer.

int masked_value.c m# ra. 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. output. Sau khi c t m+u vào thành các o n nh trên. 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. Trong BPSK. m t m+u vào c l y vào. i v$i BPSK. m t m&t n thích h p c s d ng. 3. 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. c m'i 64 m+u ra (v$i BPSK) ho&c 32 m+u ra (v$i QPSK). ch a 16 bits. hai b i u ch PSK s" QPSK.Tài li u thí nghi m X lý s tín hi u Trong ph n báo cáo. Trong c a s File View. M'i m+u vào c bi u di n b(ng 16 bits. i v$i QPSK. m+u vào c chia thành 8 dibits (m'i dibit g m 2 bits). int j_BPSK. 1000. //0 degree 54 . double click chu t lên t p tin BPSK. Sau ó. //Data table for BPSK int data_BPSK[2][4]={0. ây là t p tin ch a mã ngu n ch ng trình. int out_buffer[256].1\MyProjects\BPSK\. Tuy nhiên. Ch ng trình th c hi n Hãy th c hi n theo các b $c sau: 1. M'i m+u s" g m 16 o n (v$i BPSK) và 8 o n (v$i QPSK). chúng ta c n 4 pha (0°. M# project BPSK # folder C:\CCStudio_v3. 180° và 270°) ng v$i 00.h> //Initialization: int i_BPSK. 2. 90°. 6. Tùy theo ki u i u ch PSK (2 pha hay 4 pha). #include <math. int k. N i dung ch ng trình này nh sau: //BPSK #include "DSK6713_aic23. 01. m'i thành ph n 1 bit. -1000. c th c hi n là PSK nh phân và 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$. m'i giá tr m+u vào c chia ra làm 16 thành ph 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. Gi i thích và v m t vài d ng sóng i u ch thu c ki m ch ng. C p ngu n i n cho kit và ch y ch ng trình Code Compose Studio trên máy tính. ch% c n ph n mã ngu"n ng v i gi i thu t i u ch .h" Uint32 fs=DSK6713_AIC23_FREQ_8KHZ. 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. int i=0. ch% có 2 pha là 0° và 180° ng v$i bit 0 và bit 1. v$i QPSK. 0. 11 và 10.2 Th(c hi n m"ch i u ch PSK trên kit C6713 Trong bài thí nghi m này.

while(1). m'i l n mu n xu t sóng sine. //180 degree interrupt void c_int11() { int sample_data. output = data_BPSK[masked_value][j_BPSK]. out_buffer[i++] = output*10. //inputs data i_BPSK=0. 1000}. if (i==256) i = 0. m'i symbol ch% g m 1 bit ( phân bi t 2 pha 0° và 180° ch% c n 1 bit). do ó. } //infinite loop Hàm main( ) s" &t 2 bi n m i_BPSK = 64 và j_BPSK = 0. Do ó. Ví d : M+u vào là 0x0003 c AND v$i m&t n 0x0001 cho ra bit 1. j_BPSK++. } void main() { i_BPSK=64. //repeated output counter if (j_BPSK==4) { j_BPSK=0. output_sample(output*10). sample_data = sample_data >> 1. Trình ph c v ng t s" c m t m+u d2 li u # ngõ vào. 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. return. Tùy bit này là 0 hay 1 mà xu t ra d ng sóng sine có pha t ng ng. 55 . j_BPSK=0. } masked_value = sample_data & 0x0001. Khi có xung l y m+u. } i_BPSK++.Tài li u thí nghi m X lý s tín hi u 0. ch ng trình s" xu t ra 4 giá tr th hi n 1 chu k/ c!a sóng sine. M+u này c bi u di n b(ng 16 bit. 0. comm_intr(). Khi i u ch BPSK. -1000. d ng sóng sine xu t ra có pha 180°. sóng sine c t o ra b(ng 4 i m. ng t 11 c kích ho t và trình ph c v ng t c_int11( ) c g i. //interrupt service routine if (i_BPSK==64) //determines when to get new input { sample_data = input_sample().ây. kh#i ng kit và b codec r i ch y m t vòng l&p vô t n. j_BPSK=0. .

1000. T/4. M# máy phát sóng lên và quan sát d ng sóng xu t ra. . n p và ch y l i ch ng trình. t i th i i m 0.ây hãy quan sát theo 2 cách: (1) s d ng Code Compose Studio v" các giá tr c!a b m n i out_buffer. Hãy th m t vài giá tr nh p vào và v" d ng sóng xu t ra.V" l i d ng sóng xu t ra trong CCS. 5.Tài li u thí nghi m X lý s tín hi u Trong ch ng trình trên. T/2 và 3T/4 (T là chu k/). N u thành công. . ây là 1 m ng 2 chi u kích th $c 2x4 th hi n 2 d ng sóng sine: pha 0° là {0. các giá tr c khai báo trong bi n data_BPSK[2][4]. Giá tr này th hi n biên trong 1 chu k/. m'i symbol s" t o ra 1 chu k/ sóng sine g m 4 i m. 4. 0. trình bày ph n mã ngu n ng v i gi i thu t i u ch (ph n t th c hi n). Bài t p Hãy chép toàn b folder BPSK sang m t folder m$i và &t tên là QPSK. Ch%nh s a l i ch ng trình th c hi n i u ch QPSK. data_QPSK[4][4] thay cho data_BPSK và s$a l i tên bi n cho phù h p. 56 . n p ch ng trình ã biên d ch lên kit ch y th . . Nh v y. Hãy s a câu l nh sample_data = input_sample( ) thành sample_data = 0x???? (m t giá tr b t k/ 16 bit d ng s hex) r i biên d ch. 7. m'i m+u vào 16 bit có 16 symbol. do ó v$i m'i m+u vào. Trong ph n báo cáo. 90°. d ng sóng thay i liên t c nên k t qu ra khó ki m ch ng.M!i symbol g"m 2 bit. do ó c n s$ d ng m t n thích h p l y 2 bit LSB và m!i l n d ch 2 bit. m+u vào là giá tr c nh do nh p vào và d ng sóng xu t ra s" d dàng ki m ch ng h n. Sau ó biên d ch và ch y trên kit ki m ch ng k t qu th c hi n. G iý: i u ch QPSK c n 4 pha: 0°. 6. Sau khi xu t ra ! 4 i m. m!i sóng sine có 4 i m. 180° và 270° nên c n khai báo 1 m ng 4 x 4: t tên m ng là 4 sóng sine l ch pha nhau 90°. Lúc này. 0. 1000}. -1000. m+u vào c d ch sang ph i 1 bit và l y m&t n bit LSB. c!a sóng sine 1000} và pha 180° là {0. Biên d ch ch ng trình.Thay &i bi n m cho thích h p vì m!i m u vào ch% g"m 8 symbols. (2) quan sát tín hi u xu t ra # ngõ ra Line Out c!a kit b(ng Oscilloscope. L&p l i nh v y cho n h t chi u dài c!a m+u. Do # ây s d ng máy phát sóng. ch ng trình xu t ra 4 x 16 = 64 m+u ra và bi n m i_BPSK giúp xác nh khi nào c phép l y m+u vào k ti p. Gi i thích nh ng gì ã làm và v m t vài d ng sóng i u ch thu c ki m ch ng.

[3] J. MacMillan Publisher.org/wiki/ ) 57 . [4] The Wikipedia ( http://en. Inc. John Wiley & Sons. 2005. ng. Introduction to Digital Signal Processing. D.Tài li u thí nghi m X lý s tín hi u Tài li u tham kh o [1] Rulph Chassaing . 1989. Nhà xu t b n i h c Qu c Gia TP.wikipedia. [2] Lê Ti n Th 2004. Digital Signal Processing and Applications with the C6713 and 6746 DSK. HCM. X$ lý s tín hi u & Wavelet. Manolakis. Proakis.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->