1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo đồ án i đề tài viết chương trình matlab giải mã tín hiệu ami

15 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề VIẾT CHƯƠNG TRÌNH MATLAB GIẢI MÃ TÍN HIỆU AMI
Tác giả Lê Quang Huy
Người hướng dẫn Nguyễn Quốc Khương
Trường học ĐẠI HỌC BÁCH KHOA HÀ NỘI
Chuyên ngành Điện - Điện tử
Thể loại Báo cáo đồ án I
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 523,21 KB

Nội dung

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 2

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 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 3

2

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 4

DANH 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 5

4

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 6

I 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 7

6

⚫ 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 8

II Đ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 9

8

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 10

St

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 11

10

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 13

12

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 15

14

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

Ngày đăng: 06/08/2024, 16:20

w