You are on page 1of 44

I) Kỹ thuật lấy mẫu và lượng tử hóa.

1) Lý thuyết.
a) Lấy mẫu.
- Lấy mẫu: phân chia không gian ảnh ra thành lưới các ô vuông.
- Độ phân giải: số lượng điểm ảnh trong bức ảnh. Độ phân giải
thấp và không chính xác, phân giải cao và chậm thuật toán và
lãng phí bộ nhớ.
b) Lượng tử hóa.
- Lượng tử hóa: rời rạc hóa giá trị của điểm ảnh.
- Số mức lượng tử hóa: ảnh hưởng đến số lượng bit dùng để biểu
diễn mỗi điểm ảnh và bị chi phối bởi các giới hạn về phần cứng.

2) Bài tập.
* Bài 1A *
a) Nội dung: Ảnh hưởng của lượng tử hoá đến chất lượng ảnh
xám.
- Cho bức ảnh xám Test.bmp.
- Thay đổi số mức lượng tử hoá trên ảnh này.
- Quan sát ảnh, so sánh, đánh giá chất lượng ảnh và dung lượng
ảnh, rút ra nhận xét.
- Từ đó chọn ra số mức lượng tử hoá tối ưu.
- Chụp ảnh cả nhóm, chuyển về ảnh xám và thực hiện lại các
yêu cầu trên.
b) Code matlab.
*Với file Test.bmp
1- img = imread('Test.bmp');

2- subplot(2,4,1);

3- imshow(img);

4- title(‘2048x2048’);

5- subplot(2,4,2);

6- img2 = imresize(img, 1/2);

7- imshow(img2);

8- title(‘1024x1024’);

9- subplot(2,4,3);

10- img3 = imresize(img, 1/4);

11- imshow(img3);

12- title(‘512x512’) ;

13- subplot(2,4,4);

14- img4 = imresize(img, 1/8);

15- imshow(img4);

16- title(‘256x256’) ;

17- subplot(2,4,5);

18- img5 = imresize(img, 1/16);

19- imshow(img5);

20- title(‘128x128');
21- subplot(2,4,6);

22- img6 = imresize(img, 1/32);

23- imshow(img6);

24- title(’64x64');

25- subplot(2,4,7);

26- img7 = imresize(img, 1/64);

27- imshow(img7);

28- title(’32x32');

29- subplot(2,4,8);

30- img8 = imresize(img, 1/128);

31- imshow(img8);

32- title(’16x16');
-Kết quả.

-Nhận xét.
• Độ phân giải càng cao thì ảnh càng rõ, mượt mà hơn và
ngược lại.
• Độ phân giải 2048x2048 cho ảnh rõ nét nhất, độ phân giải
16x16 cho ảnh bị vỡ, không rõ nét.
• Độ phân giải càng cao thì càng tốn dung lượng , tốn không
gian lưu trữ (ví dụ: ban đầu bức ảnh có dung lượng là
12MB, với mức lượng tử hóa là 2048x2048 thì dung lượng
là 14MB, còn với mức lượng tử hóa là 16x16 thì dung
lương là 16kB.
• Tần số lấy mẫu tối ưu là 8, ta chọn ảnh 256x256, vì khi
nhìn qua bức ảnh ta có thể biết được nội dung và tốn ít
dung lượng hơn khoảng 410kB.
*Với file ảnh nhóm.
1- img = imread('anhnhom15.bmp’);

2- gray = rgb2gray(img);

3- figure

4- subplot(2,4,1);

5- imshow(gray);

6- title(‘2048x2048’)

7- subplot(2,4,2);

8- gray1 = imresize(gray, 1/2);

9- imshow(gray1);

10- title(‘1024x1024’)

11- subplot(2,4,3);

12- gray2 = imresize(gray, 1/4);

13- imshow(gray2);

14- title(‘512x512’)

15- subplot(2,4,4);

16- gray3 = imresize(gray, 1/8);

17- imshow(gray3);

18- title(‘256x256’)

19- subplot(2,4,5);

20- gray4 = imresize(gray, 1/16);

21- imshow(gray4);
22- title(‘128x128’);

23- subplot(2,4,6);

24- gray5 = imresize(gray, 1/32);

25- imshow(gray5);

26- title(‘64x64’);

27- subplot(2,4,7);

28- gray6 = imresize(gray, 1/64);

29- imshow(gray6);

30- title(‘32x32’);

31- subplot(2,4,8);

32- gray7 = imresize(gray, 1/128);

33- imshow(gray7);

34- title(‘16x16');

-Kết quả
-Nhận xét.
• Độ phân giải càng cao thì ảnh càng rõ, mượt mà hơn và
ngược lại.
• Độ phân giải 2048x2048 cho ảnh rõ nét nhất, độ phân giải
16x16 cho ảnh bị vỡ, không rõ nét.
• Độ phân giải càng cao thì càng tốn dung lượng , tốn không
gian lưu trữ (ví dụ: ban đầu bức ảnh có dung lượng là 8MB,
với mức lượng tử hóa là 2048x2048 thì dung lượng là
8MB, còn với mức lượng tử hóa là 16x16 thì dung lương là
18kb.
• Tần số lấy mẫu tối ưu là 8, ta chọn ảnh 256x256, vì khi
nhìn qua bức ảnh ta có thể biết được nội dung và tốn ít
dung lượng hơn khoảng 263kB.
* Bài 1B *
a) Nội dung: Ảnh hưởng của lượng tử hoá đến chất lượng ảnh
xám
- Yêu cầu: Cho bức ảnh xám Test.bmp
- Thay đổi số mức lượng tử hoá trên ảnh này.
-Quan sát ảnh, so sánh, đánh giá chất lượng ảnh và dung lượng
ảnh, rút ra nhận xét.
-Từ đó chọn ra số mức lượng tử hoá tối ưu.
-Chụp ảnh cả nhóm, chuyển về ảnh xám và thực hiện lại các yêu
cầu trên.
b) Code matlab.
*Với bức ảnh Test.bmp

1- x = imread('Test.bmp’);

2- imshow(x);

3- b = [0 1 2 3 4 5 6 7 8];
4- for i = 1 : length(b);

5- d = 2^b(i);

6- z = floor(x/d);

7- title([num2str(10-i),'bit']);

8- subplot(2,4,i);

9- imshow(z*d)

10- end

-Kết quả.

-Nhận xét
• Chất lượng ảnh và màu sắc giảm dần từ 8 bit về 1 bit.
• Với 8 bit thì có 256 cấp độ màu sắc và tông màu, cho nên
ta thấy ảnh qua biến đổi như ảnh gốc.
• Tương tự, giảm số bit thì số cấp độ màu sắc và tông màu sẽ
giảm đi nên màu sắc của ảnh sẽ bị biến đổi. Đến 1 bit thì
chỉ còn lại 2^1 = 2 màu, đó là màu trắng và đen.
• Số bit càng lớn thì không gian để lưu trữ lớn hơn(ví dụ: ban
đầu ảnh có dung lượng là 12MB, sau khi thay đổi mức
lượng tử hóa với 8 bit thì dung lượng là 14MB còn 1 bit là
300kB.
• Quan sát ảnh thì ta thấy lượng tử hoá 4 bit là tối ưu, vì màu
sắc chưa bị thay đổi nhiều, và có dung lượng vừa phải
khoảng 1.5MB.

*Với file ảnh nhóm.


1- x = imread('anhnhom15.png);
2- y = rgb2gray(x);
3- imshow(y);
4- b = [1 2 3 4 5 6 7 8];
5- for i = 1 : length(b);
6- d = 2^b(i);
7- z = floor(y/d);
8- title([num2str(10-i),'bit']);
9- subplot(2,4,i);
10- imshow(z*d)
11- end
-Kết quả.

-Nhận xét.
• Chất lượng ảnh và màu sắc giảm dần từ 8 bit về 1 bit.
• Với 8 bit thì có 256 cấp độ màu sắc và tông màu, cho nên
ta thấy ảnh qua biến đổi như ảnh gốc.
• Tương tự, giảm số bit thì số cấp độ màu sắc và tông màu sẽ
giảm đi nên màu sắc của ảnh sẽ bị biến đổi. Đến 1 bit thì
chỉ còn lại 2^1 = 2 màu, đó là màu trắng và đen.
• Số bit càng lớn thì không gian để lưu trữ lớn hơn(ví dụ: ban
đầu ảnh có dung lượng là 8MB, sau khi thay đổi mức lượng
tử hóa với 8 bit thì dung lượng là 8MB còn 1 bit là 580kB.
• Quan sát ảnh thì ta thấy lượng tử hoá 5 bit là tối ưu, vì màu
sắc chưa bị thay đổi nhiều, và có dung lượng vừa phải
khoảng 1.5MB.

* Bài 1C *
a) Nội dung: Ảnh hưởng của lấy mẫu và lượng tử hoá đến chất
lượng ảnh màu
-Yêu cầu: Chọn ảnh màu chụp cả nhóm.
- Thay đổi tần số lấy mẫu trên ảnh này. Quan sát ảnh, so sánh,
đánh giá chất lượng ảnh và dung lượng ảnh, rút ra nhận xét.
- Thay đổi số mức lượng tử hoá trên ảnh này. Quan sát ảnh, so
sánh, đánh giá chất lượng ảnh và dung lượng ảnh, rút ra nhận
xét.
-Lưu ý: Cần quan sát sự thay đổi màu sắc. Tần số lấy mẫu và số
mức lượng tử hoá có ảnh hưởng như thế nào đến màu sắc?

b) Code matlab.
*Với file ảnh nhóm(lấy mẫu).
1- img = imread('anhnhom15.png);
2- subplot(2,4,1);
3- imshow(img);
4- title(‘2048x2048’);
5- subplot(2,4,2);
6- img2 = imresize(img, 1/2);
7- imshow(img2);
8- title(‘1024x1024’);
9- subplot(2,4,3);
10- img3 = imresize(img, 1/4);
11- imshow(img3);
12- title(‘512x512’);
13- subplot(2,4,4);
14- img4 = imresize(img, 1/8);
15- imshow(img4);
16- title(‘256x256’);
17- subplot(2,4,5);
18- img5 = imresize(img, 1/16);
19- imshow(img5);
20- title(‘128x128');
21- subplot(2,4,6);
22- img6 = imresize(img, 1/32);
23- imshow(img6);
24- title(‘64x64’);
25- subplot(2,4,7);
26- img7 = imresize(img, 1/64);
27- imshow(img7);
28- title(‘32x32’);
29- subplot(2,4,8);
30- img8 = imresize(img, 1/128);
31- imshow(img8);
32- title(‘16x16');

-Kết quả.

-Nhận xét.
• Độ phân giải càng cao thì ảnh càng rõ hơn và ngược lại.
• Độ phân giải 2048x2048 cho ảnh rõ nét nhất, độ phân giải
16x16 cho ảnh bị vỡ nhiều nhất, không rõ nét.
• Độ phân giải càng cao thì càng tốn dung lượng, tốn không
gian lưu trữ(ví dụ ban đầu bức ảnh có dung lượng khoảng
8MB, với độ phân giải 2048x2048 thì ta có dung lượng là
25MB, với độ phân giải 16x16 là 18kB.
• Tần số lấy mẫu tối ưu là 1/8, ta chọn ảnh 256x256, vì khi
nhìn qua bức ảnh ta có thể biết được nội dung và tốn ít
dung lượng hơn khoảng 680kB.
*Với file ảnh nhóm (lượng tử hóa)
1- x = imread(‘anhnhom15.png);
2- imshow(x);
3- b = [0 1 2 3 4 5 6 7 8];
4- for i = 1 : length(b)
5- d = 2^b(i);
6- z = floor(x/d);
7- title([num2str(10-i),'bit']);
8- subplot(2,4,i);
9- imshow(z*d);
10- end
-Kết quả.

-Nhận xét.
• Chất lượng ảnh và màu sắc có sự thay đổi dần từ 8 bit về 1
bit.
• Với 8 bit, ta có 256 cấp độ màu sắc và tông màu, số bit
giảm dần, từ 7 bit về 1 bit, các cấp độ màu sắc và tông màu
giảm dần.
• Số bit càng lớn thì không gian để lưu trữ càng lớn(ví dụ ban
đầu bức ảnh có dung lượng là 8MB, sau khi lượng tử hóa ở
mức 8 bit thì có dung lượng là 25MB, và ở mức lượng tử
hóa 1 bit thì có dung lượng là 2MB.
• Quan sát ảnh ta thấy mức lượng tử hoá tối ưu ở 5 bit, bức
ảnh có dung lượng là 8MB.

II) Kỹ thuật mã hóa nén.


1) Lý thuyết.
a) Giới thiệu về nén tín hiệu.

- Nén không tổn hao: entropy được bảo toàn X* = X.


- Nén có tổn hao: entropy bị hao hụt X* ≠ X.
- Đánh giá:
+Tỷ số nén: (số bit trong X)/(số bit trong Y).
+ Chất lượng: sai khác giữa X và X*.

b) Nén có tổn hao.


 - Nén có tổn hao là dạng nén chỉ cho phép phục hồi lại
một phần dữ liệu gốc vì thế có thể làm mất một
lượng thông tin để đổi lại khả năng nén giảm dung lượng
tốt hơn.
- Nén có tổn hao được thực hiện dựa vào lượng tử hóa.

C) Nén không tổn hao.


- Nén không tổn hao là các định dạng nén dữ liệu theo
thuật toán cho phép các dữ liệu có thể được tái tạo mà
không bị mất thông tin. Nén không tổn hao tương phản
với nén có tổn hao khi không làm mất lượng lớn thông tin
dữ liệu.
- Gồm các kỹ thuật: mã hóa Huffman, mã hóa run-length,…
- Mã hóa Huffman: còn gọi là mã hóa entropy, hiệu quả trong.
trường hợp xác suất xuất hiện của các ký tự không đều nhau.
- Mã hóa run-length: hiệu quả trong trường hợp dữ liệu có sự lặp
lại theo từng đoạn (liên tiếp hay không liên tiếp).
2) Bài tập.
a) Nội dung: Thự c hiện mã hoá nén trang tà i liệu quét
TestRLC.bmp và TestFax.bmp dù ng kỹ thuậ t mã hó a RLC.
Cho biết trướ c số điểm ả nh trên mộ t dò ng quét tà i liệu. Tính
tỉ lệ nén. Giả i mã . Nhậ n xét.
b) Code matlab.
*Với file ảnh TestRLC.bmp.
im=imread(‘TestRLC.bmp');
figure;
subplot(1,2,1)
imshow(im);
title('Anh goc');
%nen anh
img=Encoder(im);

%giai ma
img2=Decoder(img);

subplot(1,2,2)
imshow(img2);
title('Anh sau giai ma');

%HAM NEN
function img=Encoder(im)
s = size(im);
ww = [1,1,1,1,1,1,1,1];
bb = [0,0,0,0,0,0,0,0];
img=[];
i=1;
while i <= s(1)
w=0;
b=0;
j=1;
while j <= s(2)
while(im(i,j)==1)
w=w+1;
b=0;
j=j+1;
if (j>s(2))
break;
end
end
if (w>0)
img = cat(2,img,Dec2Bin(w));
img = cat(2,img,ww);
end
if (j>250)
break;
end
while(im(i,j)==0)
b=b+1;
w=0;
j=j+1;
if (j>250)
break;
end
end
if(b>0)
img = cat(2,img,Dec2Bin(b));
img = cat(2,img,bb);
end
end
i=i+1; %t?ng hàng lên ?? th?c hi?n ti?p code
end
end

function bi = Dec2Bin(num)
for k=8:-1:1
bi(9-k) = floor(num/2^(k-1));
num = num-bi(9-k)*2^(k-1);
if num<0
num=0;
end
end
end

%HAM GIAI MA
function img=Decoder(im)
m=1;n=1;
for i= 1:16:length(im)
k = Bin2Dec(im(i:i+7));
for x = 1:k
img(m,n)=im(i+8);
n=n+1;
if (n>250)
n=1;
m=m+1;
end
end
end
end

function dec = Bin2Dec(num)


dec=0;
for k=8:-1:1
dec = dec + num(9-k)*2^(k-1);
end
end
-Kết quả

Ta có số bit sau khi giải nén là: 15520.000.


Dung lượng trước khi nén: 8,062 KB.
Dung lượng sau khi nén: 15520/8= 1940 KB
>> Tỷ lệ nén là: 8062/(15520/8)=4/1

*VỚI FILE ẢNH TestFAX.bmp


im = imread('TestFax.bmp');
figure;
figure;
subplot(1,2,1)
imshow(im);
title('Anh goc');
%nen anh
img=Encoder(im);

%giai ma
img2=Decoder(img);

subplot(1,2,2)
imshow(img2);
title('Anh sau giai ma');

%HAM NEN
function img=Encoder(im)
s = size(im);
ww = [255,255,255,255,255,255,255,255];
bb = [0,0,0,0,0,0,0,0];
img=[];
i=1;
while i <= s(1)
w=0;
b=0;
j=1;
while j <= s(2)
while(im(i,j)==255)
w=w+1;
b=0;
j=j+1;
if (j>250)
break;
end
end
if (w>0)
img = cat(2,img,Dec2Bin(w));
img = cat(2,img,ww);
end
if (j>250)
break;
end
while(im(i,j)==0)
b=b+1;
w=0;
j=j+1;
if (j>250)
break;
end
end
if(b>0)
img = cat(2,img,Dec2Bin(b));
img = cat(2,img,bb);
end
end
i=i+1;
end
end

function bi = Dec2Bin(num)
for k=8:-1:1
bi(9-k) = floor(num/2^(k-1));
num = num-bi(9-k)*2^(k-1);
if (num<0)
num=0;
end
end
end

%HAM GIAI MA
function img=Decoder(im)
m=1;n=1;
for i= 1:16:length(im)
k = Bin2Dec(im(i:i+7));
for x = 1:k
img(m,n)=im(i+8);
n=n+1;
if (n>250)
n=1;
m=m+1;
end
end
end
end

function dec = Bin2Dec(num)


dec=0;
for k=8:-1:1
dec = dec + num(9-k)*2^(k-1);
end
end

-Kết quả:

Ta có số bit sau khi giải nén là: 15520.000.


Dung lượng trước khi nén: 64078 KB.
Dung lượng sau khi nén: 15520/8= 1940 KB
>> Tỷ lệ nén là: 64078/(15520/8)=33/1
3) Nhận xét chung.
• Về chất lượng nén: cả hai file đều được nén với chất lượng
như nhau. Không hề bị tổn hao khi nén. Tài liệu sau khi
được giải mã của hai file hoàn toàn giống với bản gốc.
• Về tỉ lệ nén: tỉ lệ nén của file TestRLC.bmp thấp hơn so
với file TestFax.bmp. Xét thấy, đối với file có BitDepth
càng lớn, thì tỉ lệ nén càng tăng. Như vậy, kỹ thuật nén
Run-length coding cho thấy sự hiệu quả và cực kỳ tối ưu
trong việc nén tài liệu trắng đen. Đặc biệt, khi file tài liệu ở
BitDepth cao thì lại càng được lợi từ kỹ thuật nén này.
III. Kỹ thuật mã hóa kênh.
1.Lý thuyết.
a) Mã hóa kênh.
- Mục đích: nhằm phát hiện/sửa các lỗi do nhiễu trên kênh
truyền gây ra.
- Nguyên tắc: tăng tốc độ bit để tăng xác suất phát hiện/sửa lỗi.

b) Phân loại mã hóa kênh.


2) Bài tập.
*Bài 3A*
a) Yêu cầu.
-Thực hiện mã hóa ASCII cho đoạn văn bản sau:
Electronic and Telecommunication
- Giả sử lỗi rơi vào các vị trí 1, 2, 4, 3, 3, 5, 7, 1, 6 của các ký tự
màu đỏ. Giải mã.
-Nhận xét về khả năng phát hiện lỗi của mã ASCII.

b) Code matlab
a='Electronic and Telecommunication'
c=dec2bin(a)
if c(1,1)=='0'
c(1,1)='1';
else
c(1,1)='0';
end
if c(4,2)=='0'
c(4,2)='1';
else
c(4,2)='0';
end
if c(12,4)=='0'
c(12,4)='1';
else
c(12,4)='0';
end
if c(17,3)=='0'
c(17,3)='1';
else
c(17,3)='0';
end
if c(22,3)=='0'
c(22,3)='1';
else
c(22,3)='0';
end
if c(24,5)=='0'
c(24,5)='1';
else
c(24,5)='0';
end
if c(26,7)=='0'
c(26,7)='1';
else
c(26,7)='0';
end
if c(29,1)=='0'
c(29,1)='1';
else
c(29,1)='0';
end
if c(32,6)=='0'
c(32,6)='1';
else
c(32,6)='0';
end
c
a=char(bin2dec(c))
a=a'

Output matlab:

a=

Electronic and Telecommunication

c=

1000101
1101100
1100101
1100011
1110100
1110010
1101111
1101110
1101001
1100011
0100000
1100001
1101110
1100100
0100000
1010100
1100101
1101100
1100101
1100011
1101111
1101101
1101101
1110101
1101110
1101001
1100011
1100001
1110100
1101001
1101111
1101110

c=
0000101
1101100
1100101
1000011
1110100
1110010
1101111
1101110
1101001
1100011
0100000
1101001
1101110
1100100
0100000
1010100
1110101
1101100
1100101
1100011
1101111
1111101
1101101
1110001
1101110
1101000
1100011
1100001
0110100
1101001
1101111
1101100

a=
leCtronic ind Tuleco}mqnhca4iol

-Nhận xét:
 Ma trận c đầu là ma trận mã hóa, ma trận c sau là ma
trận giải mã và sửa lỗi, a sau khi giải mã không tương
khớp ma trận a ban đầu
 Mã ASCII không có khả năng phát hiện lỗi và tự sửa
được lỗi
*Bài 3B*
a) Yêu cầu.
Cho đoạn văn bản sau:
Electronic
- Mã hóa bản tin trên dùng mã khối tuyến tính (4,7) với đa thức
sinh như trong ví dụ. Tính tỷ lệ mã.
- Giải mã bản tin trên với giả sử lỗi xuất hiện ở vị trí 1, 7 trong
ký tự “e” màu đỏ. Nhận xét về khả năng phát hiện lỗi của mã (4,
7).
b) Code matlab.
a='Electronic'
m=dec2bin(a)
m=[1 0 0 0
1011
1011
0011
0010
1110
0011
1110
1001
1100
1011
0111
1110
1110
1101
0011
1000
1 1 0 0]
H=[1 0 1 1 1 0 0
1101010
1 1 1 0 0 0 1]
G=[1 0 0 0 1 1 1
0100011
0010101
0 0 0 1 1 1 0]
c=m*G
c=mod(c,2)

Output:
a=
Electronic
m=
1000101
1101100
1100101
1100011
1110100
1110010
1101111
1101110
1101001
1100011
m=
1 0 0 0
1 0 1 1
1 0 1 1
0 0 1 1
0 0 1 0
1 1 1 0
0 0 1 1
1 1 1 0
1 0 0 1
1 1 0 0
1 0 1 1
0 1 1 1
1 1 1 0
1 1 1 0
1 1 0 1
0 0 1 1
1 0 0 0
1 1 0 0
H=
1 0 1 1 1 0 0
1 1 0 1 0 1 0
1 1 1 0 0 0 1
G=
1 0 0 0 1 1 1
0 1 0 0 0 1 1
0 0 1 0 1 0 1
0 0 0 1 1 1 0
c=
1 0 0 0 1 1 1
1 0 1 1 3 2 2
1 0 1 1 3 2 2
0 0 1 1 2 1 1
0 0 1 0 1 0 1
1 1 1 0 2 2 3
0 0 1 1 2 1 1
1 1 1 0 2 2 3
1 0 0 1 2 2 1
1 1 0 0 1 2 2
1 0 1 1 3 2 2
0 1 1 1 2 2 2
1 1 1 0 2 2 3
1 1 1 0 2 2 3
1 1 0 1 2 3 2
0 0 1 1 2 1 1
1 0 0 0 1 1 1
1 1 0 0 1 2 2
c=
1 0 0 0 1 1 1
1 0 1 1 1 0 0
1 0 1 1 1 0 0
0 0 1 1 0 1 1
0 0 1 0 1 0 1
1 1 1 0 0 0 1
0 0 1 1 0 1 1
1 1 1 0 0 0 1
1 0 0 1 0 0 1
1 1 0 0 1 0 0
1 0 1 1 1 0 0
0 1 1 1 0 0 0
1 1 1 0 0 0 1
1 1 1 0 0 0 1
1 1 0 1 0 1 0
0 0 1 1 0 1 1
1 0 0 0 1 1 1
1 1 0 0 1 0 0

Code matlab giải mã:


r1=[0 0 0 0 1 1 1]
r2=[1 0 0 1 1 0 0]

e=[zeros(1,7)
eye(7)]
s=e*H'
s1=r1*H'
s1=mod(s1,2)
s2=r2*H'
s2=mod(s2,2)

Output:
r1 =
0 0 0 0 1 1 1
r2 =

1 0 0 1 1 0 0
e=
0 0 0 0 0 0 0
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
s=
0 0 0
1 1 1
0 1 1
1 0 1
1 1 0
1 0 0
0 1 0
0 0 1
s1 =
1 1 1
s1 =
1 1 1
s2 =
3 2 1
s2 =
1 0 1

Kết luận:
+ Dựa vào s1 và s2 so sánh với s ta tìm được lỗi ở vị trí 1 trong s1 và 3 trong s2
( tương đương lỗi bit 7 của kí tự E). Vậy mã khối tuyến tính (4,7) sửa được lỗi
trên.
*BÀI 3C*
a) Yêu cầu.
-Thực hiện bài tập 3B với mã (7, 11). Đa thức sinh tự chọn.
-So sánh mã (4,7) và (7,11) về các tiêu chí:
+ Tỷ lệ mã.
+ Khả năng phát hiện lỗi.
b) Code matlab.
r=[0 0 0 0 1 0 0 1 1 0 0]
e=[zeros(1,11)
eye(11)]
s=e*H'
s1=r*H'
s1=mod(s1,2)
Output:
r=
0 0 0 0 1 0 0 1 1 1 0
e=
0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 1
s=
0 0 0 0
1 1 0 0
1 0 1 0
1 0 0 1
1 1 1 0
0 1 0 1
0 0 1 1
0 1 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
s1 =
1 2 1 1
s1 =
1 0 1 1

-Kết luận:
 So sánh giữa s1 và từng vector của s ta không suy ra
được vector lỗi vậy không thể sửa được lỗi.

-Tính tỉ lệ mã và so sánh giữa tỉ lệ mã và khả năng sửa lỗi


+Tính tỉ lệ mã (4,7)= Tổng số bit sau/Tổng số bit
trước
= (18*3+72)/(7*10)
=1.8
+Tính tỉ lệ mã (7,11)= Tổng số bit sau/Tổng số bit
trước
= (11*10)/(7*10)
=1.57
*So sánh:
-Hao hụt về bit: Mã(4,7) lớn, Mã(7,11) nhỏ.
-Khả năng sửa lỗi: Mã(4,7) có, Mã(7,11) không.

IV) Kỹ thuật ghép kênh.


1) Lý thuyết.
a) Giới thiệu.
- Mục đích: nhằm chia sẻ tài nguyên thông tin (time division,
space division, frequency division, code division,…
- Biện pháp: ghép kênh (multiplexing) và đa truy cập (multiple
access).
- Phân loại ghép kênh.
+ Ghép kênh phân chia theo tần số (FDM)
+ Ghép kênh phân chia theo thời gian (TDM)
+ Ghép kênh phân chia theo mã (CDM)
+ Ghép kênh phân chia theo không gian (SDM)
b) Kỹ thuật ghép kênh FDM.
- FDM là kỹ thuật ghép kênh dành cho tín hiệu tương tự.
- Các tín hiệu nhánh được truyền chung cùng lúc trên một kênh
truyền.
- Mỗi tín hiệu nhánh được truyền riêng lẻ trong các kênh con
không chồng nhau, sử dụng các tần số khác nhau.
c) Kỹ thuật ghép kênh TDM.
- TDM là kỹ thuật ghép kênh dành cho tín hiệu rời rạc/số
- Các tín hiệu nhánh được truyền trên cùng một kênh truyền với
cùng một dải tần số, truyền trong các khe thời gian khác nhau.
- Các khe thời gian được ấn định cho các tín hiệu nhánh khác
nhau theo kiểu xoay vòng.
2) Bài tập.

* Bài 4A *
Yêu cầu:
Thiết kế hệ thống FDM gồm 7 kênh thoại, mỗi kênh nằm trong
dải tần số từ 300Hz đến 3400Hz. Tín hiệu FDM được tạo thành
từ các tín hiệu điều chế SSB biên trên và nằm trong dải tần từ
30kHz đến 70kHz.
a) Vẽ phổ của tín hiệu FDM, trong đó ghi rõ vị trí các phổ thành
phần và băng thông bảo vệ.
b) Vẽ sơ đồ khối phát của hệ thống FDM và xác định rõ các
thông số của các khối.
*Bài 5A*
Yêu cầu:
Thiết kế hệ thống TDM ghép 4 kênh thông tin số tốc độ 300 bps
và một kênh thông tin tương tự có băng thông 500 Hz. Giả sử
rằng các mẫu tín hiệu tương tự sẽ được mã hoá thành các từ mã
PCM 4 bit.
a) Vẽ sơ đồ khối của hệ thống thiết kế, ghi đầy đủ các giá trị của
các đại lượng cần thiết ở tất cả các điểm trên sơ đồ.
b) Giải thích thiết kế.
BÀI LÀM

a) Sơ đồ khối

Tín hiệu Tín hiệu TDM


Nguồn 1 TDM PAM 1 PCM 4 (Kbps)
KHz ADC 4 bit
500
(Hz)

Nguồn 2 500 (bps)


Chèn bit
300 (bps) Tín hiệu TDM
PCM 6 (Kbps)

Nguồn 3
300 (bps)
Chèn bit
500 (bps)
.
Nguồn 4
Chèn bit
300 (bps) 500 (bps)
(b(bps)

Nguồn 5
Chèn bit
300 (bps) 500 (bps)
b)Giải thích thiết kế
Bộ ghép kênh TDM được thiết kế để ghép tín hiệu từ 5 nguồn,
trong đó:
 Nguồn 1 là nguồn tín hiệu tương tự, băng thông 500 (Hz)
 Nguồn 2,3,4,5 là nguồn tín hiệu số, đồng bộ với tốc độ 300
(pbs)
Đầu tiên, cần phải số hóa nguồn tương tự. Tần số lấy mẫu của
nguồn tương tự là 500.2=1000 ( Hz ) =1( KHz). Việc lấy mẫu này tạo ra
tín hiệu TDM PAM 1000 mẫu trong một giây. Giả sử mỗi
mẫu được chuyển sang từ mã PCM 4 bit. Như vậy tín hiệu
TDM PCM ở đầu ra của ADC có tốc độ 4 (kbps)
Tiếp theo, tín hiệu từ 4 nguồn số được chèn thêm bit để tạo
thành các dòng số có tốc độ 500 (bps)
Tín hiệu số TDM PCM sẽ được kết hợp với dữ liệu từ các
dòng số 500 (bps) bằng cách sử dụng một bộ chuyển mạch
ghép kênh. Bộ chuyển mạch này hoạt động theo kiểu xoay
vòng lần lượt lấy mẫu dòng TDM PCM 4 (kbps), dòng số 500
(bps) từ nguồn 2, dòng TDM PCM 4 (kbps), dòng số 500
(bps) từ nguồn 3… và cứ như thế. Đây là bộ chuyển mạch 4
đầu vào 1 đầu ra, với tần số chuyển mạch là f =500( Hz)

You might also like