You are on page 1of 8

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

BÁO CÁO THỰC HÀNH


Cơ sở kỹ thuật thông tin vô tuyến

Nhóm học phần: 5


Số thứ tự: 22
Họ tên sinh viên: Lê Minh Hiếu
Mã sinh viên: B19DCVT133
Chương trình Sim_FWC01: Biểu diễn mật độ phổ công suất của các kỹ thuật điều chế
Phần 1 Giải thích code
Lệnh Giải thích
Sim_FWC_01_1_PSD_Base_PassBand
clc;
clear;
close all;
f = -200:5:200; Vector tần số
Tb = 0.02; Chu kỳ bit
Rb = 1/Tb; Tốc độ bit
A = 10; Biên độ
AA = A^2*Tb; Bình phương biên độ
fc = 120; Tần số sóng mang
PSD_BaseBand = AA*(sinc((f*Tb)).^2); Mật độ phổ công suất tín hiệu băng
cơ sở
PSD_PassBand = (AA/4)*((sinc((f+fc)*Tb)).^2 +(sinc((f-fc)*Tb)).^2); Mật độ phổ công suất tín hiệu băng
PSD_PassBand_1 = (AA/4)*((sinc((f-fc)*Tb)).^2); thông dải
PSD_PassBand_2 = (AA/4)*((sinc((f+fc)*Tb)).^2 );
figure(1) Vẽ hình PSD của tín hiệu băng cơ
subplot(2,1,1); sở và tín hiệu băng thông dải
stem(f,PSD_BaseBand,'b','LineWidth',3);
hold on
plot(f,PSD_BaseBand,'b','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD_B_a_s_e_B_a_n_d','FontName','.VnTime','color','b','FontSize',24);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu b¨ng tÇn c¬ së víi tèc ®é R_b
=',num2str(Rb),'b/s'],...'FontName','.VnTime','color','b','FontSize',12);
grid on;
subplot(2,1,2);
stem(f,PSD_PassBand_1,'r','LineWidth',3);
hold on
stem(f,PSD_PassBand_2,'g','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD_P_a_s_s_B_a_n_d','FontName','.VnTime','color','b','FontSize',24);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu th«ng d¶i víi tèc ®é R_b
=',num2str(Rb),'b/s',...'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
Sim_FWC_01_2_PSD_Modulation
clc;clear;close all;
f = linspace(-2000,2000,1500); Vector tần số
Tb = 0.002 Chu kỳ bit
Rb = 1/Tb; Tốc độ bit
P = 1; Công suất bit
A = 1; Biên độ
AA = A^2*Tb; Bình phương biên độ
fc = 600; Tần số sóng mang
Eb = P*Tb; Năng lượng/Bit
PSD_BaseBand = AA*(sinc((f*Tb)).^2); Mật độ phổ công suất tín hiệu băng
cơ sở
% PSD of M-PSK <=> PSD_M_BPSK = Eb*log2(M)*((sinc((f- Công thức tính PSD 1 phía tổng
fc)*Tb*log2(M))).^2) quát cho hệ thống M-PSK
PSD_BPSK = (Eb*log2(2))*((sinc((f-fc)*Tb*log2(2))).^2); PSD BPSK có biên độ bằng biên
độ PSD của BaseBand
PSD_QPSK = (Eb*log2(4))*((sinc((f-fc)*Tb*log2(4))).^2); PSD QPSK có biên độ bằng 2 lần
biên độ PSD của BaseBand
PSD_8_PSK = (Eb*log2(8))*((sinc((f-fc)*Tb*log2(8))).^2); PSD QPSK có biên độ bằng 3 lần
biên độ PSD của BaseBand
PSD_BPSK_2 = (Eb*log2(2)/2)*(((sinc((f-fc)*Tb*log2(2))).^2) + PSD 2 phía của BPSK, QPSK,
((sinc((f+fc)*Tb*log2(2))).^2)); 8PSK
PSD_QPSK_2 = (Eb*log2(4)/2)*(((sinc((f-fc)*Tb*log2(4))).^2) +
((sinc((f+fc)*Tb*log2(4))).^2));
PSD_8_PSK_2 = (Eb*log2(8)/2)*(((sinc((f-fc)*Tb*log2(8))).^2) +
((sinc((f+fc)*Tb*log2(8))).^2));
% PSD of MSK: PSD_MSK = PSD của hệ thống MSK
((8*Eb)/pi)*((cos(2*pi(ffc)*Tb))/(16*(Tb^2)*(f-fc).^2)-1)
SF = ((16*Eb)/(pi^2));
Num = (cos(2*pi*(f-fc)*Tb));
Dum = (16*(Tb^2)*(f-fc).^2)-1;
PSD_MSK = SF*((Num./Dum).^2);
% PSD_MSK double side
Num_2 = (cos(2*pi*(f+fc)*Tb));
Dum_2 = (16*(Tb^2)*(f+fc).^2)-1;
PSD_MSK_2 = (SF/2)*(((Num./Dum).^2) + ((Num_2./Dum_2).^2));
figure(1) Vẽ hình so sánh PSD 1 phía của tín
subplot(2,1,1); hiệu băng cơ sở và BPSK, QPSK,
plot(f,PSD_BaseBand,'b','LineWidth',3); 8PSK
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD ®Çu vµo khèi ®iÒu
chÕ','FontName','.VnTime','color','b','FontSize',14);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu ®Çu vµo khèi ®iÒu chÕ
R_b =',num2str(Rb),'b/s'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
subplot(2,1,2);
plot(f,PSD_BPSK,'b','LineWidth',3);
hold on
plot(f,PSD_QPSK,'g','LineWidth',3);
hold on
plot(f,PSD_8_PSK,'r','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD cña BPSK-QPSK-
8PSK','FontName','.VnTime','color','b','FontSize',14);
title(['So s¸nh mËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu BPSK; QPSK; 8-
PSK víi tèc ®é R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña BPSK','PSD cña QPSK',...
'PSD cña 8PSK');
set(L, 'fontname','.Vntime','fontsize',13);
figure(2) Vẽ hình so sánh PSD 1 phía của
subplot(2,2,1:2); QPSK và MSK
plot(f,PSD_BaseBand,'b','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD ®Çu vµo khèi ®iÒu
chÕ','FontName','.VnTime','color','b','FontSize',14);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu ®Çu vµo khèi ®iÒu chÕ
R_b =',num2str(Rb),'b/s'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;

subplot(2,2,3);
f1 = (f-fc)*Tb;
plot(f1,PSD_QPSK,'g','LineWidth',3);
hold on
plot(f1,PSD_MSK,'r','LineWidth',3);
xlabel('TÇn sè chuÈn hãa (f-
f_c)T_b','FontName','.VnTime','color','r','FontSize',12);
ylabel('PSD cña QPSK &
MSK','FontName','.VnTime','color','b','FontSize',12);
title(['So s¸nh PSD cña QPSK & MSK, R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña QPSK','PSD cña MSK');
set(L, 'fontname','.Vntime','fontsize',13);

subplot(2,2,4);
plot(f,PSD_QPSK,'g','LineWidth',3);
hold on
plot(f,PSD_MSK,'r','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12);
ylabel('PSD cña QPSK &
MSK','FontName','.VnTime','color','b','FontSize',12);
title(['So s¸nh PSD cña QPSK & MSK, R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña QPSK','PSD cña MSK');
set(L, 'fontname','.Vntime','fontsize',13);
figure(3) Vẽ hình so sánh PSD 2 phía của tín
subplot(2,1,1); hiệu băng cở sở và MPSK
plot(f,PSD_BaseBand,'b','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD ®Çu vµo khèi ®iÒu
chÕ','FontName','.VnTime','color','b','FontSize',14);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu ®Çu vµo khèi ®iÒu chÕ
R_b =',num2str(Rb),'b/s'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
subplot(2,1,2);
plot(f,PSD_BPSK_2,'b','LineWidth',3);
hold on
plot(f,PSD_QPSK_2,'g','LineWidth',3);
hold on
plot(f,PSD_8_PSK_2,'r','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD cña BPSK-QPSK-
8PSK','FontName','.VnTime','color','b','FontSize',14);
title(['So s¸nh mËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu BPSK; QPSK; 8-
PSK víi tèc ®é R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña BPSK','PSD cña QPSK',...
'PSD cña 8PSK');
set(L, 'fontname','.Vntime','fontsize',13);
figure(4) Vẽ hình so sánh PSD 2 phía của
subplot(2,2,1:2); QPSK và MSK
plot(f,PSD_BaseBand,'b','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',14);
ylabel('PSD ®Çu vµo khèi ®iÒu
chÕ','FontName','.VnTime','color','b','FontSize',14);
title(['MËt ®é phæ c«ng suÊt PSD cña tÝn hiÖu ®Çu vµo khèi ®iÒu chÕ
R_b =',num2str(Rb),'b/s'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;

subplot(2,2,3);
f1 = (f-fc)*Tb;
plot(f1,PSD_QPSK_2,'g','LineWidth',3);
hold on
plot(f1,PSD_MSK_2,'r','LineWidth',3);
xlabel('TÇn sè chuÈn hãa (f-
f_c)T_b','FontName','.VnTime','color','r','FontSize',12);
ylabel('PSD cña QPSK &
MSK','FontName','.VnTime','color','b','FontSize',12);
title(['So s¸nh PSD cña QPSK & MSK, R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña QPSK','PSD cña MSK');
set(L, 'fontname','.Vntime','fontsize',13);

subplot(2,2,4);
plot(f,PSD_QPSK_2,'g','LineWidth',3);
hold on
plot(f,PSD_MSK_2,'r','LineWidth',3);
xlabel('TÇn sè [H_z]','FontName','.VnTime','color','b','FontSize',12);
ylabel('PSD cña QPSK &
MSK','FontName','.VnTime','color','b','FontSize',12);
title(['So s¸nh PSD cña QPSK & MSK, R_b =',num2str(Rb),'b/s',...
'; TÇn sè sãng mang f_c =',num2str(fc),'H_Z'],...
'FontName','.VnTime','color','b','FontSize',12);
grid on;
L = legend('PSD cña QPSK','PSD cña MSK');
set(L, 'fontname','.Vntime','fontsize',13);
Phần 2 Kết quả mô phỏng

Hình 1.1 Mật độ phổ công suất của tín hiệu băng cơ sở và tín hiệu băng thông dải

Hình 2.1 So sánh mật độ phổ công suất của tín hiệu BPSK; QPSK; 8-PSK
Nhận xét: Biên độ PSD của tín hiệu MPSK bằng log2(M) lần biên độ của tín hiệu đầu vào khối điều chế và M càng lớn
thì độ rộng phổ càng hẹp
Hình 2.2 So sánh PSD của QPSK và MSK thấy rằng biên dộ PSD của QPSK lớn hơn MSK và độ rộng phổ hẹp hơn

Hình 2.3 So sánh PSD 2 phía của BPSK, QPSK, 8-PSK

Hình 2.4 So sánh PSD 2 phía của QPSK và MPSK


Chương trình Sim_FWC02: Mô hình hoá và mô phỏng hiệu năng BER của hệ thống truyền dẫn tín
hiệu BPSK trong kênh AWGN
Phần 1 Giải thích code
STT Lệnh Giải thích
Sim_FWC_02_02_BER_BPSK_AWGN
clc; clear; close all;
SNRindB = 0:1:9; Vector SNR theo thang dB
SNR = 10.^(SNRindB/10); Vector SNR thang tuyến tính
Eb = 1; Năng lượng/Bit
sgma = Eb./sqrt(2*SNR); Vector độ lệch chuẩn
NumBits = 10^7; Số lượng bit
% Tính xác suất lỗi: Tín hiệu trực giao Tỷ số lỗi bit theo lý thuyết
% theo_Orthogonal_err_prb = Qfunct(sqrt(SNR));
theo_Orthogonal_err_prb = 0.5 *erfc(sqrt(SNR/2));
% Tính xác suất lỗi: Tín hiệu đối cực
% theo_Antipodal_err_prb = Qfunct(sqrt(2*SNR));
theo_Antipodal_err_prb = 0.5 *erfc(sqrt(SNR));
h = waitbar(0,'Please wait...'); Tỷ số lỗi bit theo mô phỏng
% minTime = Inf;
tic
for j=1:length(SNR) Lặp từ 1 đến độ dài vector SNR
tStart = tic; % TIC, pair 2
waitbar(j/length(SNRindB));
dsource_1 = 0.5*(sign(rand(1,NumBits)-0.5)+1); Tạo nguồn nhị phân
numoferr = 0; Khởi tạo biến numoferr bằng 0
for i=1:NumBits
% Tạo dữ liệu nhị phân và cho đi qua kênh AWGN
temp = rand;
if (temp<0.5), % Tạo biến ngẫu nhiên phân bố
dsource(i) =1; % With probability 1/2 source output is 1 đều trong (0,1)
X = sgma(j)*randn(1); % Tạp âm Gauss với trung bình
Y = -sqrt(Eb) + X; không và độ lệch chuẩn thuộc
else vector sgma
dsource(i) = 0; % With probability 1/2 source output is 0 % Bit 1 với năng lượng -sqrt(Eb)
X = sgma(j)*randn(1); đi qua kênh AWGN
Y = sqrt(Eb) + X; % Bit 0 với năng lượng +sqrt(Eb)
end đi qua kênh AWGN
% detector follows/Decission
if (Y<0)
decis(i) = 1; % Quyết định '1'
else
decis(i) = 0; % Quyết định '0'
end;
end;
numoferr = sum(decis~=dsource); % So sánh bit dữ liệu đích và dữ
liệu nguồn, số bit lỗi bằng tổng
các bit bị sai khác
smld_err_prb(j) = numoferr/NumBits; % Ước lượng xác suất lỗi bit bằng
%------------------------- Số bit lỗi/Tổng số bit
tElapsed = toc(tStart); % TOC, pair 2
% minTime = min(tElapsed, minTime)
end;

SimTime = max(tElapsed) % Tính thời gian mô phỏng


close(h);
h1 = figure(1); Vẽ hình
% set(h1,'color','c');
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','.VnTime','color','b','FontSize',12);
ylabel('\bf X¸c suÊt lçi Pe','FontName','.VnTime','color','b','FontSize',18);
title(['M« pháng BER hÖ thèng BPSK trong kªnh AWGN; N_s_i_m_b_i_t =
',num2str(NumBits),' bits ',...
],'FontName','.VnTime','color','r','FontSize',14);
LT = legend(' M« pháng ',' TÝnh to¸n');
set(LT,'FontName','.VnTime','FontSize',16);
AX=gca;
set(AX,'FontSize',14);
axis([min(SNRindB) max(SNRindB), 1e-5 0.2]);
grid on
text(2,7e-5,'M« h×nh hãa vµ m« pháng',...
'FontName','.VnTimeh','Color','b','FontSize',14);
text(0.5,min(theo_Antipodal_err_prb),'TÝnh chÝnh x¸c cña kÕt qu¶ m« pháng,
x¸c nhËn vµ phª chuÈn m« h×nh',...
'FontName','.VnTimeh','Color','r','FontSize',9.9)

subplot(122)
G = semilogy(SNRindB,theo_Orthogonal_err_prb,'-vr');
G = semilogy(SNRindB,theo_Orthogonal_err_prb,'-
vr',SNRindB,theo_Antipodal_err_prb,'-ob');
set(G,'LineWidth',[1.5]);
xlabel('SNR [dB]','FontName','.VnTime','color','b','FontSize',12);
ylabel('X¸c suÊt lçi Pe','FontName','.VnTime','color','b','FontSize',18);
title('So s¸nh x¸c suÊt lçi bit hÖ thèng BPSK trùc giao vµ ®èi cùc trong kªnh
AWGN',...
'FontName','.VnTime','color','b','FontSize',15);
LT = legend(' Trùc giao',' §èi cùc');

set(LT,'FontName','.VnTime','FontSize',16,'fontweight','normal','fontAngle','normal');
AX = gca;
set(AX,'FontSize',14);
axis([min(SNRindB) max(SNRindB), 1e-5 0.2]);
grid on;
text(2,7e-5,'TÝnh to¸n so s¸nh hiÖu
n¨ng','FontName','.VnTimeh','Color','b','FontSize',14);
Phần 2 Kết quả mô phỏng

Hình 3.1 So xác suất lỗi Pe của hệ thống BPSK theo tính toán lý thuyết và mô phỏng

SNR 0 1 2 3 4 5 6 7

Biến NN -1.1298 -0.1511 -0.1093 -0.2156 -0.8130 -0.1152 0.1238 0.0127


gaussian X
Số lỗi 78183 56048 37438 22866 12463 5849 2401 750

BER 0.0782 0.0560 0.0374 0.0229 0.0125 0.0058 0.0024 0.0008

Xác định các tín hiệu trong mô hình, chương trình mô phỏng và ghi kết quả
Phía phát và kênh AWGN Phía thu
Đầu ra của tạo nguồn nhị phân Đầu ra kênh AWGN Vào/ra quyết định BER
Bit {0,1} có năng lượng  sqrt(Eb) X = sgma(j)*randn(1) if (Y<0) decis = 1;
Y =  sqrt(Eb) + X else decis = 0;
end;

SNR 0 1 2 3 4 5 6 7
BER của trực giao 0.1587 0.1309 0.1040 0.0789 0.0565 0.0377 0.0230 0.0126
BER của đối cực 0.0786 0.0563 0.0375 0.0229 0.0125 0.0060 0.0024 0.0008

You might also like