Professional Documents
Culture Documents
BÁO CÁO THỰC HÀNH MÔ PHỎNG MATLAB PHẠM PHƯƠNG NAM N18DCVT045
BÁO CÁO THỰC HÀNH MÔ PHỎNG MATLAB PHẠM PHƯƠNG NAM N18DCVT045
Nhóm: 2 Tổ:1
Lớp: D18CQVT01-N
Bài 1: Viết chương trình nhập một số và trả về số bằng chữ. Ví dụ nhập N 111 trả về
một trăm mười một.
clc
clear all
close all
A=input('Nhap so duoi dang chu:');
B=words2num(A);
disp(B)
Bài 2: Viết chương trình nhập vào số bằng chữ và trả về số bằng số.
%Cầntảithêmthưviện words2num
clc
clear all
close all
%PHAMPHUONGNAM_N18DCVT045
A=input('Nhap so duoi dang chu:');
B=words2num(A);
disp(B)
Bài 3: Cho một cell array lưu trữ họ và tên các sinh viên, ví dụ fullname={‘Nguyen Van
Tí’, ‘Tran Van Tho’, ‘Nguyen Canh Chan’, ‘ Tran Luu Nam’, ‘ Tan Hiep Phap’}. Hãy lập
trình trả về danh sách xếp theo thứ tự abc theo tên.
clc
clear all
close all
fullname = {'Nguyen Van Ti''Tran Van Tho''Nguyen Canh Chan''Tran Luu Nam''Tan
HiepPhap'};
%test = sortrows(strvcat(reverse(strtok(reverse(fullname)))));
[ho, ten_lot] = strtok(fullname); %tach chuoidaukhi gap dau space
str_ho = strvcat(ho); %chuyen cell thanh str
[lot, ten] = strtok(ten_lot);
str_ten = strvcat(ten);
str_lot = strvcat(ho);
str_nguoc = strcat(str_ten," ", str_lot," ", str_ho); %noichuoi
str_nguoc = sortrows(str_nguoc); %sap xep chu caidauchuoitheoabc
[ten, lot_ho] = strtok(str_nguoc);
[lot, ho] = strtok(lot_ho);
danh_sach = strcat(ho, " ",lot, " ", ten)
danh_sach =
isstruct(SV)
fieldnames(SV)
isfield(SV.'GioiTinh")
SV =
struct withfields:
Nam Sinh:1990
ans =
logical
ans =
('Ho_va_Ten'}
ans =
logical
1
SV=
struct withfields:
SV =
struct withfields:
GioiTinh:NamHovaTen:TranVanA'
Nam Sinh:1990N?iSinh:'KhanhHoa'
SV =
struct withfields:
SV=
Bài 5: Cho vector chứa một chuỗi số, hãy trả về một chuỗi số khác đếm các phần tử có
trong chuỗi số. Ví dụ x 5,5, 2,1,1,1,1,3 trả về y 2,5,1, 2, 4,1,1,3 .
clc
clear all
close all
%PHAMPHUONGNAM_N18DCVT045
x =[5 5 2 1 1 1 1 3];
element = unique(x, 'stable');
count = sum(bsxfun(@eq, element,x(:)));
matrix = [count, element];
A = matrix (:, 1);
A1 = transpose(A);
B = matrix (:, 2);
B1 = transpose(B);
C = matrix (:, 3);
C1 = transpose(C);
D = matrix (:, 4);
D1 = transpose(D);
result = [A1 B1 C1 D1];
disp(result);
>>
2 1 4 1
Bài 6: Cho ma trận n hàng và 2 cột, chứa tọa độ xOy của n điểm. Hãy tìm hai điểm có
khoảng cách xa nhất và trả về chỉ số hàng của hai điểm đó.
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
x 1 1 2 3 3
Bài 7: Cho một chuỗi số, trả về chuỗi các số không trùng lặp. Ví dụ
y 1 2 3
trả về .
clc
clear all
close all
%PHAMPHUONGNAM_N18DCVT045
A=input('Nhapchuoi so: ');
A=unique(A,'stable')
Bài 8: Tạo một ma trận ngẫu nhiên A có kích thước m,n nhập từ bàn phím. Ma trận B có
kích thước n,k với k nhập từ bàn phím
a) Thực hiện thao tác xóa hàng i và cột j của ma trận ngẫu nhiên vừa tạo. Với i =
(n+m)mod n và j=(n+m) mod m
b) Thêm hàng i+1 và cột j+1 vào ma trận A.
c) Xóa phần tử A[i,j]
d) Đưa ra các phần tử đường chéo của ma trận A
e) Đưa ra ma trận chuyển vị và ma trận nghịch đảo của ma trận A
f) Tính ma trận A*B.
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Bài 9: Giả sử X 1 , X 2 ,..., X n là các biến ngẫu nhiên độc lập có phân bố đều từ 0 đến 1.
Yn n 1 max X 1 , X 2 ,..., X n
Dùng mô phỏng chứng minh sẽ hội tụ theo phân bố đều có
tham số 1.
clc
clear all
close all
N=10^6;
n=20;
U = rand(n,N);
maxX = max(U);
U2=ones(1,N);
fori=1:N
U2(i)= n.*(1-maxX(i));
end
h=histogram(U2)% theocongthuc de cho
pdf_e = h.Values./(N*h.BinWidth);
axis_x = (h.BinEdges(1:end-1) + h.BinEdges(2:end))/2;% truchoanh
tm=max(axis_x);%lay max truchoanh
t=0:0.2:tm;
F=exp(-t);
plot(axis_x,pdf_e,t,F,'o');
hold on;
Bài 10: Cho X và Y là hai biến phân bố hàm mũ độc lập và đồng nhất. Sử dụng mô
phỏng để kiểm chứng max( X , Y ) có phải là một hàm mũ không? Kiểm chứng với lý
thuyết.
clc
clear all;
close all;
N=10^6;
Lx=1/5;
Ly=1/4;
%phanphoi mu cua Z thuchanh.
X=exprnd((1/Lx),1,N); % t?o ra m?tm?ngcác s? ng?unhiên t? phânph?ihàm m?
Y=exprnd((1/Ly),1,N);
Z_th=min(X,Y); % gá tr? min c?a 2 m?ngng?unhiên X,Y
%phanphoi mu Z lythuyet.
n=0:0.5:20;
Lz=Lx+Ly;
Z_lt=Lz*exp(-Lz*n);
%sosanh do thi.
h=histogram(Z_th,100);
pdf_e=h.Values./(N*h.BinWidth);
axis_x=(h.BinEdges(1:end-1)+h.BinEdges(2:end))/2;
plot(axis_x,pdf_e);
hold on
stem(n,Z_lt,'o','Linewidth',0.25);
legend('Thuchanh','Ly thuyet');
set(gcf,'color','y');
grid on;
Bài 11: Cho biến ngẫu nhiên X có phân phối đều trên đoạn có hàm mật độ xác
a, b
1
f x
suất b a tìm
a) Hàm phân phối xác suất của biến ngẫu nhiên X (hàm tích lũy xác suất CDF)
E X VX
b) Tìm kỳ vọng và phương sai .
E X ,V X
c) Mô phỏng kiểm chứng các hàm CDF, của biến ngẫu nhiên X so với
lý thuyết.
d) clc
clear all
close all
aa=1;
bb=2;
xx=(0:0.05:8);
trial_num=10^5; % so mauthu
CDF = zeros(1,length(xx));
fortt = 1 : length(xx)
end
end
end
plot(xx,CDF);
Bài 12: Biến ngẫu nhiên X có phân phối Gauss trong đoạn với hàm mật độ xác
a, b
1 x 2
f x exp
2 2 2
suất với 2 là phương sai, là kỳ vọng của biến
ngẫu nhiên X . Tìm
a) Hàm phân phối xác suất của X
b) Mô phỏng kiểm chứng bằng matlab hàm CDF của biến ngẫu nhiên X
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Bài 13: Cho hai biến ngẫu nhiên X , Y độc lập có phân phối Gauss với giá trị trung bình
bằng 0 và phương sai .
2
e)
PHẦN THỰC HÀNH CÁC LỆNH MÃ HÓA ĐIỀU CHẾ TÍN HIỆU VÀ GIẢI
ĐIỀU CHẾ TÍN HIỆU
Bài 14: Hãy lập trình so sánh mã hóa nguồn A law và law cho tín hiệu sin trong 2 chu
kỳ.
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Bài 15: Hãy lập trình cho hàm và hàmpammod pamdemod . So sánh tốc độ thực
thi hàm giữa hàm tự lập trình và hàm của Matlab.
% Trườnghợp 1: Khôngchuẩnhóacôngsuất ra saubộđiềuchế
M = 4;
s = randi([0 M-1],1,100);
% Điềuchế PAM
Tx = pammod(s,M);
% Côngsuấttrungbìnhcủatínhiệu ra
Average_Pow = mean(abs(Tx).^2)
Average_Pow =
4.8400
% Giảsửtínhiệuthubằngtínhiệunhận
Rx = Tx;
% Giảiđiềuchế
s_ = qamdemod(Rx,M);
% So sánhchuỗiphátvànhận
isequal(s,s_)
ans =
logical
0
% Trườnghợp 2: Cóchuẩnhóa
input = 0:M-1;
const = pammod(input,M);
% Hệsốchuẩnhóa Scale
Scale = modnorm(const,'avpow',1);
s = randi([0 M-1],1,100);
% Điềuchếvàchuẩnhóacôngsuấtphátvớihệsố Scale
Tx = Scale * pammod(s,M);
% Tínhlạicôngsuấtphátxemđãchuẩnhóachưa?
Average_Pow = mean(abs(Tx).^2)
Average_Pow =
1.0000
% Tínhiệunhận: lưu ý chia lạivớihệsố Scale
Rx = Tx/Scale;
% Giảiđiềuchế
Rx = pamdemod(Rx,M);
% So sánhchuỗiphátvànhận
isequal(s,Rx)
ans =
logical
%% Trườnghợp 1: Khôngchuẩnhóacôngsuất
% Điềuchếtínhiệu 16-QAM
txSig = qammod(data,M);
% Cộngnhiễuvàotínhiệu -3dB
rxSig = awgn(txSig,SNR_dB);
scatterplot(rxSig)
set(gcf,'color','w');
% Trường hợp 2: Chuẩn hóa công suất
txSig_N =qammod(data,16,'UnitAveragePower', true);
rxSig_N = awgn(txSig_N,SNR_dB);
scatterplot(rxSig_N)
set(gcf,'color','w');
Bài 17: Vẽ đồ thị tỷ lệ lỗi bit của điều chế BPSK với mã BCH trên kênh truyền nhiễu
trắng. So sánh độ lợi mã trước và sau mã hóa
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Bài 18: Vẽ đồ thị tỷ lệ lỗi bit của điều chế MQAM với mã xoắn trên kênh truyền nhiễu
trắng. So sánh độ lợi mã trước và sau khi mã hóa.
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Bài 19: Mô phỏng kênh truyền nhiễu trắng với điều chế MPSK, DPSK MQAM và kiểm
chứng với lý thuyết.
* ĐIỀU CHẾ MPSK
clc
clear all
close all
EbNo = 0:1:10;
SNR = 10.^(EbNo/10);
M = [4 8 16];
foridx = 1:length(M)
BER_t(idx,:)=(2./log2(M(idx))).*qfunc(sqrt(2.*SNR*log2(M(idx)))*sin(pi/M(idx)));
end
BER_t
N = 10^6;
BER_s = zeros(size(BER_t));
for x = 1:length(M)
foridx = 1:length(SNR)
Ps = SNR(idx)*log2(M(x));
Pn= 1;
m = randi([0 1],1 ,N);
Tx = pskmod(m, M(x),0,'gray');
n = sqrt(Pn/2).*(randn(1,N) + 1i*randn(1,N));
Rx = sqrt(Ps).*Tx + n;
m_ = pskdemod(Rx/sqrt(Ps), M(x), 0, 'gray');
BER_s(x,idx) = BER_s(x,idx) + sum(m~=m_)/(log2(M(x))*N);
end
end
BER_s
semilogy(EbNo,BER_t,'-', EbNo, BER_s,'o','linewidth',1.2);
xlabel('Ty so tin hieutrennhieutheo dB');
ylabel('BER');
set(gcf,'color','white');
grid on
* ĐIỀU CHẾ DSPK
clc
clear all
close all
EbNo = 0:1:10;
SNR = 10.^(EbNo/10);
BER_t = 1./(2.*SNR); %congthuclythuyet bi sai
BER_s = zeros(size(BER_t));
N = 10^6;
foridx = 1:length(SNR)
Ps = SNR(idx)*log2(2);
Pn= 1;
m = randi([0 1],1 ,N);
Tx = dpskmod(m, 2,pi/4,'gray');
n = sqrt(Pn/2).*(randn(1,N) + 1i*randn(1,N));
Rx = sqrt(Ps).*Tx + n;
m_ = dpskdemod(Rx/sqrt(Ps), 2, pi/4, 'gray');
BER_s(idx) = BER_s(idx) + sum(m~=m_)/(log2(2)*N);
end
semilogy(EbNo,BER_t,'-', EbNo, BER_s,'o','linewidth',1.2);
xlabel('Ty so tin hieutrennhieutheo dB');
ylabel('BER');
set(gcf,'color','white');
grid on
Bài 20: Mô phỏng kênh truyền Rayleigh với điều chế MPSK, QMAM và so sánh với lý
thuyết.
* ĐIỀU CHẾ MPSK
clc
clear all
close all
%
EbNo = 0:3:30;
SNR = 10.^(EbNo/10);
M = [4 8 16];
foridx = 1:length(M)
BER_t(idx,:)=(2./log2(M(idx))).*qfunc(sqrt(2.*SNR*log2(M(idx)))*sin(pi/M(idx)));
end
BER_t
N = 10^6;
BER_s = zeros(size(BER_t));
for x = 1:length(M)
foridx = 1:length(SNR)
Ps = SNR(idx)*log2(M(x));
Pn= 1;
m = randi([0 1],1 ,N);
Tx = pskmod(m, M(x),0,'gray');
n = sqrt(Pn/2).*(randn(1,N) + 1i*randn(1,N));
Rx = sqrt(Ps).*Tx + n;
m_ = pskdemod(Rx/sqrt(Ps), M(x), 0, 'gray');
BER_s(x,idx) = BER_s(x,idx) + sum(m~=m_)/(log2(M(x))*N);
end
end
BER_s
semilogy(EbNo,BER_t,'-', EbNo, BER_s,'o','linewidth',1.2);
xlabel('Ty so tin hieutrennhieutheo dB');
ylabel('BER');
set(gcf,'color','white');
grid on
BER_t =
Columns 1 through 9
Columns 10 through 11
0.0000 0
0.0000 0.0000
0.0000 0.0000
BER_s =
Columns 1 through 9
Columns 10 through 11
0 0
0 0
0 0
MÔ PHỎNG HỆ THỐNG VIỄN THÔNG ĐƠN GIẢN
Bài 21: Xem xét hệ thống phân tập thu kết hợp lựa chọn với hai nhánh hoạt động ở kênh
truyền Rayleigh fading, giả sử rằng 1 2 và các kênh truyền là độc lập. Hãy
a) Phân tích xác suất dừng của hệ thống
b) Phân tích tỷ lệ lỗi bit trung bình của hệ thống với điều chế MPSK
c) Phân tích dung lượng shannon của hệ thống
d) Viết chương trình mô phỏng trên Matlab kiểm chứng các kết quả ở các câu trên.
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................