1.Trình bày chi tiết về điều chế PCMcác bước điều chế xung mã PCM - Lọc nhằm hạn chế phổ tần của tín hiệu liên tục cần truyền : Biến đổi Fuorier của các tín hiệu liên tục thực tế là vô h
Trang 1Bài tập lớn môn:
Kỹ thuật thông tin số
Đề tài : Nghiên cứu về điều chế xung mã PCM.Viết chương trình matlab thực hiện các bước của kỹ thuật điều chế xung mã PCM.
1.Trình bày chi tiết về điều chế PCM(các bước điều chế xung mã PCM)
- Lọc nhằm hạn chế phổ tần của tín hiệu liên tục cần truyền : Biến đổi Fuorier của các tín hiệu liên tục thực tế là vô hạn theo biến tần số,chí ít cũng do thời gian tồn tại của chúng hữu
hạn.Chính vì vậy,các tín hiệu liên tục cần truyền nhất thiết phải được lọc nhằm hạn chế tới tần
số cực đại W nào đó nhằm thỏa mãn tiên đề về băng tần hạn chế của định lý lấy mẫu
- Lấy mẫu: Tín hiệu liên tục sau lọc được rời rác hóa nhờ lấy mẫu tín hiệu liên tục bằng chuỗi xung nhip có tần số theo định lý lấy mẫu để có được các tín hiệu điều biên xung
- Lượng tử hóa: Số giá trị có thể có của tín hiệu PAM sau lấy mẫu là vô hạn,do vậy số bit cần thiết để mã hóa các giá trị của các xung PAM là vô hạn và điều này không thể thực hiện được
Để hạn chế số bit mã cần sử dụng,giá trị của từng xung PAM cần được làm tròn thành một trong các giá trị mẫu xác định gọi là mức lượng tử và quá trình này gọi là lượng tử hóa
- Mã hóa: Các giá trị mức lượng tử ứng với các xung PAM được mã hóa bằng các tổ hợp mã nhị phân để truyền đi trên hệ thống truyền dẫn số
Sơ đồ mô tả công đoạn điều chế xung mã :
Tín hiệu có băng Các xung PAM lượng Tín hiệu s(t ) thông hạn chế Các xung PAM tử hóa PCM
Mã hóa Lượng tử
Lấy mẫu Lọc
Trang 2Quá trình khôi phục ở phần thu được thực hiện như sau: Giải mã để được chuỗi xung PAM lượng tử hóa rồi cho qua lọc thông thấp có tần số cắt bằng một nửa tần số lấy mẫu
Như đã nói ở trên, thực tế các tín hiệu lối vào điều chế mã xung là các tín hiệu có phổ trải rộng vô hạn Sau lọc hạn chế phổ tần, tín hiệu có phổ hạn chế và do vậy có thời gian tồn tại trải rộng tới vô hạn, nghĩa là về lý thuyết việc lấy mẫu phải thực với vô hạn mẫu theo sơ đồ trên Từ
đó chúng ta có thể thấy rằng tín hiệu liên tục khôi phục lại được ở phần thu, ngay cả trong trường hợp không tính đến méo và tạp nhiễu trên đường truyền, cũng chỉ là một phiên bản gần đúng của tín hiệu liên tục cần truyền đi ở phần phát mà thôi Sai số giữa các tín hiệu phiên bản và nguyên bản gây ra bởi các nguyên nhân sau:
a Việc lấy mẫu không thể tiến hành trong thời gian dài vô hạn được;
b Sai số do làm tròn (lượng tử hóa), gọi là sai số lượng tử;
c Các đặc tính không hoàn toàn lý tưởng;
d Phiên bản là một tín hiệu có phổ hạn chế, không như tín hiệu nguyên bản
Ngoài ra, các sai lệch quá đáng về đồng bộ cũng có thể dẫn đến sắp xếp sai các tổ hợp mã thu được và điều này dẫn đến các sai lạc vô cùng trầm trọng Các chi tiết về các công đoạn trong quy trình PCM và các biện pháp khắc phục sai số sẽ được trình bày dưới đây
I Lọc hạn băng
Phổ của tín hiệu điện thoại tập trung trong giải từ 0,3 đến 3,4 kHz Việc cắt bỏ các thành phần tần số ngoài giải nói trên không gây ra những méo thụ cảm được quá lớn, tức là không gây nên những trở ngại đặc biệt đối với quá trình thông thoại Để hạn chế phổ tín hiệu có thể tiến hành loại bỏ các thành phần tần số lớn hơn 3,4kHz trong tín hiệu điện thoại bằng lọc thông thấp, tức là có thể chọn tần số cực đại W của tín hiệu thoại là 3,4kHz Trong trường hợp này, sai số do lọc hạn băng gây ra chủ yếu là bởi không thể chế tạo được mạch lọc thông thấp lý tưởng mà chỉ
có thể tạo được các mạch lọc với đặc tính lọc không đứng tại tần số cắt Để không gây nên những méo có thể thụ cảm rõ rệt được, tần số cắt của mạch lọc hạn băng phải chọn cao hơn 3,4kHz Các mạch lọc tiêu chuẩn trong thực tế (có đặc tính thỏa mã các khuyến nghị của CCITT cho các mạch thoại) có tần số cắt rất sát với 4kHz
II Lấy mẫu.
Quá trình lấy mẫu được thực hiện bằng cách nhân tín hiệu thoại liên tục với chuỗi xung nhịp
có tần số
2
S
f ≥ W
Việc chọn tần số nhịp lớn hơn hai lần W sẽ làm mở rộng băng tần chiếm của
Trang 3tín hiệu số, do vậy tần số nhịp phải chọn nhỏ nhất mà không gây méo tín hiệu Sai số lấy mẫu gây bởi việc không thể lấy mẫu trong một thời gian dài vô hạn thường không đáng kể và có thể
bù đắp được bằng việc chọn
S f
lớn hơn 2W một chút Kết hợp với thực tế phát sinh do lọc hạn băng như đã nói trên đây, tần số lấy mẫu tiêu chuẩn cho tín hiệu thoại được chọn là 8 kHz III Lượng tử hóa.
Lượng tử hóa được thực hiện đơn giản nhất bằng cách chia giải động tín hiệu
[− +a a, ]
thành
Q mức cách đều nhau, được gọi là lượng tử hóa đều Khoảng cách giữa các mức lượng tử
2 /a Q
∆ =
Các giá trị của các mẫu tín hiệu (các xung PAM) được làm tròn thành giá trị mức
lượng tử gần nhất Sai số lượng tử của các giá trị mẫu là một biến ngẫu nhiên
q
e
nhận các giá trị
trong khoảng
[−a Q a Q/ ,+ / ]
, có thể xem như một lượng tạp âm gọi là tạp âm lượng tử và có thể đánh giá được thông qua công suất tạp âm lượng tử:
/
/ ( )
a Q
a Q
−
(A-1)
trong đó
(.)
là hàm mật độ xác suất (probability density function)
Do không biết được phân bố thực sự của biên độ tín hiệu điện thoại trong khoảng giữa hai mức lượng tử sát nhau, người ta buộc phải giả thiết rằng tín hiệu điện thoại nhận các giá trị biên
độ trong khoảng giữa hai mức lượng tử sát nhau với xác suất như nhau Do đó tạp âm lượng tử
được xem là biến ngẫu nhiên phân bố đều, tức là
( )q / 2
pdf e =Q a
Thay vào công thức (A-1), chúng ta được
2 / 3 2 2/12
eq
P =a Q = ∆
(A-2)
Trang 4Từ (A-2) chúng ta có thể thấy khi tăng số mức lượng tử Q thì công suất tạp âm lượng tử giảm Chẳng hạn, khi tăng số mức lượng tử lên hai lần, công suất tạp âm lượng tử giảm 4 lần, tức
là vào khoảng 6dB Tuy nhiên, việc tăng quá mức số mức lượng tử dẫn đến 2 hệ quả:
a Số mức lượng tử lớn dẫn đến số bit dùng để mã các mức lượng tử tăng (cứ tăng số mức lượng tử lên hai lần thì phải thêm một bít trong tổ hợp mã) làm tăng tốc độ bít và
do vậy tăng phổ chiếm của tín hiệu
b Với cùng một giải động tín hiệu, việc tăng quá mức số mức lượng tử có thể dẫn đến mức lượng tử không phục lại ở phần thu bị nhận nhầm dưới tác động của tạp âm nhiệt trong các mạch điện tử
Thêm vào đó, nếu lượng tử hóa đều thì việc chia các mức với số mức tối thiểu (nhằm giảm số bít mã cần dùng) xác định theo độ chính xác đã cho đối với các mức cao của tín hiệu lại dẫn đến sai số phạm phải lại lớn đối với các mức thấp Điều này dẫn tới sai số tổng cộng lớn hơn do trong thực tế các mức tín hiệu thấp của tín hiệu thoại thường xảy ra nhiều hơn so với các mức cao Các mâu thuẫn nói trên trong thực tế được khắc phục bởi lượng tử hóa không đều, trong đó khoảng cách giữa các mức lượng tử được chọn lớn với các mức lớn còn với các mức tín hiệu nhỏ thì khoảng cách giữa các mức lượng tử nhỏ Giải pháp này khá tự nhiên do đối với tín hiệu lớn thì tử
số tín hiệu trên sai số (tín/tạp âm lượng tử) vẫn khá nhỏ dù sai số lượng tử tuyệt đối có lớn Việc chia các mức lượng tử không đều như thế, tuy vậy lại khá khó thực hiện trong thực tế và một giải pháp tương đương thường được áp dụng là thực hiện lượng tử hóa đều các tín hiệu được nén Luật nén được áp dụng trong điều chế mã xung tín hiệu là luật logarit, trong đó tín hiệu lối ra y của mạch nén biến thiên theo luật logarit của tín hiệu lối vào x Ở phần thu, tín hiệu được giãn trở lại Việc duy trì nén-giãn chính xác là một yêu cầu rất ngặt nghèo nhằm tránh các méo tín hiệu mang vào do quá trình nén-giãn
IV Mã hóa
Trong hầu hết các trường hợp, tuyến truyền PCM là một bộ phận của một kết nối quốc tế Yêu cầu đặt ra là việc xen một tuyến truyền dẫn số như vậy vào kết nối quốc tê dài nhất không được dẫn đến suy giảm chất lượng so với tuyến truyền dẫn thuần túy analog Các yêu cầu về tạp
âm đối với một kết nối đường dài quốc tế được xác định theo các quan hệ áp dụng đối với mạng tham chiếu qui định trong khuyến nghị G.103 của CCITT Để thỏa mãn các yêu cầu đó, tỷ số tín hiệu trên tạp âm lượng tử của một chặng mã đơn có mã và giải mã PCM cần phải không nhỏ hơn 22dB, tính tại giải mức tiếng nói trung bình tại đầu vào bộ mã hóa (-5 đến -25 dBm) [A14] Ở
Trang 5các mức tiếng nói thấp hơn, yêu cầu về tỷ số tín hiệu trên tạp âm lượng tử đó sẽ nhỏ hơn nhiều Đối với mạng tham chiếu trong khuyến nghị G.103, số đoạn mã và giải mã PCM mắc nối tiếp không vượt quá 14 Nghĩa là đòi hỏi về tỷ số tín hiệu trên tạp âm lượng tử của mỗi đoạn thành phần còn cao hơn, thêm 10lg14 dB nữa, tức là với mỗi đoạn tỷ số tín hiệu trên tạp âm lượng tử
phải ≥
33.46 dB Yêu cầu này vừa đúng đạt được bằng việc sử dụng bộ mã hóa với các từ mã 7 bit Khi tính đến cả các tham số suy giảm chất lượng khác của PCM, bộ mã hóa 8 bit thường được áp dụng nhất
Biên độ tín hiệu lối ra bộ nén được lượng tử hóa đều thành 16 mức với mỗi một đoạn hay phân đoạn Việc mã hóa các mức lượng tử đều (sau nén) để tạo thành tín hiệu PCM được thực
hiện bẳng tổ hợp 8 bit đối với cả hệ Mỹ lẫn Châu Âu và cùng có dạng PXYZABCD Bit P chỉ thị cực tính giá trị lượng tử của mẫu tín hiệu: P=1 với tín hiệu dương và P=0 với tín hiệu âm Ba bít
XYZ dùng để mã các đoạn thẳng (hoặc phân đoạn) làm gần đúng với các luật nén(
µ
hay A), bốn
bit ABCD dùng để mã 16 mức lượng tử đều trong từng đoạn
Do được tuyến tính hóa theo các số đoạn khác nhau, cách nhận được các mã 8 bit PCM đối với hệ Mỹ và hệ Châu Âu cũng khác nhau
Lợi ích của nén-giãn có thể thấy được thông qua xét làm ví dụ đối với hệ Châu Âu Chúng ta thấy rằng bộ lượng tử đều sử dụng nén giãn(cũng còn gọi là bộ lượng tử phi tuyến) có độ phân giải tương đương độ phân giải của bộ lượng tử đều (lượng tử tuyến tính) với 4096 mức sử dụng các từ mà 12 bit Như vậy so với nếu sử dụng bộ lượng tử tuyến tính 8 bit (256 mức) công suất tạp âm lượng tử giảm 4x6=24 dB
V Đặc điểm của tín hiệu PCM
1 Băng thông của tín hiệu PCM:
Gọi R là số bit truyền đi trong 1 giây của tín hiệu PCM, R được gọi là tốc độ bit (bps) Gọi n
là số bit của một từ mã PCM,
S f
là tần số lấy mẫu Khi đó, tốc độ bit R được tính như sau:
S
R n f=
(A-6)
Trang 6Giữa độ rộng băng thông và tốc độ bit có quan hệ được chia ra 2 trường hợp thông dụng như
sau Đó là trường hợp sử dụng trọn 1 ô bit
b T
để biểu diễn 1 bít và trường hợp sử dụng một nửa ô bit để biểu diễn 1 bit, nửa còn lại trở về giá trị tham chiếu
Ta nhận thấy ở trường hợp 1, một bit tương đương với 1 lần tín hiệu thay đổi mức trong khi ở trường hợp 2thì một bit tương đương với 2 lần thay đổi mức Ta biểu diễn sự thay đổi mức này bằng tín hiệu hình sin Từ đó nhận thấy rằng, ở trường hợp 1ta có thể truyền đi tốc độ bit là 2 bps trên Hz, ở trường hợp 2thì tốc độ này chỉ là 1bps trên Hz Ta gọi tín hiệu có dạng ở trường hợp 1
là tín hiệu dạng NRZ, còn tín hiệu có dạng ở trường hợp 2 tín hiệu dạng RZ Ta gọi số bít truyền
đi trong một giây trong 1 Hz là hiệu quả sử dụng băng thông
Qua phân tích ở trên ta rút ra băng thông tối thiểu của tín hiệu PCM phải là:
PCM
B ≥ R= n f
(trường hợp 1)
B ≥ =R n f
(trường hợp 2)
Mặt khác, để tránh chồng phổ thì tần số lấy mẫu phải là
2
S
f ≥ B
với B là băng thông của tín hiệu tương tự tương ứng (giả thiết tín hiệu có băng thông hữu hạn) Vậy băng thông của tín hiệu PCM là:
PCM
B ≥nB
(trường hợp 1) 2
PCM
B ≥ nB
(trường hợp 2) Vậy băng thông của tín hiệu PCM lớn hơn băng thông tín hiệu tương tự tương ứng Đây là khiếm khuyết chính của hệ thống truyền tin sử dụng PCM
6.2 Ảnh hưởng của nhiễu lên tín hiệu PCM
Tín hiệu tương tự khôi phục tại đầu thu của hệ thống PCM chịu ảnh hưởng của nhiễu nên bị méo Có hai loại nhiễu chính ảnh hưởng lên tín hiệu PCM là:
- Nhiễu lượng tử hóa gây ra bởi bộ lượng tử hóa M mức ở bên mã hóa PCM
- Lỗi bit ở tín hiệu PCM khôi phục gây ra bởi nhiễu kênh truyền
Trang 72.Chương trình mô phỏng bằng Matlab các bước của quá trình điều chế PCM
Code lệnh :
clear,clc
%tin hieu tuong tu
t=linspace(-1,1,1000);
for i=1:length(t)
if t(i)>=-1 & t(i)<=0
x(i)=4*t(i)+2;
x(i)=2-2*t(i);
else
x(i)=1;
end
end
figure
plot(t,x,'linewidth',2)
xlabel('t'),ylabel('x(t)'),title('dang song cua tin hieu tuong tu')
set(gca,'XTick',[-1,0,.5,1])
set(gca,'YTick',[-2,0,1,2])
grid on
%pho bien do cua tin hieu tuong tu
fs=1/0.0001;
a=length(t);
u=fft(x,a);
u=u/fs;
u = abs(u(1:length(u)/2+1));
f = [0:length(u)-1]*fs/length(u)/2;
figure;
plot(f,u,'linewidth',2);
title('Do thi pho bien do x(f) cua tin hieu tuong tu x(t)'); xlabel('f')
ylabel('X(f)')
grid on
%xung lay mau
t1=-1:1/32:1;
fs1=32;
for i=1:length(t1)
a(i)=1;
end
figure;
Trang 8grid on
title('Do thi xung lay mau voi tan so 32 KHz')
xlabel('t')
ylabel('l(t)')
%tin hieu sau khi lay mau
for i=1:length(t1)
if t1(i)>=-1 & t1(i)<0
Y(i)=4*t1(i)+2;
Y(i)=2-2*t1(i);
else
Y(i)=1;
end
end
figure;
stem(t1,Y,'r','LineWidth',2);
grid on
xlabel('t')
ylabel('X(t)')
title(' Do thi tin hieu sau khi lay mau voi tan so lay mau
fs=32Hz')
%pho bien do tin hieu sau lay mau
a1=length(t1);
u1=fft(Y,a1);
u1=u1/fs1;
u1 = abs(u1(1:length(u1)/2+1));
f1 = [0:length(u1)-1]*fs1/length(u1)/2;
figure;
stem(f1,u1,'linewidth',2)
title('pho bien do cua tin hieu lay mau ');
xlabel('f');
ylabel('X(f)');
grid on
%luong tu hoa
partition=[-1.8:0.25:1.7]; %phan hoach thanh 16 khang chia
codebook=[-1.875:0.25:1.875]; %Bo ma luong tu gom 16 muc
[index,quants]=quantiz(Y,partition,codebook); %luong tu hoa
figure
plot(t1,Y,'b ',t1,quants,'r','linewidth',2) %quants la tin hieu sau luong tu
title('tin hieu sau khi luong tu')
grid on
% do thi sai so luong tu
c=quants-Y;
figure
plot(t1,c,'linewidth',2)
Trang 9grid on
title('do thi sai so luong tu')
% ma hoa
code=de2bi(index,'left-msb') % chuyen tu he 10 sang
he 2
figure;
h=[code(1,:) code(2,:) code(3,:) code(4,:) code(5,:) code(6,:)
code(7,:) code(8,:) code(9,:) code(10,:) code(11,:)
code(12,:)
code(13,:) code(14,:) code(15,:) code(16,:) code(17,:)
code(18,:)
code(19,:) code(20,:) code(21,:) code(22,:) code(23,:)
code(24,:)
code(25,:) code(26,:) code(27,:) code(28,:) code(29,:)
code(30,:)
code(31,:) code(32,:) code(33,:) code(34,:) code(35,:)
code(36,:)
code(37,:) code(38,:) code(39,:) code(40,:) code(41,:)
code(42,:)
code(43,:) code(44,:) code(45,:) code(46,:) code(47,:)
code(48,:)
code(49,:) code(50,:) code(51,:) code(52,:) code(53,:)
code(54,:)
code(55,:) code(56,:) code(57,:) code(58,:) code(59,:)
code(60,:)
code(61,:) code(62,:) code(63,:) code(64,:) code(65,:)];
clf;
n=1;
l=length(h);
h(l+1)=1;
ami=-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);grid on;
title('Line code AMI RZ');
set(d,'LineWidth',1.5);
hold on;
Trang 10axis([0 length(h)-1 -1.2 1.2]); disp('zero');
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t<n-0.5);
else
y=-(t<n-0.5);
end
else
if ami==1
y=(t<n-0.5)-(t==n); else
y=-(t<n-0.5)+(t==n); end
end
d=plot(t,y);grid on;
title('Line code AMI RZ');
xlabel('t')
ylabel('A')
set(d,'LineWidth',2);
hold on;
axis([0 length(h)-1 -1.2 1.2]); disp('one');
end
n=n+1;
end
Hình vẽ :