1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận kỹ thuật thông tin vô tuyến bài 1 mô tả và khảo sát psd của các kỹ thuật điều chế trên matlab

42 0 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 đề Mô tả và khảo sát PSD của các kỹ thuật điều chế trên Matlab
Tác giả Ngô Đăng Dương
Người hướng dẫn Nguyễn Viết Đảm
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Kỹ thuật thông tin vô tuyến
Thể loại Tiểu luận
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 42
Dung lượng 2,29 MB

Nội dung

Bài 1: Mô tả và khảo sát PSD của các kỹ thuật điều chế trên Matlab Bài làm: Câu 1: Phân tích biểu thức tín hiệu băng tần cơ sở và tín hiệu thông giải trong miền thời gian dạng sóng tín h

Trang 1

Thuật toán tìm kiếm theo chiều rộng (BFS) Nhóm 03

1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG

BÀI TIỂU LUẬN

KỸ THUẬT THÔNG TIN VÔ TUYẾN

Họ và tên sinh viên : NGÔ ĐĂNG DƯƠNG

Trang 2

Bài 1: Mô tả và khảo sát PSD của các kỹ thuật điều chế trên Matlab

Bài làm:

Câu 1: Phân tích biểu thức tín hiệu băng tần cơ sở và tín hiệu thông giải trong miền thời gian (dạng sóng tín hiệu và hàm tự tương quan) của các sơ đồ điều chế/giải điều chế BPSK, QPSK, MSK, MPSK; M-QAM…

BPSK

• Biểu thức tín hiệu băng tần:

si(t) = cos(2π f t c +(i- 1) π +Ɵ )

si(t) - là giá trị của tín hiệu sóng mang tại thời điểm t

Eb - là năng lượng trung bình của mỗi bit dữ liệu

Tb - là khoảng thời gian giữa các bit liên tiếp

fc - là tần số của băng tần cơ sở

i - là chỉ số của bit dữ liệu

θ - là pha ban đầu của sóng mang

• Biểu thức tín hiệu băng thông dải: y(t) = cos(2π 𝑓𝑐𝑡+(i- 1) π +Ɵ ) +x(t) x(t) – là nhiễu tạp xuất hiện trong quá trình truyền tải, được mô hình hóa bằng quá trình ngẫu nhiên bằng phân bố Gauss

fc - là tần số của sóng mang

E T

Trang 3

QPSK

• Biểu thức tín hiệu băng tần:

Trong QPSK, ta có 4 pha (0°, 90°, 180°, 270°) và 2 mức biểu diễn (0 và 1) Vì vậy, để truyền tín hiệu thông tin, ta cần gửi 2 bit thông tin cho mỗi ký hiệu Khi đó, biểu diễn của tín hiệu QPSK sẽ được cho bởi:

Nếu bit là 00: ta sử dụng pha 𝜋

Trang 4

Với: 𝑠

𝑖(𝑡) = √2𝐸

𝑇 cos [2𝜋𝑓𝑐𝑡 + (2𝑖 − 1)𝜋

4+ Ɵ] với 0≤ t ≤T

E - năng lượng mỗi bit

T - thời gian truyền của mỗi bit

fc - là tần số của băng tần cơ sở

i - số hiệu ký hiệu QPSK (i = 1, 2, 3, ) θ - pha của tín hiệu, thường được chọn ngẫu nhiên trong khoảng từ 0 đến 2π

Biểu thức tín hiệu băng thông dải: y(t)=𝑠𝑖(𝑡) + 𝑥(𝑡)

2

𝑇𝑏 cos(2𝜋𝑓𝑐𝑡)]

Trang 5

Eb: là năng lượng trung bình của mỗi bit dữ liệu

Tb: là khoảng thời gian giữa các bit liên tiếp

fc: là tần số của băng tần cơ sở

d(t): Tín hiệu dữ liệu được mã hóa trong dạng d(t) với giá trị +1 hoặc -1 - Biểu thức tín hiệu băng thông dải: y(t)=s(t)++x(t)

x(t): tín hiệu nhiễu pha tạp ngẫu nhiên, mô tả bằng phân bố Gauss

Eb - là năng lượng trung bình của mỗi bit dữ liệu

Tb - là khoảng thời gian giữa các bit liên tiếp

fc - là tần số của băng tần cơ sở

M - số điểm bản tin

θ - là pha ban đầu của sóng mang

• Biểu thức tín hiệu thông dải: y(t)=𝑠𝑖(𝑡)+ 𝑥(𝑡)

Trang 6

• Biểu thức tín hiệu băng tần:

fc - là tần số của băng tần cơ sở

Cặp số nguyên (ai, bi) định vị các điểm bản tin trong không gian tín hiệu

𝑇 = 𝑙𝑜𝑔2𝑀 x 𝑇𝑏

E0 - là năng lượng của tín hiệu có biên độ thấp nhất

• Biểu thức tín hiệu băng thông dải: y(t)= x(t)+ 𝑠𝑖(𝑡)

x(t) – tín hiệu nhiễu pha tạp ngẫu nhiên, mô tả bằng phân bố Gauss

Câu 2: Phân tích biểu thức PSD của tín hiệu điều chế BPSK, QPSK, MSK, …

Trang 7

Câu 3: Thực hiện khảo sát PSD của tín hiệu điều chế BPSK, QPSK, MSK, MPSK; M-QAM….trên Matlab:

+ Phân tích các tham số đầu vào chương trình Matlab + Xác định đoạn chương trình Matlab thực hiện hàm PSD

+ Nhập các giá trị đầu vào phân tích và giải thích kết quả

+ Sử dụng hàm stem() và hàm display() để biểu diễn các kết quả:

Cụ thể như hiển thị kết quả tại: f = fc+1/Tb; f = ±1,5 /Tb; f = ±2 /Tb… giải thích các kết quả

Tham số đầu vào

Xác định đoạn chương trình Matlab thực hiện hàm PSD

Trang 9

Num_2 = (cos(2*pi*(f+fc)*Tb));

Dum_2 = (16*(Tb^2)*(f+fc).^2)-1;

Tính mật độ công suất của tín hiệu băng thông dải của MSK

PSD_MSK_2 =

(SF/2)*(((Num./Dum).^2) +

((Num_2./Dum_2).^2));

Trang 10

• Biểu diễn kết quả PSD của băng tần cơ sở và băng thông dải: figure(1) subplot(2,1,1)

stem(f, PSD_BaseBand, 'r', 'LineWidth',2); hold on;

plot(f, PSD_BaseBand, 'r', 'LineWidth',2); grid on;

xlabel('Tan so[Hz]');

ylabel('PSD_B_a_s_e_B_a_n_d');

title(['Mat do pho cong suat PSD cua bang tan co so voi toc do R_b

=',num2str(Rb),'b/s']); subplot(2,1,2)

stem(f, PSD_PassBand, 'g', 'LineWidth',2); hold on;

plot(f, PSD_PassBand, 'g', 'LineWidth',2); grid on;

Trang 12

Tín hiệu băng gốc và băng thông dải BPSK:

title([ 'Mat do pho cong suat PSD cua tin hieu BPSK bang thong dai

voi toc do R_b =' ,num2str(Rb), 'b/s' ]);

Trang 13

Tín hiệu băng gốc và băng thông dải QPSK:

Trang 15

Tín hiệu băng gốc và băng thông dải 8-PSK

Trang 17

plot(f, PSD_MSK,'r','LineWidth',2); grid

Trang 18

Bài 2: Mô phỏng BER hệ thống BPSK trong môi trường kênh AWGN

Câu 1: Phân tích mô hình mô phỏng

Trang 21

Mô hình truyền thông BPSK sử dụng hai pha của tín hiệu mang để truyền thông tin, tương ứng với hai trạng thái 0 và 1 Trong môi trường kênh AWGN, tín hiệu truyền đi sẽ bị nhiễu bởi nhiễu Gaussian trắng, dẫn đến các bit nhận được có thể sai lệch so với bit ban đầu truyền

đi

Để phân tích BER của hệ thống BPSK trong môi trường AWGN, ta sử dụng mô hình mô phỏng gồm các bước sau:

Sinh ra các bit ngẫu nhiên để truyền đi

Sử dụng phương pháp mã hóa BPSK để biến đổi các bit thành tín hiệu BPSK tương ứng

Tính toán độ nhiễu của kênh AWGN và áp dụng nhiễu vào tín hiệu BPSK truyền đi

Sử dụng bộ thu để nhận tín hiệu BPSK với độ nhạy và hiệu suất nhận tín hiệu xác định

Sử dụng phương pháp giải mã BPSK để giải mã tín hiệu nhận được thành các bit tương ứng

So sánh các bit nhận được với các bit ban đầu truyền đi để xác định số lượng bit bị lỗi

Tính toán BER bằng cách chia số lượng bit bị lỗi cho tổng số bit truyền đi

Câu 2: Phân tích các tham số đầu vào của chương trình mô phỏng và ảnh hưởng của chúng lên kết quả mô phỏng

SNRindB = 0:1:12;

SNR = 10.^(SNRindB/10);

Công suất nhiễu trên tạp âm theo dB và theo đơn vị tuyến tính (SNR càng tang BER càng nhỏ)

thì BER càng tang) sgma = Eb./sqrt(2*SNR); Với (sgma.^2) là độ lệch chuẩn của tín hiệu

Trang 22

- Xác định các đoạn chương trình Matlab thực hiện các khối chức năng cho mô hình

mô phỏng: Ví dụ như xác định đoạn chương trình thực hiện tạo chuỗi nhị phân và quá trình tạo chuỗi nhị phân; Xác định đoạn chương trình thực hiện quyết định; Đoạn chương trình thực hiện so sánh đếm lỗi; Đoạn chương trình thực hiện tạo biến ngẫu nhiên phân bố Gausian…

- Ghi và phân tích các tín hiệu vào ra của mô hình mô phỏng theo chương trình Matlab: ví dụ như xác định đầu vào ra kênh AWGN

ü Biễu diễn kết quả mô phỏng tại SNR = 0 dB; 2 dB… bằng đồ thị và hàm display: Giải thích, phân tích kết quả mô phỏng ü Biễu diễn kết tính toán BER bởi hàm Q()tại SNR = 0 dB; 2 dB… bằng đồ thị và hàm display: Giải thích, phân tích kết quả tính toán

Code:

Khởi tạo biến và tham số:

SNRindB = 0:1:12 ; % mảng SNR (tỷ lệ tín hiệu / nhiễu)

ở dB

SNR = 10.^(SNRindB/10); % SNR ở đơn vị tỷ lệ tín

hiệu / nhiễu Eb = 1; % năng lượng tín hiệu bậc hai

sgma = Eb./sqrt(2*SNR); % độ lệch chuẩn của tín hiệu

nhiễu NumBits = 10^5; % số bit truyền

Tính xác suất lỗi lý thuyết cho hai loại mã truyền thông BPSK:

theo_Orthogonal_err_prb = 0.5 *erfc(sqrt(SNR/2)); % xác suất lỗi trực giao

theo_Antipodal_err_prb = 0.5 *erfc(sqrt(SNR)); % xác suất lỗi đối cực Khởi tạo thanh tiến trình, tạo các chuỗi bit ngẫu nhiên mã hóa BPSK, thêm kênh nhiễu, giải mã và đếm số bit lỗi:

Trang 23

h = waitbar(0,'Please wait '); % hiển thị thanh tiến trình tic %

bắt đầu đo thời gian thực thi

for j=1:length(SNR)

tStart = tic; % bắt đầu đo thời gian tính BER cho mức SNR hiện tại

waitbar(j/length(SNRindB)); % cập nhật thanh tiến trình

dsource_1 = 0.5*(sign(rand(1,NumBits)-0.5)+1); % tạo nguồn dữ liệu ngẫu nhiên

numoferr = 0; % khởi tạo số lỗi bit for

i=1:NumBits % duyệt qua từng bit temp

= rand; % tạo một số ngẫu nhiên if

(temp<0.5),

dsource(i) =1; % gán giá trị bit '1'

X = sgma(j)*randn(1); % tạo nhiễu trắng Gaussian

Y = -sqrt(Eb) + X; % tín hiệu nhận được else

dsource(i) = 0; % gán giá trị bit '0'

X = sgma(j)*randn(1); % tạo nhiễu trắng Gaussian

Y = sqrt(Eb) + X; % tín hiệu nhận được

Trang 24

set(h1,'Name','Sim_FWC_02_02_BER_BPSK_AWGN'); subplot(121)

G = semilogy(SNRindB,smld_err_prb,'vr',SNRindB,theo_Antipodal_err_prb,'-ob');

set(G,'LineWidth',[1.5]);

xlabel('SNR [dB]','FontName','Times New Roman','color','b','FontSize',12); ylabel('Xac suat loi Pe','FontName','Times New Roman','color','b','FontSize',18); title(['Mo phong BER he thong BPSK trong kenh AWGN; N_s_i_m_b_i_t = ',num2str(NumBits),' bits ',

],'FontName','Times New Roman','color','r','FontSize',14);

LT = legend(' Mo phong ',' Tinh toan');

set(LT,'FontName','Times New Roman','FontSize',16); AX=gca;

set(AX,'FontSize',14);

axis([min(SNRindB) max(SNRindB), 1e-12 0.2]); grid on

text(2,7e-5,'Mo hinh hoa va Mo phong',

'FontName','Times New Roman','Color','b','FontSize',14);

text(0.5,min(theo_Antipodal_err_prb),'Tinh chinh xac cua ket qua Mo phong, xac nhan va phe chuan mo hinh',

'FontName','Times New Roman','Color','r','FontSize',9.9)

'FontName','Times New Roman','color','b','FontSize',15);

LT = legend(' truc giao',' doi cuc'); set(LT,'FontName','Times New

Roman','FontSize',16,'fontweight','normal','fontAngle','normal');

AX = gca;

set(AX,'FontSize',14);

axis([min(SNRindB) max(SNRindB), 1e-12 0.2]); grid on;

text(2,7e-5, 'Tinh toan so sanh hieu nang' , 'FontName' , 'Times New

Roman' , 'Color' , 'b' , 'FontSize' ,14);

Trang 25

Biễu diễn kết quả mô phỏng tại SNR = 0 dB; 2 dB… bằng đồ thị và hàm display: Giải thích, phân tích kết quả mô phỏng:

theo_Orthogonal_err_prb = 0.5 *erfc(sqrt(SNR/2)); % xác suất lỗi trực giao

theo_Antipodal_err_prb = 0.5 *erfc(sqrt(SNR)); % xác suất lỗi đối cực

Bằng

theo_Orthogonal_err_prb = qfunc(sqrt(SNR)); % xác suất lỗi trực giao

theo_Antipodal_err_prb = qfunc(sqrt(2*SNR)); % xác suất lỗi đối cực

Trang 26

SNR càng tăng thì BER càng giảm, hàm qfunc hay erfc đều có kết quả tương tự nhau

Bài 3: Mô phỏng BER hệ thống BPSK sử dụng mã xoắn trong môi trường kênh AWGN

Câu 1: Trình bày tóm tắt quá trình mã hóa xoán trên cơ sở biểu đồ lưới

Trang 28

Câu 2: Trình bày tóm tắt quá trình mã xoắn trên cơ sở giải thuật giải mã ML và Viterbi quyết định cứng (phân tích công thức giải mã ML và giải thuật giải mã Viterbi)

Bài 4: Mô phỏng kênh và hệ thống MIMO

Câu 1: Phân tích mô hình kênh và mô hình hệ thống SVD MIMO trong môi trường truyền sóng pha đinh Rayleigh: Mô hình hóa kênh MIMO trên cơ sở SVD; Mô phỏng kênh SVD MIMO trong môi trường truyền sóng pha đinh Rayleigh

Mô hình kênh (channel model) là một mô hình toán học được sử dụng để mô tả cách tín hiệu truyền qua một kênh truyền nào đó Kênh truyền có thể là không dây hoặc dây, và có thể bao gồm nhiều yếu tố như đường truyền, nhiễu, suy giảm và đa đường Mô hình kênh được sử dụng để đưa ra một mô tả chính xác về tín hiệu đầu ra được truyền qua kênh Các

mô hình kênh thường sử dụng các thông số như tần số, thời gian, độ rộng băng thông và mức độ nhiễu để đưa ra một mô tả chi tiết về tín hiệu đầu ra

• Mô hình thu tín hiệu trong môi trường kênh vô tuyến thay đổi theo thời gian:

Trang 29

y(t) = s(t) * h(τ,t) + x(t)

• Mô hình thu tín hiệu trong kênh vô tuyến không thay đổi theo thời gian:

y(t) = si(t) * hc(t) + x(t)

Mô hình thu tín hiệu trong kênh nhiễu AWGN:

Trang 30

Mô hình hệ thống MIMO tổng quát:

Mô hình hệ thống SVD MIMO tối ưu

D là ma tr ậ n chéo hóa v ớ i các ph ầ n t ử λ i1/ = sqrt (λ 2 i )

𝐘 = 𝐇 𝐱 + 𝛈

Trang 31

Khi khoảng cách giữa các anten > λ/2 và môi trường nhiều tán xạ => coi H có các hàng và các cột

độc lập với nhau => Phân chia giá trị đơn (SVD: Singular Value Descomposition):

H = UDV H

(.) H là chuyển vị Hermitian (ma trận chuyển vị liên hợp phức)

U, V là các ma trận nhất phân (unitary) kích thước Nr x Nr và Nt x Nt

UU H = I Nr , VV H = I Nt

Các cột của ma trận U là vector riêng của HH H

Các cột của na trận V là vector riêng của H H H

D là ma trận kích thước Nr x Nr gồm NA = min{Nr, Nr} giá trị đơn không âm

λ01/2,…, λi1/2,…, λNA – 11/2 trên đường chéo chính của D, λi1/2 (i=0,2,…,NA-1) là các

giá trị riêng của ma trận HH H

Xác định các giá trị riêng cảu HH H

Mô hình hóa kênh MIMO trên cơ sở SVD:

• Xác định ma trận kênh H có kích thước Nt x Nr với Nt là số ăng-ten truyền và

Nr là số ăngten thu

• Thực hiện phân rã giá trị suy biến (SVD) trên ma trận kênh H Kết quả là ma trận phân rã H =

UDVH, trong đó U và V là các ma trận trực giao, và D là ma trận đường chéo

có các giá trị suy giảm của kênh

• Chia tín hiệu đầu vào thành Nt phần, mỗi phần tương ứng với một ăng-ten truyền

• Thực hiện truyền tín hiệu qua kênh với mỗi phần tương ứng với một ăng-ten truyền và một ăng-ten thu

• Tại bộ thu, thực hiện phân rã giá trị suy biến trên tín hiệu thu được Kết quả

là ma trận phân rã Y = USVH, trong đó U và V là các ma trận trực giao, và S

là ma trận đường chéo có các giá trị suy giảm của tín hiệu thu

• Kết hợp các tín hiệu thu được trong ma trận Y để khôi phục lại tín hiệu ban đầu

Trang 32

Mô phỏng kênh SVD MIMO trong môi trường truyền sóng pha đinh Rayleigh

• Xác định các tham số cho môi trường truyền sóng pha đinh Rayleigh, bao

gồm các tham số như tần số của sóng truyền, khoảng cách giữa các anten, vị trí của các anten, hệ số tán xạ Rayleigh, và nhiễu

• Tạo một kênh truyền SVD MIMO với các anten truyền và nhận Để tạo kênh

này, ta có thể sử dụng hàm "svd" trong Matlab để phân tích ma trận kênh

• Tạo các tín hiệu điều chế tương ứng cho các anten truyền Đối với hệ thống

SVD MIMO, các tín hiệu điều chế này sẽ được chia thành các phần dựa trên phân tích SVD

• Truyền các tín hiệu điều chế qua kênh truyền SVD MIMO

• Tạo các bộ lọc tương ứng cho các anten nhận dựa trên phân tích SVD

• Nhận các tín hiệu từ kênh truyền và áp dụng bộ lọc tương ứng cho các anten

nhận để tái tạo tín hiệu ban đầu

• So sánh tín hiệu tái tạo với tín hiệu ban đầu để đánh giá hiệu suất của hệ

thống

Việc mô phỏng kênh SVD MIMO trong môi trường truyền sóng pha đinh

Rayleigh cung cấp cho chúng ta cái nhìn chi tiết về hiệu suất của hệ thống trong

điều kiện mô phỏng, từ đó giúp chúng ta tối ưu hóa thiết kế và cải thiện hiệu suất

của hệ thống thực tế

Câu 2:Thực hiện mô phỏng trên Matlab theo trình tự xử lý các bước cho mô

hình kênh và hệ thống SVD MIMO tối ưu (Đọc mã chương trình mô phỏng:

NVD_D12VT_SVD_MIMO Channel)

Khai báo các tham số cho hệ thống MIMO

N_Tx = 8; % Số lượng anten phát N_Rx = 4; % Số lượng anten thu fD = 10; % Tần số Doppler

N_symbol = 100; % Số lượng ký hiệu T_sim = 0.1; % Thời gian mô phỏng

Tạo ma trận kênh H_Gausian có phân phối Gaussian và lấy mẫu đầu tiên là H_Gau

H_Gausian = zeros(N_Rx,N_Tx,N_symbol); for k = 1:N_symbol

H_Gausian(:,:,k) = (randn(N_Rx,N_Tx) + 1i*randn(N_Rx,N_Tx))/sqrt(2); end H_Gau = zeros(N_Rx,N_Tx);

H_Gau = H_Gausian(:,:,1);

Trang 33

Tạo ma trận kênh H_Rayleigh có phổ tần số Rayleigh qua thời gian và lấy mẫu đầu tiên là H_Ray

H_Rayleigh = zeros(N_Rx,N_Tx,N_symbol); for

m = 1:N_Rx for n = 1:N_Tx H_Rayleigh(m,n,:) = (FWC_Rayleigh_Channel(T_sim,N_symbol,fD)

+ 1i*FWC_Rayleigh_Channel(T_sim,N_symbol,fD))/sqrt(2); end

end H_Ray = H_Rayleigh(:,:,1);

Tính toán phân tích giá trị suy giảm (SVD) của ma trận kênh Rayleigh được lưu trữ trong biến H_Ray Hiển thị kích thước và giá trị của các ma trận truyền (V), ma trận thu (U) và giá trị riêng (D)

disp(' Ma tran kenh H');

H_Ray disp(' Kich thuoc H'); disp(size(H_Ray))

disp(' Phan tich SVD cua H: [U, D, V] = svd(H)');

[U_Gau, D_Gau, V_Gau] = svd(H_Gau);

[U_Ray, D_Ray, V_Ray] = svd(H_Ray);

disp(' Ma tran tien ma hoa V ');

disp(' Kich thuoc size(V)');

disp(size(V_Ray));

disp(' Ma tran hau ma hoa U ');

U_Ray disp(' Kich thuoc size(U)');

disp(size(U_Ray));

disp(' Ma tran duong cheo D ');

D_Ray disp(' Kich thuoc size(D)'); disp(size(D_Ray));

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

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w