Tải bản đầy đủ (.docx) (14 trang)

Bao cao thong tin vo tuyen

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (823.35 KB, 14 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN MÔN THÔNG TIN VÔ TUYẾN
ĐỀ TÀI: TRUYỀN DỮ LIỆU BẰNG ÂM THANH

Sinh viên thực hiện: PHẠM ĐÌNH TRUNG20114640
NGUYỄN VĂN TUYẾN2011
Giáo viên hướng dẫn: NGUYỄN QUỐC KHƯƠNG

Hà Nội, 05-2016


I.

MỤC LỤC

ĐỀ TÀI: TRUYỀN DỮ LIỆU BẰNG ÂM THANH..........................................................................................0
I.

MỤC LỤC......................................................................................................................................................1

II.

DANH MỤC HÌNH ẢNH.............................................................................................................................2

III.

LỜI NÓI ĐẦU...........................................................................................................................................3


IV.

NỘI DUNG................................................................................................................................................3

4.1.

Đặt vấn đề........................................................................................................................................3

4.2.

Sơ đồ khối hệ thống..........................................................................................................................3

4.3.
Các khối trong chương trình gửi..................................................................................................... 4
4.3.1. Khối nhập liệu.............................................................................................................................4
4.3.2. Khối mã hóa................................................................................................................................4
4.3.3. Khối điều chế...............................................................................................................................6
4.4.
Các khối trong chương trình nhận...................................................................................................8
4.4.1. Thu âm thanh...............................................................................................................................8
4.4.2. Lọc thông dải...............................................................................................................................9
4.4.3. Giải mã chập bằng Viterbi.........................................................................................................11
4.4.4. Kết quả.......................................................................................................................................12
V.
VI.

Kết luận.........................................................................................................................................................13
Tài liệu tham khảo..................................................................................................................................13

2



II.
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

DANH MỤC HÌNH ẢNH

1 Giao diện phần mềm gửi........................................................................................... 4
2 Code của đoạn nhận dữ liệu từ người dùng.............................................................. 4
3 Code chuyển xâu ký tự thành chuỗi bit.....................................................................4

4 Mô tả một bộ tạo mã................................................................................................. 5
5 Code tạo ra mã chập từ bản tin..................................................................................5
6 Chuỗi bit đầu vào mã hóa..........................................................................................6
7 Chuỗi bit đầu ra sau mã hóa......................................................................................6
8 Các thông số của âm thanh điều chế......................................................................... 7
9 Điều chế chuỗi bit thành âm thanh............................................................................7
10 Đồ thị giá trị của các tín hiệu được điều chế...........................................................8
11 Chuyển tín hiệu đã điều chế thành file âm thanh.................................................... 8
12 Đoạn code thu âm thanh vào mảng để giải mã....................................................... 8
13 Lọc thông dải...........................................................................................................9
14 Giá trị của x1- đầu ra của bộ lọc thông dải BP1................................................... 10
15 Tín hiệu sau lọc thông dải (xanh) và sau biến đổi Hilbert (đỏ).............................10
16 Lượng tử hóa tín hiệu............................................................................................10
17 Tín hiệu trước (đỏ) và sau khi lượng tử hóa (xanh).............................................. 11
18 Xác định đoạn chứa dữ liệu và cắt khỏi bit đồng bộ.............................................11
19 Giải mã Viterbi và chuyển thành xâu ký tự.......................................................... 11
20 Giao diện gửi.........................................................................................................12
21 Giao diện nhận...................................................................................................... 12


III. LỜI NÓI ĐẦU
Lời đầu tiên chúng em xin gửi lời cảm ơn đến thầy Nguyễn Quốc Khương về tiết học
rất bổ ích và thú vị. Thầy đã tạo cảm hứng nghiên cứu khoa học cho học trò như chúng em.
Cách mà thầy truyền đạt cũng đã khiến kiến thức được chúng em tiếp thu rất nhanh và từ
đó đã có thể ứng dụng vào việc nghiên cứu khoa học.
Cá nhân nhóm chúng em cho rằng đề tài “Truyền thông bằng âm thanh” mà thầy đưa ra
rất thử thách những cũng không kém phần thú vị. Bình thường, người ta chỉ nghĩ là dữ liệu
thì sẽ truyền theo được có dây hoặc không dây sử dụng song điện từ, do đó, đề tài thầy ra
đã tạo được sự khác biệt.
Trong những tiết học trên lớp, thầy đã khéo léo lồng những kỹ năng sử dụng công cụ

vào trong bài học, việc đó đã gợi mở rất nhiều cho công tác nghiên cứu của chúng em.
Trong báo cáo này chúng em tập trung vào việc sử dụng bộ công cụ Matlab để thực hiện
các công việc của đề tài.

IV. NỘI DUNG
4.1.

Đặt vấn đề

Trong thông tin vô tuyến, mã hóa và điều chế là những bước bắt buộc để truyền
thông tin. Trong bài tập lớn này, ứng dụng mã chập và điều chế FSK, chúng em thực hiện
một hệ thống gồm 2 phần mềm, cho phép truyền và gửi thông tin giữa 2 máy tính thông
qua card âm thanh.

4.2.

Sơ đồ khối hệ thống

NHẬP
DỮ LIỆU

MÃ HÓA
THÀNH CHUỖI BIT

MÃ HÓA
(MÃ CHẬP)

ĐIỀU CHẾ
FSK


KÊN
H
TRU
YỀN
XUẤT
DỮ LIỆU

GIẢI MÃ BIT
THÀNH KÝ TỰ

GIẢI MÃ
VITERBI

GIẢI ĐIỀU
CHẾ FSK

Dữ liệu đầu vào ở đây sẽ là một chuỗi ký tự được nhập từ bàn phím sau đó
từng ký tự sẽ được chuyển thành một byte (một chuỗi 8 bit). Chuỗi bit sau đó sẽ
được mã hóa bằng mã chập, rồi được điều chế FSK thành âm thanh.
Bên thu, máy thu thu được âm thanh, đưa qua bộ giải điều chế FSK, được
chuỗi từ mã như trước khi điều chế. Sau khi qua giải mã viterbi, từ chuỗi từ mã này,
ta thu được chuỗi bit ban đầu, sau khi tách thành các byte thì được chuyển ngược lại
thành dữ liệu ban đầu.


4.3.

Các khối trong chương trình gửi

4.3.1. Khối nhập liệu

Sử dụng một textInput, người dùng gõ vào chuỗi ký tự cần gửi. Khi bấm vào nút
“Tạo ra file âm thanh”, chương trình chạy và thực hiện các thuật toán mã hóa, điều chế,
sau đó hiển thị lên màn hình.

Hình 1 Giao diện phần mềm gửi

Hình 2 Code của đoạn nhận dữ liệu từ người dùng

4.3.2. Khối mã hóa
Sau khi nhận được dữ liệu, phần mềm chuyển chuỗi nhập vào từ dạng String thành
chuỗi bit với lệnh
dec2bin(inp) –‘0’: chuyển từ chuỗi byte sang chuỗi bit ở dạng string, sau đó trừ mỗi
phần tử đi ‘0’ (số tương ứng với kí tự 0 ở dạng byte theo bảng mã ASCII), được mảng
chứa các bit của chuỗi nhập vào ở dạng byte
reshape(dec2bin(inp) –‘0’, 1, []): sắp xếp chuỗi bit này vào mảng một chiều

Hình 3 Code chuyển xâu ký tự thành chuỗi bit

Sau khi có chuỗi bit, ta sử dụng mã chập để mã hóa dữ liệu.
4.3.2.1.

Mã chập

Mã chập là phương pháp mã hóa sửa sai được xây dựng từ 1955. Tuy nhiên mã chập
chỉ được ứng dụng nhiều từ khi Viterbi đưa ra phương pháp giải mã mang tên ông năm
1967.
Nguyên lý của mã chập được giải thích đơn giản là chập dòng bit đầu vào với đáp ứng
xung của bộ tạo mã.



Hình 4 Mô tả một bộ tạo mã

Hình 4 cho ta thấy một bộ tạo mã đơn giản nhất (lấy từ tài liệu tham khảo của
matlab), mỗi bit vào, được mã hóa thành 2 bit đầu ra, do đó từ mã có độ dài lớn hơn bản
tin.
Trên hình 4 cũng cho ta thấy ví dụ của công thức mã chập, đầu ra có giá trị
Y01 = x0+x-1*g11
Y02 = x0+x-1*g12+x-2*g22
Tức là trong mỗi bit đã mã hóa tại đầu ra không chỉ chứa thông tin của bit đầu vào mà
còn chưa thông tin của bit đầu vào đã mã hóa trước đó.
Đối với một bộ tạo mã, có các thông số quan trọng:
- L: là một vector có số phần tử chính bằng số bộ D-FF có trong bộ tạo mã, mỗi phần tử
của vector thể hiện chiều dài ràng buộc của mỗi bộ, là số bit đầu vào nằm trong bộ tạo
mã khi bộ tạo mã hoạt động (bằng số D-FF trong mỗi bộ công thêm 1), ví dụ với hình
trên là 3.
- G: ma trận đa thức sinh, G có bao nhiêu phần tử thì bộ tạo mã có từng ấy cộng thêm
một đầu ra. Ví dụ ma trận G = [5 7] sử dụng trong chương trình này là một vector có
Trong bài tập lớn này, code em sử dụng để thực hiện mã chập như sau

Hình 5 Code tạo ra mã chập từ bản tin

Ở đây ta có hai hàm thực hiện công việc mã hóa là poly2trellis(ContrainLength,
GenerateMatrix) và convenc(signal, trellis).
Hàm poly2trellis(ContrainLength, GenerateMatrix) thực hiện việc vẽ máy trạng thái và
chuyển thành sơ đồ lưới mắt cáo cho bộ tạo mã sử dụng đầu vào là L và G.
Hàm convenc(signal, trellis) tiến hành mã hóa chuỗi bit đầu vào sử dụng sơ đồ lưới
mắt cáo vừa tạo. Đầu ra chính là tín hiệu đã được mã hóa.


Hình 6 Chuỗi bit đầu vào mã hóa


Hình 7 Chuỗi bit đầu ra sau mã hóa

4.3.3. Khối điều chế
Mục tiêu của khối điều chế là từ chuỗi bit nhận được từ mã chập, chuyển thành file
âm thanh để chuyển sang máy nhận.


Hình 8 Các thông số của âm thanh điều chế

Để thực hiện điều này, trong bài tập lớn em sử dụng điều chế FSK (frequency shift
keying). Các thông số trong hình 6 có ý nghĩa như sau.
vbit: Tốc đột truyền 100bit/s
f1 = 1000: bit 1 được điều chế thành sóng sin 1000Hz
f2= 3000: Bit 0 được điều chế thành sóng sin 3000Hz
FS = 10000: Tần số mẫu của file xuất ra là 10000Hz
Các bước của chương trình điều chế:

Hình 9 Điều chế chuỗi bit thành âm thanh

-

Bước 1: chèn chuỗi bit đồng bộ vào đầu và cuối chuỗi bit cần gửi
Bước 2: nhân chuỗi bit với sóng mang
Bước 3: cộng 2 sóng 1000Hz và 3000Hz thành một sóng hoàn chỉnh

Chi tiết:
Chèn bit đồng bộ: vừa cung cấp tín hiệu lề để tránh mất phần dữ liệu ở hai đầu
bản tin, vừa cung cấp tín hiệu để biết thời điểm bắt đầu của bản tin.
Nhân chuỗi bit với sóng mang:

s là giá trị tức thời của sóng mang tần số 1000Hz
c là giá trị tức thời của sóng mang tần số 3000Hz
Tại thời điểm a, bit được truyền (bk(a)) được đánh giá giá trị bằng 0 hay 1, nếu
bằng 1 thì R=1, I =0 và ngược lại. AR và AI là hai mảng chứa giá trị của R và I theo thời


gian. carrierI và carrierR là hai mảng chứa giá trị của sóng sin với tần số 3000Hz và
1000Hz theo thời gian.
Đem nhân AR và carrierR được sóng ASK1 có tần số 1000Hz, bật tắt theo bit 1 của
chuỗi dữ liệu, tương tự ASK2 có tần số 3000Hz và bật tắt theo bit 0 của chuỗi dữ liệu.
Cộng 2 sóng trên, được mảng chứa dãy tín hiệu âm thanh đầy đủ (ký hiệu fsk1).

Hình 10 Đồ thị giá trị của các tín hiệu được điều chế

Hình 8 cho thấy giá trị của tín hiệu được điều chế, các bit 0 được điều chế vào sóng
mang tần số 3000Hz nên có đồ thị dày hơn hẳn sóng của các bit 1 được tạo thành từ sóng
1000Hz.
Cuối cùng, sau khi điều chế FSK, tín hiệu được chuyển thành file âm thanh định
dạng WAV, dùng lệnh sau.

Hình 11 Chuyển tín hiệu đã điều chế thành file âm thanh

Trong đó:

4.4.

fsk1 là mảng giá trị tín hiệu đã điều chế.
FS là tần số lấy mẫu của file âm thanh.

Các khối trong chương trình nhận


4.4.1. Thu âm thanh

Hình 12 Đoạn code thu âm thanh vào mảng để giải mã

Để thu âm thanh, đầu tiên tạo một đối tượng thu âm
audiorecorder(FS, 16, 1,1) có nghĩa là thu âm với






tần số lấy mẫu FS (10000Hz)
 mỗi mẫu có độ sâu 16bit
 thu mono (1 kênh)
thiết bị thu có ID = 1 Sau đó để bắt
đầu thu âm, dùng lệnh
recordblocking(recFSK, 8) có nghĩa
 thu âm bằng đối tượng recFSK
 thu âm trong 8s
Chuyển âm thanh đã thu được thành mảng, dùng hàm getaudiodata(recFSK).

4.4.2. Lọc thông dải

Hình 13 Lọc thông dải

Từ âm thanh biến thành dữ liệu, ta cần lọc âm thanh ở tần số 1000Hz và 3000Hz để
biến thành chuỗi bit, để làm vậy, ở đây em sử dụng lọc thông dải.
Phân tích code trong hình 11, ta có.

- BP1 là bộ lọc đối với tần số 900÷1100Hz
- BP2 là bộ lọc đối với tần số 2700÷3300Hz
Sử dụng bộ lọc BP1 và BP2, từ tín hiệu ban đầu, ta tách ra được chuỗi giá trị x1 và x2
ứng với tần số lọc.


Hình 14 Giá trị của x1- đầu ra của bộ lọc thông dải BP1

Từ chuỗi giá trị này, sử dụng biến đổi Hilbert và lấy module của các số phức thu
được, ta có được đường bao của tín hiệu trên.

Hình 15 Tín hiệu sau lọc thông dải (xanh) và sau biến đổi Hilbert (đỏ)

Sau khi có được đường bao, cần phải lượng tử hóa tín hiệu để biến thành chuỗi bit.
Ta sử dụng code như trong hình

Hình 16 Lượng tử hóa tín hiệu

Mảng tên envy1 là mảng chứa giá trị của đường bao màu đỏ trên hình 13.
Với các phần tử trong mảng này, ta đưa ra 2 mức lượng tử ứng với bit 0 và 1, phân biệt với
nhau ở giá trị ½ giá trị tối đa của envy1.


Sau khi lượng tử hóa envy1, ta có chuỗi bit FSK1.

Hình 17 Tín hiệu trước (đỏ) và sau khi lượng tử hóa (xanh)

Đã thu được chuỗi bit, để xác định đoạn chứa dữ liệu, ta dựa vào chuỗi bit đồng bộ.

Hình 18 Xác định đoạn chứa dữ liệu và cắt khỏi bit đồng bộ


4.4.3. Giải mã chập bằng Viterbi
Có chuỗi bit được mã hóa chập, ta sử dụng hàm giải mã Viterbi để tìm lại dữ liệu ban đầu.

Hình 19 Giải mã Viterbi và chuyển thành xâu ký tự

Ở đây, các thông số được đặt đúng như bộ tạo mã đã đặt.
- L=3
- G = [5, 7]
Đem chuỗi bit thu được ở trên xếp vào mảng 1 chiều bằng lệnh reshape().
Giải mã chập bằng lệnh vitdec(sig_conv,trellis,len,'trunc','hard').
Trong đó:
sig_conv là mảng chứa chuỗi bit cần giải mã
- trellis là lưới mắt cáo của mã chập


-

- len là độ sâu dò ngược của bộ giải mã, bằng 2 vì L =3
- bộ tạo mã bắt đầu với giá trị toàn rỗng, nên sử dụng chế độ trunc cho bộ giải mã
mã gửi đi ở dạng nhị phân nên dùng chế độ hard để bộ giải mã trả về nhị phân Để
chuyển từ chuỗi bit thành xâu ký tự, sử dụng hàm
outp=char(bin2dec(num2str(reshape(sig_out,[],7)))')

4.4.4. Kết quả

Hình 20 Giao diện gửi

Hình 21 Giao diện nhận



V.

Kết luận

Thông qua bài tập lớn này, chúng em hiểu hơn về quá trình truyền tín hiệu trong thông tin
vô tuyến, các bước mã hóa, giải mã, điều chế, giải điều chế và thành thạo hơn với phần
mềm matlab. Chúng em xin cảm ơn thầy Nguyễn Quốc Khương đã giúp đỡ chúng em
trong quá trình hoàn thành báo cáo bài tập lớn này.

VI. Tài liệu tham khảo:
[1] TS. Phạm Hồng Liên, Đặng Ngọc Khoa, Trần Thanh Phương , Matlab và ứng dụng
trong viễn thông. 11/2005.
[2] Nguyễn Quốc Trung, Xử lí tín hiệu và lọc số.
[3] Quách Ngọc Tuấn, Xử lí tín hiệu số.
[3] Cheng-Xiang Wang, PGS.TS Nguyễn Văn Đức, Các bài tập Matlab về thông tin vô
tuyến.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×