You are on page 1of 20

TRNG I HC BCH KHOA H NI

VIN IN T - VIN THNG




BO CO BI TP LN
MN X L S TN HIU
ti:
M ha, truyn v gii m tn hiu m thanh thi
gian thc trn Matlab
Sinh vin thc hin: L Vn Thun 20092625
Hong Nam Phong 20092004
Lp TVT3 K54
M lp : 46340
Ging vin hng dn : ThS. Trn Mnh Hong
GV Ngha



H Ni, 11-2012

2



Mc lc
PHN A :M u ........................................................................................................................................... 3
PHN B: Ni dung ........................................................................................................................................ 4
I. Phn mm Matlab trong mi trng Windows .................................................................................... 4
1) Matlab l g ....................................................................................................................................... 4
2) MATLAB System ................................................................................................................................ 4
3) Tng quan mi trng lm vic ca Matlab ..................................................................................... 5
II. Ni dung bi tp ln ............................................................................................................................. 6
1) Khi lng t ha tn hiu ................................................................................................................ 7
2) Nn tn hiu ...................................................................................................................................... 9
3) Khi Integer to Bit Converter .......................................................................................................... 10
4)Khi m chp ................................................................................................................................... 10
5) Khi iu ch QPSK ......................................................................................................................... 12
6) Knh truyn cng nhiu AWGN (ADDITIVE WHITE GAUSSIAN NOISE) ........................................... 13
7) Khi gii iu ch QPSK .................................................................................................................. 14
8) Khi gii m m chp ...................................................................................................................... 15
9) Khi gii m Bit to Integer Converter ............................................................................................. 15
10) Khi gii m lng t ha DPCM .................................................................................................. 16
11) Khi gin tn hiu .......................................................................................................................... 16
12) Kho st t l li bit trong ng truyn ..................................................................................... 17
PHN C:KT LUN ............................................................................................................................... 20






3

PHN A :M u

X l tn hiu s (Digital Signal Processing -DSP) hay tng qut hn, x l tn hiu ri rc
theo thi gian (Discrete-Time Signal Processing -DSP) l mt mn hc c s khngth thiu
c cho ngnh in t - Vin thng... Tn hiu lin tc theo thi gian (tn hiu tng t) cng
c x l mt cch hiu qu theo qui trnh: bin i tn hiu tng t thnh tn hiu s (bin i
A/D), x l tn hiu s (lc, bin i, tch ly thng tin, nn, lu tr, truyn,...) v sau , nu
cn, phc hi li thnh tn hiu tng t (bin i D/A) phc v cho cc mc ch c th. Cc
h thng x l tn hiu s, h thng ri rc, c th l phn cng hay phn mm hay kt hp c
hai. X l tn hiu s c ni dung kh rng da trn mt c s ton hc tng i phc tp. N
c nhiu ng dng a dng, trong nhiu lnh vc khc nhau. Nhng cc ng dng trong tng lnh
vc li mang tnh chuyn su. C th ni, x l tn hiu s ngy nay tr thnh mt ngnh
khoa hc ch khng phi l mt mn hc.
S pht trin ca ca cng ngh vi in t v my tnh cng vi s pht trin ca thut ton
tnh ton nhanh lm pht trin mnh m cc ng dng ca X L S TN HIU (Digital
Signal Proccessing). Hin nay, x l tn hiu s tr thnh mt trong nhng ng dng c bn
cho k thut mch tch hp hin i vi cc chip c th lp trnh tc cao..
Trong lnh vc x l tn hiu m thanh,ting ni th ng dng ca x l s tn hiu l rt rng,
trong c: nhn dng ting ni, ngi ni; tng hp ting ni, bin vn bn thnh ting ni; k
thut m thanh s ;Do vy nhm em chn ti 4: M ha, truyn v gii m tn hiu m
thanh thi gian thc Matlab thc hin bi tp ln.
Nhm em xin gi li cm n n thy Trn Mnh Hong v Anh Ngha trc tip hng
dn, gip chng em hon thnh bi bo co ny.









4

PHN B: Ni dung
I. Phn mm Matlab trong mi trng Windows
1) Matlab l g
MATLAB l mt cng c tnh ton ton hc. MATLAB c th c sdng tnh ton, n
cng cho php chng ta v cc biu , th theo nhiu cch khc nhau. Ging nh mt
chng trnh phn mm, chng ta c th to, thc thi v lu mt dy cc lnh my tnh c th
chy t ng.
Matlab cn l mt ngn ng lp trnh cp cao cho mc ch tnh ton k thut. Chng trnh
tch hp tnh ton, ha v lp trnh trong mt mi trng s dng m tt c cc vn li
gii c biu din di dng cc ghi ch ton hc.
Matlab l mt h thng tng tc m tt c cc phn t d liu c bn l mt mng khng yu
cu v mt kch thc. y l mt thun li cho php ngi s dng gii quyt cc bi ton
trong k thut, c bit vi tn hiu m thanh c tn s ly mu ln nn s mu cn x l l rt
ln.
Tm li, nh l mt mi trng dng lp trnh hay tnh ton, MATLAB c thit k
lm vic vi nhng tp d liu c bit chng hn nh ma trn, vector, hnh nh hay tp m
thanh.
2) MATLAB System
Matlab gm 5 thnh phn chnh l:
- Development Environment: Tp hp tt c cc cng c v nhng tin ch cho php
ngi dng s dng cc hm v file Matlab. Phn ln cc cng c ny l giao tip ngi
dng bao gm: Matlab Desktop v Command Window, Command History, Edit and
Debugger, Workspace, trnh duyt h tr s dng help.
- The MATLAB Mathematical Function Library: y l th vin tp hp cc gii thut
tnh ton c tp hp trong cc hm c bn nh: sum,sin,cosin,..v s phc cho n cc
hm phc tp nh: nghch o ma trn, tr ring v cc vecto ring ca ma trn, bin i
Fourier ri rc...
- Lp trnh trong mi trng Matlab: Lp trnh vi Matlab. Matlab l ngn ng lp trnh
cp cao thc thi theo cc on lnh, cc hm, cu trc d liu,.. cho php xy dng cc
chng trnh t n gin n phc tp.
- Graphics: Matlab m rng cc kh nng cho vic th hin vector v ma trn di
dng th cng nh k hiu v in n chng. Matlab cung cp cc hm nng cao cho vic
th hin d liu 2,3 chiu, x l nh, m thanh, chuyn ng, th. Ngoi ra Matlab cn
cung cp cho ngi s dng cc hm giao tip gia ngi dng v ng dng.

5

- The Matlab Application program Interface(API): y l th vin cho php ngi
dng to ra nhng chng trnh bng ngn ng C hoc Fortran tng tc vi Matlab
3) Tng quan mi trng lm vic ca Matlab
Giao din chnh ca phn mm

Khi ng Matlab bng cch nhy p vo biu tng Matlab trn mn hnh.
Mun thot ra khi chng trnh nhp lnh exit trong Command Window hoc chn Exit t
Menu File trn Desktop.
Khi khi ng Matlab giao din chnh s m ra nh hnh trn, giao din ny cha cc cng
c(giao tip vi ngi dng) qun l tp tin, bin v cc ng dng ph tr khc.
Command Window.
Help Browser.
Current Directory Browser
Command history
WorkSpace Browser
Editor/Debugger

6

Prfiler

II. Ni dung bi tp ln
ti: M ha, truyn v gii m tn hiu m thanh thi gian thc Matlab
S khi ca qu trnh thc hin:

Tng quan:
Do tn hiu m thanh thu c trn my tnh c ly mu vi chu k ly mu cho trc
nn ta b qua khi ly mu.
Tn hiu sau khi lng t ha c cc ch s Index v Quant_out. M ha cc Index bng b
m ha Integer to Bit Converter, sau cho cc bt nh phn i qua b m ha bng m chp
(Convolutional Encoder) vi tc R = ngha l s bt ra gp 2 ln s bit u vo. Tip tc
iu ch QPSK tn hiu trc khi a ln knh truyn cng nhiu AWGN Channel. Thc hin
gi m ln lt QPSK, m chp, m nh phn l lng t ha ta s c tn hiu tn hiu c c
tn hiu bn thu.
S dng cc lnh sau c vo 1 file m thanh wav:
[filename,pathname]=uigetfile('*.wav');
[signal Srate nBits] = wavread([pathname,filename]);

7


signal l mt ma trn lu d liu m thanh; nu wav-file l mono th signal l vector ct, cn
stereo th n l ma trn c 2 ct.
Srate l tc ly mu ca file ny.
nBits l s bit dng lu mt mu d liu.
filename a vo l file Test.wav i km.
Kho st tn hiu a vo:
Mp = max(signal);
bits = 8;%Dng 8 bit m ha 1 mu
levels = 2^bits;%So mau 8 bit m ha c
step_size = (2*Mp)/levels;%Bc nhy cho mi khong
codebook = [-Mp+step_size:step_size:Mp]; % S i din cho mi khong trong phn
%partition
partition = [-Mp+2*step_size:step_size:Mp] %Chia tn hiu thnh 256 khong
%Chia tn hiu thnh cc frame, mi frame c cha 1024 mu
frame = reshape(signal,1024,length(signal)/1024);
%frame l mt ma trn c 1024 hng v length(signal)/1024 ct
k = length(signal)/1024;
1) Khi lng t ha tn hiu

Lng t ho l qu trnh ri rc ho tn hiu v mt bin , c th l thay th tt c cc gi tr
ca tn hiu nm trong mt khong xc nh no thnh mt gi tr duy nht. Min gi tr ca
tn hiu c chia thnh mt s hu hn cc khong chia. Nhvy, ln ca tn hiu sau khi
lng t ch c th nhn mt trong s hu hn cc gi tr cho trc.
Tp hp cc khong chia gi l s phn hoch ca tn hiu (partition). Tp cc gi tr thay th
cho mi khong chia gi l b m (codebook).
MATLAB biu din phn hoch ca tn hiu bng mt vector m cc phn t ca n l cc
im ranh gii gia hai khong chia lin tip. V d, nu tn hiu c min xc nh l R, c
phn hoch thnh cc khong (-, 0], (0,2], (2,4] v (4,+) th c th biu din s phn hoch
ny bng vector:

8

>> partition = [0,2,4];
Tng ng vi vector phn hoch tn hiu l vector biu din b m tn hiu. Cc phn t ca
n l cc gi tr thay th trong mi khong chia tng ng ca phn hoch. Nu ta thay th cc
gi tr trong khong (-, 0] bng -1, cc gi tr trong khong (0,2] bng 1, cc gi tr trong
khong (2,4] bng 3 v cc gi tr trong khong (4, +] bng 5 th vector biu din b m s l:
>> codebook = [-1,1,3,5];
Nh trn cp, thng thng ngi ta s phn hoch min xc nh ca tn hiu thnh 2^v
khong, sau mi khong tn hiu s c lng t ho, sau m ho bng mt t m nh
phn c chiu di v bit. Phng php lng t ho ny c gi l phng php iu m xung
(Pulse Code Modulation). Phng php ny khng cn i hi bt k thng tin no v tn hiu
cc thi im trc . Trong thc t, v tn hiu thng thay i chm t thi im ly mu ny
sang thi im ly mu k tip nn nu ta thc hin lng t v m ho cc gi tr sai bit gia
thi im hin ti vi thi im trc th s tn t gi tr hn so vi m ho y ln ca
tn hiu. Trn c s ny, ta c mt phng php lng t ho mi, gi l lng t ho tin on,
trong gi trca tn hiu thi im hin ti s c tnh thng qua mt s cc gi tr ca tn
hiu cc thi im qu kh. Tiu biu cho loi lng t ho ny l k thut iu m xung vi
sai (DPCM Differential Pulse Code Modulation).
thc hin m ho DPCM, ta khng nhng phi xc nh s phn hoch v b m lng t
m cn phi xc nh hm d on, d on gi tr ca tn hiu thi im hin ti. Thng
thng, ngi ta s dng hm d on tuyn tnh:
y(k) = p(1)x(k-1) + p(2)x(k-2) + ... + p(m-1)x(k-m+1) + p(m)x(k-m) (14.1)
trong x l tn hiu gc cn y(k) l gi trd on ca x(k); p l mt vector gm cc hng s
thc.
Thay v lng t ho tn hiu x, ta s thc hin lng t ho tn hiu sai s d on y x. m
c gi l bc d on. Trng hp c bit m = 1 c gi l iu ch delta.
Trong MATLAB Communications Toolbox, hm d on c sdng l hm d on
tuyn tnh nh trn v c biu din bng vector:
>> predictor = [0, p(1), p(2), p(3),..., p(m-1), p(m)]
S dng hm dpcmenco thc hin qu trnh m ha vi quant l vector cha cc gi tr lng
t cn index l vector cha cc ch s tng ng trong b m.
Code Matlab:
function [index,sig_quants] = DPCM(sig_comp,bits)

9

% Luong tu hoa DPCM voi tin hieu sig_comp sau khi nen
% bits la so bit bieu dien 1 mau
%Su dung ham du doan la y(k) = x(k-1)
predictor = [0 1];% Ham du doan delta bac 1
[index,sig_quants] = dpcmenco(sig_comp,codebook,partition,predictor);
end

2) Nn tn hiu

Trong cc ng dng x l tn hiu thoi (speech processing), trc khi lng t ho, ngi ta
thng thc hin nn (compress) tn hiu theo hm logarithm, mc ch l tn hiu mc bin
nh s thay i nhiu mc hn so vi cc gi tr bin ln, do sai s lng t tng
i cc mc bin nh v ln s khng chnh lch nhau nhiu nh i vi trng hp khng
nn.
khi phc li ng tn hiu ban u th sau khi gii m, ta phi a qua mt b gin tn hiu
(expander) c c tuyn truyn t l nghch o ca c tuyn ca b nn (compressor).
S kt hp ca b nn v b gin tn hiu gi chung l b nn gin tn hiu (compander).
Hai lut nn gin thng c sdng trong x l tn hiu thoi l lut dng Bc M v
lut A dng chu u:
Lut :
max
max
ln[1 ( / )]
sgn
ln(1 )
x x
y y x

+
=
+

Theo cc chun Bc M, gi trca l 255. Max x v Max y ln lt l cc gi tr dng ln
nht ca x v y.
Lut A:
max
max
max
max
( / )
1 ln
1 ln[ ( / )]
sgn
1 ln
A x x
y sngx
A
y
A x x
y x
A

+
=

+

+
nu
max
max
1
0
1
1
x
x A
x
A x

< s

< s

vi A l hng s
Gi trchun ca A l 87.6
MATLAB cung cp hm compand thc hin nn gin tn hiu. Hm ny h tr hai lut nn
gin A v ni trn.
>> out = compand(in, param, v, method)
In l tn hiu vo cn out l tn hiu ra

10

v l bin nh ca tn hiu vo
param l thng s ca lut nn gin (hng sA hoc )
method c th nhn mt trong cc gi tr sau:

Code Matlab:
function sig_comp = compressor(sig_t)
%Nen tin hieu truoc khi dua vao khoi luong tu ho
%sig_t la tin hieu dua vao
%Su dung nen theo luat A voi he so A = 86.7
A = 87.6;
V = max(sig_t);
sig_comp = compand(sig_t,A,V,'A/compressor');
end

3) Khi Integer to Bit Converter

Chuyn i cc gi tr index t 0- 255 thnh cc s nh phn 8 bit.
Code Matlab:
function sig_enc = Encoder(index)
%Bien doi tu ma thap phan sang nhi phan k bit
ysym = de2bi(reshape(index,'left-msb');%Bien doi chuoi thap phan
%thanh chuoi bit nhi phan
sig_enc = reshape(ysym.',prod(size(ysym)),1);
end

4)Khi m chp

M chp l mt phng php m ho sa sai quan trng. Khc vi m khi, m chp l loi m
c nh. Mc d, b m ho chp cng nhn cc thng ip c s lng k hiu xc nh v to

11

ra mt t m cng c s k hiu xc nh, nhng t m to ra mi thi im khng ch ph
thuc vo cc k hiu ca thng ip hin ti m cn phthuc vo cc k hiu ca cc thng
ip c m ho trc .
M chp l m tuyn tnh c ma trn sinh c cu trc sao cho php m ha c th xem nh 1
php lc. M chp c s dng rng ri trong thc t bi m ha c xem nh mt tp hp
cc b lc s tuyn tnh vi cc m l cc u ra ca b lc c ghp xen k.
B m ha cho m chp thng c coi l mt tp hp cc b lc s. V d:

Dng m
k
i qua 2 b lc dng chung cc phn t nh to ra 2 dng ra.
C
(1)
k
= m
k
+ m
k-1
+ m
k-2
v C
(2)
k
= m
k
+ m
k-2
.
V c mi bit vo li c hai bit c m ha a ra, kt qu l ta c mt m c tc R=1/2.
M chp c t o r a bng cch cho chui t hng t i n t r uyn qua h t hng
cc thanh ghi dch tuyn tnh c s trng thi hu hn. Cho s lng thanh ghi dch
l m (cng k hiu l N), b m c k bit ng vo v u ra b m chp c n bit ng ra(n hm i
s tuyn tnh hoc n ng ra cng modulo). Tc m l R = k/n, s nh ca b ghi
dch l mk v tham s L gi l chiu di rng buc (Constraintlength) ca m chp
(vi L=k(m-1))
Code Matlab cho vic m ha m chp:
function sig_conv = EnConv(sig_bit)
%Ham ma chap voi toc do R=1/2
%Cac da thuc sinh la G2=5, G3=7
%Chieu dai rang buoc L=3
%inpbits la tin hieu vo
L=3;
G =[5 7];
trellis = poly2trellis (L,G);
sig_conv = convenc(sig_bit,trellis);
end


12


5) Khi iu ch QPSK

iu ch tn hiu l qu trnh bin i mt hay nhiu thng s ca mt tn hiu tun hon theo
s thay i mt tn hiu mang thng tin cn truyn i xa. Tn hiu tun hon gi l sng mang.
Tn hiu mang thng tin gi l tn hiu c iu ch. u thu b gii iu ch s da vo s
thay i thng s ca sng mang ti to li tn hiu mang thng tin ban u. Cc thng s
ca sng mang c dng trong qu trnh iu ch c th l bin , pha, tn s.
Trong iu ch s, mt sng mang tng t s c bin i theo mt chui bit c chiu di c
nh hoc thay i. y cng c th c coi l mt dng bin i tng t-s. Hnh dng ca
sng mang c ly t mt tp hp hu hn cc k hiu.
QPSK vit tt ca t Quadrature Phase Shift Keying, gi l iu ch pha cu phng (iu
ch pha vung gc). QPSK l 1 k thut iu ch tn hiu s, m ha 2 bit thnh 1 symbol.
S nguyn l b iu ch QPSK s dng mt trong 4 pha lch nhau 90
0
.

Tn hiu bng gc c a vo b bin i ni ni tip thnh song song. u ra c 2 lung
s liu c tc bit gim i 1 na, ng thi bin i tn hiu n cc thnh tn hiu 1 . Hai
sng mang a ti 2 b trn lm lch pha nhau 90
0
. Tng hp tn hiu u ra 2 b trn ta c
tn hiu QPSK.
Trong Matlab s dng hm pskmod vi s mc iu ch l 4 thc hin iu ch QPSK.
Trc khi iu ch th phi a 2 bit thnh cc k t t 0 n 3.
Code Matlab cho hm QPSK
function sig_mod = QPSK(sig_conv)
%Dieu che QPSK cho tin hieu da dc ma chap
%Chuyen doi 2 bit thanh cac ky hieu

13

k = 2;%2bit/1ky tu
x = bi2de(reshape(sig_conv,k,length(sig_conv)/k).','left-msb');
sig_mod = pskmod(x,4);
end


6) Knh truyn cng nhiu AWGN (ADDITIVE WHITE GAUSSIAN NOISE)

Vi mt knh thng tin c bn, tn hiu tin tc sau khi iu ch s c gi i trn knh
truyn. Trong thc t tn hiu khi truyn trn knh truyn s chu tc ng bi cc yu t ca
knh truyn lm cho tn hiu thu c khng cn ging hon ton tn hiu pht. Tu theo cc
dng mi trng truyn khc nhau v cc h thng thng tin khc nhau, s tc ng ni trn
s c nhng c trng khc nhau. MATLAB cho php ngi s dng m phng ba loi knh
truyn c bn, l: knh truyn vi nhiu AWGN, knh truyn fading v knh truyn i
xng nh phn.
Knh truyn AWGN l dng knh truyn c nhiu cng, trng v phn b theo hm Gauss.
Nh vy, mt tn hiu khi truyn qua knh truyn ny s phi thm vo mt tn hiu ngu
nhin khng mong mun phn b theo hm Gauss:
2
2
( )
2
1
( )
2
x
p x e

o
o t

=
Knh truyn AWGN trong MATLAB c m phng bng hm awgn. Hm ny s cng nhiu
Gauss vo mt tn hiu cho trc (c th l tn hiu thc hay phc), mc cng sut nhiu do
ngi s dng quy nh thng qua hai thng s nhp:
- Mc cng sut tn hiu pht (n vmc nh l dBW, hoc c thdng n v W)
- TsSNR (n v mc nh l dB)
C php ca hm awgn nh sau:
>> awgn(X,SNR,SigPower,State,PowerType)
Trong : X l tn hiu pht
SNR l tscng sut tn hiu trn nhiu (tnh bng dB)
SigPower cho bit cng sut tn hiu vo (dBW), hoc nu SigPower = measuredth MATLAB
s o cng sut tn hiu pht trc khi cng nhiu
State cho bit trng thi ca b pht tn hiu ngu nhin
PowerType ch ra n vca SNRv SigPowerl n vdecibel (dB) hay n v tuyn
tnh(linear)

14

Ba thng s cui khng nht thit phi a vo, trong trng hp khng c cc thng s ny
th xem nh cng sut tn hiu pht bng 0 dBW v n v ca SNR l dB.
Code Matlab cho knh AWGN:
function sig_noise = awgnchan(sig_mod)
%Cho tin hieu sau khi da dieu che vao kenh truyen cong nhieu AWGN
%Kenh truyen AWGN la kenh truyen nhieu trang va phan bo Gauss
%Gia su kenh truyen co nang luong bit tren mat do cong suat nhieu Eb/N0 =
%9dB
M = 4; %Dieu che QPSK
k = log2 (M);
nsamp = 1;
EbNo = 9;%Don vi dB
SNR = EbNo + 10*log10 (k) - 10*log10 (nsamp);
sig_noise = awgn(sig_mod,SNR,'measured');
end


7) Khi gii iu ch QPSK

S nguyn l:

Hai sng mang chun vo b trn sau khi qua c ng b vi tn hiu vo v qua cc b
lc thng thp s thu c tn hiu 1
.Qua mch logic s c cc tn hiu n cc.
Trong Matlab, gii iu ch QPSK dng hm Z = pskdemod(Y,M,PHASE) vi M = 4 l s
mc iu ch, PHASE l pha ban u.
Code Matlab cho hm gii iu ch:
function sig_demod = DeQPSK(sig_noise)

15

%Giai ma QPSK tin hieu sau khi cong nhieu
%Su dung ham pskdemod
sig_demod = pskdemod(sig_noise,4);
end


8) Khi gii m m chp

Thut ton Viterbi l mt gii php c s dng ph bin gii m chui bit c m ha
bi b m ha m chp. Thut ton Viterbi c th dng gii m nhng chui bit m c m
ha bi bt c b m chp no.
Tn hiu sau khi m ha c i qua knh truyn sau n b thu, ti y tin hiu c
lng t ha trc khi s dng thut ton viterbit gii m.
S dng quyt nh cng vi hm videc gii m
len = 2;%Chieu dai traceback gii m
decbits = vitdec(encbits,trellis,len,trunc,hard,3);
Code Matlab cho hm gii m:
function sig_deconv = DeConv(sig_demod)
%DeConv khoi giai ma ma chap voi toc do R = 1/2
%Su dung hm vitdec voi quyet dinh cung
%Dau vao la tin hieu sau khi giai dieu che QPSK
z = de2bi(sig_demod,'left-msb'); %Chuyen doi ky tu thanh cac bit nhi phan
z = reshape(z.',prod(size(z)),1); %Chuyen doi ma tran thanh 1 vecto
L = 3;
G = [5 7];
trellis = poly2trellis(L,G);
len = 2;
sig_deconv = vitdec(z,trellis,len,'trunc','hard');
end

9) Khi gii m Bit to Integer Converter

Khi ny chuyn i tng 8 bit nh phn thnh cc ch s index c gi tr t 0 255.
Code Matlab cho hm ny:
function index = Decoder(sig_deconv)

16

%Bien doi 1 chuoi nhi phan thanh so thuc
%8 bit la 1 ky tu
z = reshape(sig_deconv,8,length(sig_deconv)/8);
z = z;
index = bi2de(z,'left-msb');
end


10) Khi gii m lng t ha DPCM

thc hin gii m ho DPCM, xc nh s phn hoch vi gi tr ch s index u vo v
hm d on, d on gi tr ca tn hiu thi im hin ti. Chng ta s s dng li hm d
on dng phn m ha l: y = x(k-1). Trng hp c bit ny m = 1 c gi l iu ch
delta.
predictor = [0 1]; % Hm d on y(k)=x(k-1)
[sig, quant] = dpcmdeco(index, codebook, predictor);
sig l tn hiu tin tc c khi phc cn quant l tn hiu sai s d on.
Code Matlab cho hm:
function [sig,quants] = DeDPCM(index,codebook)
%Ham giai ma luong tu hoa DPCM
%Hm du on y(k)=x(k-1)
predictor = [0 1];
[sig,quants] = dpcmdeco(index, codebook, predictor);
end

11) Khi gin tn hiu

Tn hiu trc khi lng t ha c nn theo lut A, nn sau khi gii m lng t ha ta s
gin tn hiu c tn hiu thu c.
A = 87.6; %Thng s cho b gin tn hiu theo lut A
sig_r = compand(sig_quant,Mu,max(sig_quant),'mu/expander');
sig_quant l tn hiu sau khi gii m lng t ha DPCM
Code Matlab:

17

function [sig_r] = expander(sig_quant)
%Ham giai nen theo luat A
A = 87.6; %Thong so A cua bo giai nen
sig_r = compand(sig_quant,A,max(sig_quant),'A/expander');
end

12) Kho st t l li bit trong ng truyn

S dng hm bitter trong Matlab s so snh hai tp d liu nh phn cho trc v tr v s bit
li v t l li bit.

[number_of_errors,bit_error_rate] = biterr(sig_enc,sig_deconv);

Phng sai:
dictor_r = sum((signal_r signal).^2)/length(signal_r);
Vi signal_r l tn hiu thu c bn thu.


Code Matlab cho ton chng trnh:

>> %c vo 1 tn hiu m thanh wav c ly mu 16 bit vi tn s ly mu 8000Hz
>> [filename,pathname]=uigetfile('*.wav');
>> [signal Srate nBits] = wavread([pathname,filename]);
>> %File c c vo l BTL.wav
>> %Kho st tn hiu signal
>>l = length(signal);
>>k = mod(l,1024);%m bo di ca signal l bi ca 1024

>>signal = signal([1:l-k],1);% Loi b k phn t d

>> Mp = max(signal);
>> bits = 8;%Dng 8 bit m ha 1 mu
>> levels = 2^bits;%So mau 8 bit m ha c
>> step_size = (2*Mp)/levels;%Bc nhy cho mi khong
>> codebook = [-Mp+step_size:step_size:Mp]; % S i din cho mi khong trong phn
>>%partition

18

>> partition = [-Mp+2*step_size:step_size:Mp] %Chia tn hiu thnh 256 khong
>> %Chia tn hiu thnh cc frame, mi frame c cha 1024 mu
>> frame = reshape(signal,1024,length(signal)/1024);
>> %frame l mt ma trn c 1024 hng v length(signal)/1024 ct
>> k = length(signal)/1024;
>> %Thuc hin LTH,Nn ,m ha, iu ch , truyn, gii iu ch
>> %tng frame mt vi frame(:,j) ly tt c cc phn t ca ct th j
>> %Vng lp
>> for i = 1:k
sig_t = frame(:,i);%Chn frame th i
sig_comp = compressor(sig_t);%Thuc hien nen
[index,sig_quant] = DPCM(sig_comp,codebook,partition);
sig_enc = Encoder(index);%Chuyen cc ch s index sang chui s nh phn
sig_conv = EnConv(sig_enc);%Ma chap
sig_mod = QPSK(sig_conv);%iu ch QPSK vi pha 0
sig_noise = awgnchan(sig_mod);%a tn hiu iu ch ln knh truyn AWGN
sig_demod = DeQPSK(sig_noise);%Giai iu ch QPSK
sig_deconv = DeConv(sig_demod);%Gii m m chp
index_out = Decoder(sig_deconv);%Ch s u ra
sig_dequant = DeDPCM(index_out,codebook);% gii m lng t ha
sig_r = expander(sig_dequant);% Gii nn
%sig_r l tn hiu u ra ng vo frame th i u vo
%Tnh t l li bit trn mi frame[number_of_errors,bit_error_rate] =
biterr(sig_conv,decodmsg)
[number_of_errors,bit_error_rate] = biterr(sig_enc,sig_deconv);

19

N_er(i) = number_of_errors;
B_er(i) = bit_error_rate;
%Phng sai trong mi frame
sig_r = sig_r;
dictor(1,i) = sum((sig_r sig_t).^2)/length(sig_r);
signal_re (:,i) = sig_r;%tn hiu thu c a vo mt ct ca ma trn signal_r
end
>>%Kt thc vng lp. Tn hiu nhn c bn thu nm trong ma trn signal_r
>>signal_r = reshape(signal_re,prod(size(signal_re)),1);%Chuyn ma trn v ma trn 1 ct
>>%V N_er v B_er
>>subplot(2,1,2);plot(B_er);title(Ty le loi bit tren moi frame);xlabel(frame);ylabel(Ty le bit
loi);
>>sound(signal_r);%Pht tn hiu thu c
Kt qu:
Khi tn hiu m thanh a vo l file Test.wav

20


Source code c lu trong Script BTLFull.m. Ch cn gi lnh BTLFull chy chng trnh.

Nhn xt:
di ca tn hiu u vo cng ln th thi gian x l cng lu.
T l li bit tun theo phn b Gauss, vi t s Eb/No cng nh th t l li bit cng ln.
Vi Eb/No < 10dB th nn s dng phng php iu ch BPSK, cn 10 < Eb/No < 17 th s
dng iu ch QPSK.
Tn hiu thu c gn ging vi tn hiu pht i nhng c nhiu l khng ng k khi t s
Eb/No ln.

PHN C:KT LUN

Cng vic trong lnh vc x l m thanh l rt ln nn bi bo co khng th trnh c nhng
thiu st. Do nhm em mong nhn c s gp ca thy Hong v anh Ngha chng em
hon thin hn bi tp ln ny.
Mt ln na chng em xin cm n.

You might also like