LỜI MỞ ĐẦU Truyền tín hiệu là quá trình truyền thông tin từ một điểm đến một điểm khác thông qua các phương tiện truyền tải và giao thức.. Trong cuộc sống ngày ngày nay, có nhiều phương
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN - ĐIỆN TỬ
*****ᴼ*****
BÁO CÁO ĐỒ ÁN I
Đề tài VIẾT CHƯƠNG TRÌNH MATLAB GIẢI MÃ
TÍN HIỆU AMI
Giảng viên hướng dẫn: Nguyễn Quốc Khương Sinh viên thực hiện: Lê Quang Huy
MSSV: 20203720
Tháng 2/2024
Trang 2LỜI MỞ ĐẦU
Truyền tín hiệu là quá trình truyền thông tin từ một điểm đến một điểm khác thông qua các phương tiện truyền tải và giao thức Trong cuộc sống ngày ngày nay, có nhiều phương thức truyền tín hiệu đa dạng và phổ biến được sử dụng để giao tiếp, chia sẻ thông tin và kết nối với nhau Bên cạnh đó, truyền tín hiệu còn là quá tình chuyển đổi và vận chuyển thông tin từ một điểm đến một điểm khác thông qua các phương tiện giao thông Tín hiệu có thể là âm thanh, hình ảnh hoặc bất kỳ oại thông tin nào được biểu diễn ở dạng tương tự hoặc kỹ thuật số Truyền tín hiệu quan trọng trong nhiều lĩnh vực bao gồm: Viễn thông, y tế, giao thông, công nghiệp, khoa học nghiên cứu
Thấy được tầm quan trọng của việc truyền dữ liệu, em đã tìm hiểu
đề tài nhỏ liên quan tới truyền dữ liệu Nhờ có sự giúp đỡ của thầy
Nguyễn Quốc Khương em đã có thể hoàn thành đề tài: Chương trình Matlab giải mã tín hiệu Em rất mong có được lời nhận xét và góp ý của
thầy cô về chủ đề mà chúng em thực hiện
Trang 32
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 3
DANH MỤC HÌNH VẼ 4
I GIỚI THIỆU VỀ PHẦN MỀM MATLAB 5
1 Giới thiệu chung 5
2 Hệ thống Matlab 5
II ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ 7
1 Điều chế 7
2 Giải điều chế 7
3 Các phương pháp điều chế và giải điều chế 8
III TRUYỀN DẪN TÍN HIỆU 9
1 Định nghĩa 9
2 Mã đường dây 10
3 Mã AMI 10
IV CHƯƠNG TRÌNH MATLAB GIẢI MÃ TÍN HIỆU 11
1 Thu tín hiệu mã NRZ 11
2 Giải mã tín hiệu 12
3 Tổng kết 13
TÀI LIỆU THAM KHẢO 14
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
2D 2 Dimensional 3D 3 Dimensional
AM Amplitude Modulation
FM Frequency Modulation
PM Phase Modulation QAM Quadrature Amplitude Modulation OFDM Orthogonal Frequency Division Multiplexing
DM Delta Modulation ASK Amplitude Shift Keying PSK Phase Shift Keying FSK Frequency Shift Keying BPSK Binary Phase Shift Keying QPSK Quadrature Phase Shift Keying MSK Minimum Shift Keying
QAM Quadrature Amplitude Modulation A/D Analog to Digital
D/A Digital to Analog
Trang 54
DANH MỤC HÌNH VẼ
Hình 1 Sơ đồ điều chế tín hiệu số [1] 9
Hình 2 Chương trình phát tín hiệu [2] 11
Hình 3 Đồ thị tín hiệu thu được [4] 11
Hình 4 Đồ thị hàm tương quan giữa tín hiệu thu và header [4] 12
Hình 5 Dòng bit thu được sau giải mã [5] 13
Hình 6 Nội dung thu được sau giải mã [6] 13
Trang 6I GIỚI THIỆU VỀ PHẦN MỀM MATLAB
1 Giới thiệu chung
MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế Matlab cho phép tính toán số với
ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dung và liên kết với các chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
Hệ thống MATLAB được chia làm 5 phần:
⚫ Môi trường phát triển: Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file Bao gồm: Desktop, Command Window, Command History, Browsers for viewinghelp
⚫ Thư viện, các hàm toán học: Bao gồm các cấu trúc như tính tổng, sin, cosin, các phép tính đơn giản cho đến các phép tính phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi, laplace
⚫ Ngôn ngữ MATLAB: Đó là ngôn ngữ về ma trận và mảng, các dòng lệnh, các hàm, các cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
⚫ Đồ họa MATLAB: Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D, tạo các ảnh chuyển động, cung cấp các hình ảnh tương tác giữa người sử dụng và máy tính
⚫ Giao tiếp với các ngôn ngữ khác: MATLAB cho phép tương tác với các ngôn ngữ khác như C,fortran…
2 Hệ thống Matlab
Hệ thống MATLAB được chia làm 5 phần
⚫ Môi trường phát triển: Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng ta sử dụng các lệnh và các file Bao gồm: Desktop, Command Window, Command History, Browsers for viewinghelp
⚫ Thư viện, các hàm toán học: Bao gồm các cấu trúc như tính tổng, sin, cosin, các phép tính đơn giản cho đến các phép tính phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi, laplace
⚫ Ngôn ngữ MATLAB: Đó là ngôn ngữ về ma trận và mảng, các dòng lệnh, các hàm, các cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng
⚫ Đồ họa MATLAB: Bao gồm các câu lệnh thể hiện đồ họa trong môi trường 2D và 3D, tạo các ảnh chuyển động, cung cấp các hình ảnh tương tác giữa người sử dụng và máy tính
Trang 76
⚫ Giao tiếp với các ngôn ngữ khác: MATLAB cho phép tương tác với các ngôn ngữ khác như C,fortran
Trang 8II ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ
1 Điều chế
Điều chế là quá trình biến đổi tín hiệu thông tin để truyền qua môi trường truyền dẫn, chẳng hạn như sóng vô tuyến, cáp quang hoặc đường dây điện Mục đích của điều chế là chuyển đổi tín hiệu thông tin thành một dạng phù hợp cho việc truyền thông qua môi trường truyền dẫn đó Tín hiệu thông tin thường có dạng tương tự hoặc kỹ thuật số, trong khi tín hiệu truyền dẫn thường được biểu diễn dưới dạng sóng điện từ Các phương pháp điều chế phổ biến bao gồm:
⚫ Điều chế biên độ (AM): Phương pháp này biến đổi thông tin bằng cách thay đổi biên độ của sóng mang theo tín hiệu đầu vào
⚫ Điều chế tần số (FM): Phương pháp này biến đổi thông tin bằng cách thay đổi pha của sóng mang theo tín hiệu đầu vào
⚫ Điều chế Phase Modulation (PM): phương pháp này biến đổi thông tin bằng cách thay đổi pha của sóng mang theo tín hiệu đầu vào
⚫ Điều chế Quadrature Amplitude Modulation (QAM): Phương pháp này kết hợp cả biên độ và pha để biểu diễn thông tin Nó sử dụng một
sự kết hợp của hai tín hiệu điều chế AM có pha chênh lệch 90 độ để tạo các tín hiệu điều khiển khác nhau
⚫ Ghép kênh phân chia theo tần số trực giao (OFDM): đây là một phương pháp điều chỉnh chế độ đa tần số, trong đó dữ liệu được chia thành nhiều tín hiệu con và truyền qua các tần số khác nhau
⚫ Điều chế Delta (DM): phương pháp này biến đổi thông tin bằng cách chỉ ghi lại sự thay đổi giữa các mức độ tương tự của tín hiệu đầu vào theo thời gian
2 Giải điều chế
Giải điều chế là quá trình phục hồi tín hiệu ban đầu sau khi nó đã được điều chế truyền qua môi trường truyền dẫn Quá trình giải quyết chế
độ thực hiện bằng cách đo lường các thông số của tín hiệu truyền dẫn như biên độ, định mức hoặc pha để khôi phục lại thông tin gốc Bộ giải điều chế được sử dụng phụ thuộc vào phương pháp điều khiển ban đầu
Trang 98
3 Các phương pháp điều chế và giải điều chế
⚫ M-ASK: Điều chế số theo biên độ tín hiệu Tín hiệu ASK có dạng
sóng dao động có tần số f, mỗi bit đặc trưng bởi biên độ khác nhau
của tín hiệu
⚫ M-PSK: Điều chế khóa dịch pha, sử dụng đặc tính pha của sóng mang
để điều chế tin tức Tín hiệu PSK có dạng sóng dao động có tần số f,
mỗi bit đặc trưng bởi góc pha khác nhau của tín hiệu
⚫ M-QAM: Là tổng của hai loại điều chế ASK và PSK
M-FSK: Là điều chế số theo tần số tín hiệu Tín hiệu FSK có dạng sóng dao động có tần số khác nhau, mỗi bit đặc trưng bởi tần số khác nhau này của tín hiệu ưu điểm của điều chế này là dễ chế tạo nhưng lại hay mắc lỗi khi truyền
⚫ DBPSK: Là loại điều chế không nhân với sóng mang nhưng trước khi điều chế người ta thực hiện tiền xử lý dòng bit 0, 1 bằng cách xác định thời điểm có sự thay đổi của tín hiệu
MSK: Là phương pháp dịch pha tối thiểu Tín hiệu này cũng tương tự như QPSK nhưng pha của nó thay đổi một cách liên tục
Trang 10St
Dòng bit
nhị phân
Mã đường dây hoặc Điều chế
số
A
Real
Định dạng Tín hiệu ở xung băng tần (Pulse cơ sở shaping) B
Điều chế lên tần số cao (AM, FM, PM)
C
Image
Biến đổi số thành
số
Tạo hình dạng xung của tín hiệu truyền D/A
Biến đổi tương tự thành tương tự
III TRUYỀN DẪN TÍN HIỆU
1 Định nghĩa:
Để truyền dẫn tín hiệu số, tùy thuộc vào loại đường truyền là hữu tuyến hay vô tuyến mà có thể sử dụng tín hiệu truyền dạng mã đường dây hay tín hiệu điều chế số Sơ đồ khối tổng quát của hệ thống truyền dẫn tín hiệu điều chế số như hình [1]
Hình 1 Sơ đồ điều chế tín hiệu số [1]
Trong truyền dẫn số, tín hiệu vào là dòng bit nhị phân có giá trị 0,1
thường chia thành hai loại là Mã đường dây (line code) hoặc Điều chế
số Người ta phân biệt hai loại mã này do chúng có một số đặc điểm
và ứng dụng khác nhau
- Trong trường hợp sử dụng mã đường dây thông tin thường được truyền ở băng tần cơ sở trên đường truyền có dây Nghĩa là tín hiệu được truyền đi ở điểm trong B (hình [1]) có nhiều loại mã đường dây khác nhau như mã NRZ, AMI, RZ, HBB2, BnZs, CMI, ManChester,… và tùy thuộc vào loại đường truyền mà người ta sử dụng loại mã thích hợp
- Trong trường hợp truyền dẫn số thực hiện thực hiện chức năng điều chế số, tín hiệu truyền dẫn có thể thực hiện tại điểm B nếu truyền trên đường truyền có dây hoặc điểm C nếu truyền trên đường truyền
vô tuyến trên hình [1] Có nhiều phương pháp điều chế khác nhau như ASK, FSK, PSK, M-PAM, M-QAM, MSK, GMSK,… Đầu ra khối điều chế số gồm có hai thành phần là phần thực và phần ảo của tín hiệu
đầu ra để đảm bảo phổ tín hiệu truyền dẫn nằm trong giới hạn băng
Trang 1110
thông của kênh truyền Tín hiệu đầu ra khối định dạng xung là tín hiệu ở băng tần cơ sở (baseband)
AM, FM, PM… để thực hiện điều chế tín hiệu từ băng tần cơ sở lên dải tần thích hợp để truyền trên anten phát đi
2 Mã đường dây
Mã đường dây là một phương thức truyền tín hiệu số trên đường truyền có dây, và thuộc nhóm tín hiệu một chiều (1D) Mục đích của mã đường dây là:
- Đảm bảo thành phần trung bình một chiều của tín hiệu bằng không
- Giúp bên thu dễ dàng khôi phục lại tín hiệu xung đồng hồ
- Dễ mã hóa và giải mã
- Tiết kiệm năng lượng khi truyền thông tin
Trong Đồ án I, em chọn đề tài mã hóa tín hiệu AMI - thuộc mã đường dây (mã lưỡng cực) Mã lưỡng cực có đặc điểm: có xung âm dương nên thành phần một chiều của tín hiệu bằng 0
3 Mã AMI
Nguyên tắc mã hóa: bit 0 = 0; bit 1 = α+ hoặc α
-Với α+
, α- là các xung dương và âm có biên độ bằng α nhưng độ rộng bằng 1 tb
2 Phổ tín hiệu của mã AMI không chứa thành phần tần số xung đồng
hồ Tuy nhiên nếu lấy trị tuyệt đối của tín hiệu thì sẽ biến mã AMI thành
mã RZ có chứa tần số xung đồng hồ
Nhược điểm: Trong trường hợp có nhiều số 0 liên tiếp sẽ không có tín hiệu trên đường truyền Điều này sẽ gây khó khăn cho bên thu khi khôi phục tín hiệu xung đồng hồ Để khắc phục nhược điểm này người ta thường sử dụng các mã như HDB3 hay BnZs
Trang 12%thu dữ liệu
r = audiorecorder (8000,16,1); %tần số lấy mẫu fs =8000
record(r);
stop(r);
y = getaudiodata(r);
audiowrite( ‘ dulieuthuami.wav ’ ,y;8000);
%ghi tín hiệu âm thanh vào file dulieuthuami.wav
IV CHƯƠNG TRÌNH MATLAB GIẢI MÃ TÍN HIỆU
1 Thu tín hiệu mã NRZ
Để truyền và thu tín hiệu, em tiến hành truyền nội dung “Hello” được mã hóa thành mã AMI thông qua chương trình phát (trên app Digital Communication Book) và thu tín hiệu giữa hai thiết bị với nhau qua chương trình thu trên Matlab
Hình 2 Chương trình phát tín hiệu [2]
Hình 3 Đồ thị tín hiệu thu được [4]
Trang 1312
fs = 8000;
% Tìm vị trí bắt đầu header
y=audioread( 'dulieuthuami.wav' );
hd = audioread( 'hdami.wav' );
R = xcorr(y,hd);
plot(R)
[x,idx]= max(R); % x là vị trí bắt đầu tín hiệu
% Giải mã tín hiệu
ami = y(x:x+6*80);
ra=zeros(1,length(ami));
for i = 1:length(ami)
if ami(i) > 0.07 || ami(i)<-0.07
ra(i)=1;
end
end
ra2=ra(20:80:end);
2 Giải mã tín hiệu
Khi phát tín hiệu, ta gắn một dòng bit báo hiệu (header) trước dòng bit nội dung để bên thu xác định được điểm bắt đầu của tín hiệu Báo hiệu được lưu trong file hdami.wav
Để tìm được chính xác điểm bắt đầu của tín hiệu, sử dụng hàm tương quan xcorr, nhưng do chưa tối ưu dc code nên phải chỉnh tay thêm
Hình 4 Đồ thị hàm tương quan giữa tín hiệu thu và header [4]
Sau khi xác định được điểm bắt đầu và kết thúc của tín hiệu, tiến hành giải mã tín hiệu để thu được dòng bit nhị phân Qua thuật toán chuyển đổi bit sang text sẽ thu được nội dung đã được truyền
Trang 14% Chuyển đổi bit
num_chars = length(ra2) / 8;
ascii_vals = [];
for i=1:num_chars
block = ra2((i-1)*8+1:i*8);
ascii_val = bin2dec(num2str(block));
ascii_vals(i) = ascii_val;
end
% Chuyển thành text
text = char(ascii_vals);
disp(text)
Hình 5 Dòng bit thu được sau giải mã [5]
Hình 6 Nội dung thu được sau giải mã [6]
3 Tổng kết
Khi truyền tín hiệu giữa hai thiết bị thông qua dây cắm, thu được tín hiệu ít nhiễu và gần giống với tín hiệu gốc nhất Chính vì vậy việc giải
mã tín hiệu về nội dung gốc ít xảy ra lỗi hơn Và theo như kết quả đã thu được thì tín hiệu đã được em giải mã đúng Tuy nhiên trong quá trình đồng bộ header thì em vẫn chưa tối ưu được thuật toán nên phải so sánh
đồ thị hàm tương quan với đồ thị tín hiệu thu và chỉnh thêm bằng tay để tìm được vị trí bắt đầu header chính xác nhất
Qua quá trình tìm hiểu và thực hiện project, em đã tìm hiểu và làm làm được các bước để thu và giải điều chế 1 tín hiệu cơ bản Tuy nhiên vẫn còn 1 số hạn chế trong việc tối ưu code nên vẫn còn sai sót Mong thầy xem xét và đánh giá giúp em Em cảm ơn thầy!
Trang 1514
TÀI LIỆU THAM KHẢO
[1] Data Communication Book (Nguyễn Quốc Khương) [2] Hust Digital Communication Tx-Nqk
[3] Digital Receiver for Student