Professional Documents
Culture Documents
Vẽ biểu
%đồ tần suất và so sánh lý thuyết.
N=10^4;
sigma = 2;
r = raylrnd(sigma,1,N);
dx= 0.3;
Xm=8;
x = 0:dx:Xm;
%mo phong
CDF_s = zeros(size(x));
for idx =1:length(x)
CDF_s(idx) = CDF_s(idx)+ sum(r <= x(idx))/N;
end
PDF_s = zeros(size(x));
for idx = 2:length(x)
PDF_s(idx) = PDF_s(idx) + sum((r >= x(idx-1))&(r < x(idx)))/(dx*N);
end
%ly thuyet
CDF_t = 1-exp(-x.^2./(2*sigma.^2));
PDF_t = x./sigma.^2.*exp(-x.^2./(2*sigma.^2));
plot(x,CDF_t,x,CDF_s,'o',x,PDF_t,x,PDF_s,'s');
156
xlabel('\it x');
ylabel('CDF-PDF');
legend('CDF ly thuyet','CDF mo phong','PDF ly thuyet','PDF mo phong');
set(gcf,'color','white');
%vi du 4.32 Tương tự Ví dụ 4.31, hãy tạo ra biến ngẫu nhiên có phân bố Rayleigh
từ biến phân bố chuẩn. Vẽ biểu đồ tần suất và so sánh lý thuyết.
N=10^4;
sigma = 2;
r = abs( sigma.*(randn(1,N) + 1i*randn(1,N)));
dx= 0.3;
Xm=8;
x = 0:dx:Xm;
%mo phong
CDF_s = zeros(size(x));
for idx =1:length(x)
CDF_s(idx) = CDF_s(idx)+ sum(r <= x(idx))/N;
end
PDF_s = zeros(size(x));
for idx = 2:length(x)
PDF_s(idx) = PDF_s(idx) + sum((r >= x(idx-1))&(r < x(idx)))/(dx*N);
end
%ly thuyet
CDF_t = 1-exp(-x.^2./(2*sigma.^2));
PDF_t = x./sigma.^2.*exp(-x.^2./(2*sigma.^2));
plot(x,CDF_t,x,CDF_s,'o',x,PDF_t,x,PDF_s,'s');
156
xlabel('\it x');
ylabel('CDF-PDF');
legend('CDF ly thuyet','CDF mo phong','PDF ly thuyet','PDF mo phong');
set(gcf,'color','white');
%Ví dụ 4.33: Sử dụng hàm makedist() để tạo đối tượng phân bố ngẫu nhiên có
%phân bố Nakgami-m vớitham m = 2 và = 1. Vẽ biểu đồ tần suất và so sánh
%với hàm PDF lý thuyết.
N= 10^6;
%Shape pẩmeter
mu =2;
%Scale parameter
Omega = 2;
% tao bien ngau nhien
pd = makedist('Nakagami','mu',mu,'omega',Omega);
r= pd.random(1,N);
PDF_t= pd.pdf(x);
plot(x,PDF_t,'r','LineWidth',2)
hold on
% ve tan suat
PDF_s=zeros(size(x));
for idx = 2:length(x)
PDF_s(idx) = PDF_s(idx) + sum((r >= x(idx-1))&(r < x(idx)))/(dx*N);
end
159
%ve hinh so sanh
plot(x,PDF_t);
hold on
stem(x,PDF_s,'s');
xlabel('\it r');
ylabel('PDF');
legend('PDF ly thuyet','PDF mo phong');
set(gcf,'color','white');
%vi du 4.34 Hãy mô phỏng tạo biến ngẫu nhiên có phân bố Nakagami-m m = 3
%và = 2 từ phân bố Gamma. Vẽ biểu đồ tần suất và so sánh với hàm PDF lý
%thuyết bằng cách sử dụng hàm pdf() từ đối tượng phân bố tạo ra từ hàm
%makedist().
%Và hàm chi2rnd() để tạo biến ngẫu nhiên có phân bố Chi.
clear all
clc
N= 10^4;
% shape prameter
mu =3;
% Scale prameter
Omega=2;
% tạo biến ngẫu nhiên Nakagami từ biến ngẫu nhiên phân bố Chi
r=sqrt(Omega/(2*mu)).*sqrt(chi2rnd(2*mu,1,N));
% thiết lập thông số vễ đồ thị
dx = 0.1;
Xm = max(r);
x=0:dx:Xm;
% vẽ tần số
PDF_s= zeros(size(x));
for idx=2:length(x)
PDF_s(idx)=PDF_s(idx)+sum((r >= x(idx-1))&(r<x(idx)))/(dx*N);
end
% vẽ đồ thị phân bố Nakagami-m lí thuyết
pd= makedist('Nakagami','mu',mu,'omega',Omega);
r= pd.random(1,N);
PDF_t=pd.pdf(x);
% Vẽ hình so sánh
plot(x,PDF_t,'r','LineWidth',2);
hold on
stem(x,PDF_s,'o');
xlabel('\it r');
ylabel('PDF');
legend('PDF ly thuyet','PDF mo phong');
set(gcf,'color','white');
% vi du 4.36 Hãy tạo tín hiệu răng cưa có tần số là 5 Hz, tần số lấy mẫu là 100
Hz và thời gian là 1s.
%Chúng ta sử dụng hàm sawtooth() với chương trình Matlab và kết quả như sau:
T=1;
fc = 5;
fs = 10^2;
t=0:1/fs:T;
x= sawtooth(2*pi*fc*t);
plot(t,x);
set(gcf,'color','white');
xlabel('Time(s)')
ylabel('Waveform')
%Ví dụ 4.37: Tạo chuỗi bit có chiều dài 1000 bit, tính xác suất xuất hiện của
bit 0 và bit
N = 1000;
X = randi([0 1],1,N);
Pr0=sum(x==0)/N
Pr1=sum(x==1)/N
%Ví dụ 4.38:
%a. Tạo ma trận lỗi 3x3 có 1 lỗi trên mỗi hàng.
%b. Tạo ma trận lỗi 3x10 có 1 lỗi trên mỗi hàng.
%c. Tạo ma trận lỗi 10x5 với 1 lỗi có xác suất 80% và 3 lỗi có xác suất 20%.
randerr(3,3)
randerr(3,10)
randerr(10,5,[1 3; 0.8 0.2])