Tải bản đầy đủ (.pdf) (9 trang)

Đáp án mô phỏng HTTT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (158.49 KB, 9 trang )

CLGT

Giải bài tập mô phỏng hệ thống truyền thông

GIẢI BÀI TẬP MÔ PHỎNG HỆ THỐNG TRUYỀN THÔNG
Bài 9:
% Bài 9
t = (0 :0.1: 10); %Tạo véc tơ thời gian t
disp ('gia tri cua tin hieu theo thoi gian la : ')
s = sin(2*pi*5*t).*sin(2*pi*3*t)+exp(-0.1*t) %Biểu diễn tín hiệu s

Bài 10:
% Bài 10
t = (0 :0.1: 10); %Tạo véc tơ thời gian t
disp ('gia tri cua tin hieu theo thoi gian la : ')
s = sin(2*pi*5*t).*sin(2*pi*3*t) %Biểu diễn tín hiệu s

Bài 11:
% Bài 11
t = (0:0.1:10); %Tạo véc tơ thời gian t
s = 20 *sin(2*pi*5*t); %Biểu diễn tín hiệu s
lamtron = round(s) %làm tròn giá trị s về giá trị số nguyên gần nhất

Bài 12:
% Bài 12
b = [1024 1000 100 2 1]; %Tạo véc tơ b
disp('Gia tri logarith co so 2 cua vecto b la : ')
logarith2 = log2(b)
%Lấy logarit cơ số 2 của vector b
disp('Gia tri logarith co so 10 cua vecto b la : ')
logarith10 = log10(b) %Lấy logarit cơ số 10 của vector b



Bài 13:
% Bài 13
w = (0.01:0.01:5);% Véc tơ tần số, đơn vị là rad/s
H1 = 1./(j*w); %Hàm truyền của một bộ tích phân
H2 = 1./ (1 + j*w); %Hàm truyền của một phần tử trễ thời gian bậc 1
plot(w, abs(H1)); % Vẽ đồ thị biên độ hàm truyền H1
title('Do thi bien do qua bo tich phan');
figure
plot(w,abs(H2)); % Vẽ đồ thị biên độ hàm truyền H2 sang một hình khác
title('Do thi bien do cua phan tu tre thoi gian');
figure
plot(w, abs(H1)); % Vẽ đồ thị biên độ H1 theo hàm semilogx – biểu diễn
trục x theo logarit còn trục y giữ nguyên
title('Do thi bien do qua bo tich phan');
figure
semilogy(w,abs(H1)); % Vẽ đồ thị biên độ H1 theo hàm semilogy – biểu
diễn trục y theo logarit còn trục x giữ nguyên
figure
loglog(w,abs(H1)); % Vẽ đồ thị biên độ H1 theo hàm loglog – biểu diễn cả
2 trục x&y theo logarit.
title('Do
D09VT1

thi bien do cua phan tu tre thoi gian');

1


CLGT


Giải bài tập mô phỏng hệ thống truyền thông

Bài 14:
% Bài 14
w = (0.01:0.01:5);% Véc tơ tần số, đơn vị là rad/s
H1 = 1./(j*w); %Hàm truyền của một bộ tích phân
H2 = 1./ (1 + j*w); %Hàm truyền của một phần tử trễ thời gian bậc 1
subplot(2,2,1)
plot(w, abs(H1)); % Vẽ đồ thị biên độ hàm truyền H1
title('Do thi bien do qua bo tich phan');
subplot(2,2,2)
plot(w, angle(H1)); % Vẽ đồ thị pha hàm truyền H1
title('Do thi pha qua bo tich phan');
subplot(2,2,3)
plot(w,abs(H2)); % Vẽ đồ thị biên độ hàm truyền H2
title('Do thi bien do cua phan tu tre thoi gian');
subplot(2,2,4)
plot(w,angle(H2)); % Vẽ đồ thị pha hàm truyền H2
title('Do thi pha cua phan tu tre thoi gian');

Bài 15:
% Bài 15
x = (-2:0.2:2); % Khởi tạo véc tơ x
y = (-1:0.1:1); % Khởi tạo véc tơ y
[X,Y] = meshgrid(x,y); % Tạo lưới tọa độ (X,Y)
F = X.^2 + Y.^2; % Biểu diễn hàm F theo X và Y
surf(X, Y , F); % Vẽ đồ thị của F theo X và Y
xlabel('X');
ylabel(' Y ');

zlabel('F');

Bài 16:
% Bài 16
t=0:10:360; % Véc tơ t
p=0:10:360; % Véc tơ p
R=3; % Bán kính
[T,P]=meshgrid(t,p); % Tạo lưới tọa độ (T,P)
Z = R*sin(pi*T./180); % Biểu diễn Z trong hệ tọa độ cầu
X = R*sqrt(R^2-Z.^2).*cos(pi*P./180); % Biểu diễn X trong hệ tọa độ cầu
Y = R*sqrt(R^2-Z.^2).*sin(pi*P./180); % Biểu diễn Y trong hệ tọa độ cầu
surf(X,Y,Z); % Vẽ đường tròn
xlabel('x-axis');
ylabel('y-axis');
zlabel('F');

D09VT1

2


CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 17:
% Bài 17
y =(1:0.5:5); % Tạo véc tơ y
L=length(y); % Chiều dài của véc tơ y
k=0;

disp('vecto yr la : ')
for i=1:L
yr(i)= y(L-i+1); % Đảo ngược vec tơ y ta được véc tơ yr
end;
yr
for i=1:L
if (rem(y(i),1)==0)
k = k+1;
z(k)= y(i);
end
end
disp('vecto chua cac so nguyen trong y : ')
z

Bài 19:
% Bài 19
r = 3; % Bán kính
theta = linspace(-2*pi,2*pi,180); % Biểu diễn góc trong tọa độ cực
x = r*cos(theta); % Biểu diễn x trong tọa độ cực
y = r*sin(theta); % Biểu diễn y trong tọa độ cực
plot(x,y);
axis equal
sprintf('dien tich hinh tron la:')
dt = pi*r^2
sprintf('chu vi hinh tron la:')
chuvi=2*pi*r

Bài 20:
% Bài 20
r = 3; % Bán kính

theta = linspace(-2*pi,2*pi,180); % Biểu diễn góc trong tọa độ cực
x = r*cos(theta); % Biểu diễn x trong tọa độ cực
y = r*sin(theta); % Biểu diễn y trong tọa độ cực
plot(x,y);
axis equal % Chia 2 trục tọa độ tỉ lệ đều để hiển thị hình tròn tốt hơn
dt = pi*r^2;
sprintf('dien tich hinh tron la: %0.5f',dt)
chuvi=2*pi*r;
sprintf('chu vi hinh tron la: %0.5f', chuvi)

D09VT1

3


CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 21:
% Bài 21
a = input('a='); % Nhập vào giá trị của a
b = input('b='); % Nhập vào giá trị của b
fa =-inf; % gán fa bằng âm vô cùng
fb = inf; % gán fb bằng dương vô cùng
while (b-a)> eps*b
x = (a+b)/2;
fx = x^3/3 + 4*x^2 + x - 6;
if sign(fx)==sign(fa)
a=x;

fa=fx;
else
b=x;
fb=fx;
end;
end
disp('Nghiem cua phuong trinh la : ')
x

Bài 22:
% Bài 22
a=-1.5; %Điểm cận dưới
b=1.5; %Điểm cận trên
N=100; %Số điểm tính tích phân
h = (b-a)/N;
tp=0;
for k=1:N
x = a+(k-1/2)*h;
F = 4*x^3*2*exp(x)*cos(x);
tp = tp +F;
end
tp = tp*h;
disp('Gia trị tich phan tinh theo phuong phap mid point la: ')
tp

Bài 23:
% Bài 23 – cách 1
x0=2;
x1=1.5;
while abs(x0-x1)> 0.0001

x0 = x1;
x1 = (x0^2+2)/(2*x0)
end;
disp('Gia trị can bac 2 cua a tinh theo pp gan dung la: ')
x1
====================================================================
% Bài 23 – cách 2 của thầy giáo
x0 = 2;
errs = 0.0001;
diffx = 1;
x = x0;
while diffx > errs
xn = (x^2+2)/(2*x)
diffx = abs(xn - x);
x = xn;
end
disp('Gia trị can bac 2 cua a tinh theo pp gan dung la: ')
x

D09VT1

4


CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 24:
% Bài 24

a=1;r=1;
t0=0;
y0=0; % Điều kiện ban đầu
tf=2;
t = [0:0.01:tf];
yt=1-exp(-a*t); % Nghiệm đúng của PTVT đã cho
plot(t,yt,'k'), hold on
h = 1/4;
klast = (tf-t0)/h;
y(1) = y0;
for k = 1:klast
yp = (1 - a*h)*y(k) +h*r; % Euler's formula
y(k + 1) = (1 - a*h/2)*y(k) + (2*r-a*yp)*h/2;
% Công thức Euler biến đổi
plot([k - 1 k]*h,[y(k) y(k+1)],'b', k*h,y(k+1),'ro')
pause;
end

Bài 25:
% Bài 25
a=1;r=1;
t0=0;
y0=0; % Điều kiện ban đầu
tf=2;
t = [0:0.01:tf];
yt=1-exp(-a*t); % nghiệm của PTVT
plot(t,yt,'k'), hold on
h = 1/4; % cỡ bước
klast = (tf-t0)/h;
y(1) = y0;

tvec(1) = t0;
for k = 1:klast
k1 = fun1(y(k),tvec(k));
k2 = fun1(y(k)+2*h*k1/3,tvec(k)+2*h/3);
k3 = fun1(y(k)+2*h*k2/3,tvec(k)+2*h/3);
y(k + 1) = y(k) + h*((2/8)*k1 + (3/8)*k2 + (3/8)*k3);%Công thức RK-3
tvec(k+1) = tvec(k) + h;
plot([k - 1 k]*h,[y(k) y(k+1)],'b', k*h,y(k+1),'ro')
pause;
end
=========================================================
%”fun1” function
function yf = fun1(y,t)
a = 1; r = 1;
yf = r-a*y;

D09VT1

5


CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 26:
% Bài 26
clear, clf
a=1;r=1;
t0=0;

y0=0; % Điều kiện ban đầu
tf=2;
t = [0:0.01:tf];
yt=1-exp(-a*t); % nghiệm của PTVT
plot(t,yt,'k'), hold on
h = 1/4;
klast = (tf-t0)/h;
y(1) = y0;
tvec(1) = t0;
for k = 1:klast
k1 = feval(@fun1,y(k),tvec(k));
k2 = feval(@fun1,y(k)+h*k1/2,tvec(k)+h/2);
k3 = feval(@fun1,y(k)+h*k2/2,tvec(k)+h/2);
k4 = feval(@fun1,y(k)+h*k3,tvec(k)+h);
y(k + 1) = y(k) + h*(k1 + 2*k2 + 2*k3 + k4)/6; %Công thức RK-4
tvec(k+1) = tvec(k) + h;
plot([k - 1 k]*h,[y(k) y(k+1)],'b', k*h,y(k+1),'ro')
pause;
end
======================================================
%”fun1” function
function yf = fun1(y,t)
a = 1; r = 1;
yf = r-a*y;

Bài 27:
% Bài 27
[t,solution] = ode45(@solRCLP, [0, 3], 0);
[t2,solution2] = ode23(@solRCLP, [0, 3], 0);
plot(t,solution(:,1),'r-',t2, solution2(:,1),'b-')

xlabel('time / s')
ylabel('Amplitude / V')
=========================================================
%”solRCLP” function
function [udot]= solRCLP(t,u)
R = 10000; % Điện trở R
C = 4.7*10e-6; %
f = 1;
udot = 0;
udot = -(1/(R*C))*u + (1/(R*C))*ustep(t);
=========================================================
function u = ustep(t)
if t >=0
u = 1;
else
u = 0;
end

D09VT1

6


CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 31:
% Bài 31
x = randint(1,128); % Tạo véc tơ x g?m 128 bít ngẫu nhiên phân bố đều

id=1;
%Chuyển véc tơ x thành ma trận y (32x4)
for i=1:32
for j=1:4
y(i,j) = x(id);
id = id+1;
end;
end;
disp('Ma tran y la: ')
y
%Chuyển véc tơ y từ nhị phân thành thập phân
z = bi2de(y,'left-msb') %Lấy trọng số từ trái sang

Bài 32:
% Bài 32
function [y,amax] = alaw(x,A)
if abs(x) < 1/A
y = sign(x)*A*abs(x)/(1+log(A));
else if abs(x)>= 1/A & abs(x) <= 1
y = sign(x)*(1+log(A*abs(x)))/(1+log(A));
end
end
amax = max(abs(x))
end
========================================================
function x = invalaw(y,A)
if abs(y) < 1/(1+log(A))
x = sign(y)*(abs(y)*(1+log(A)))/A;
else if abs(y) >= 1/(1+log(A)) & abs(y) < 1
x = sign(y)*exp(abs(y)*(1+log(A))-1)/A;

end
end
end

Bài 33: Các bạn xem lại ví dụ về luật Muy (slide trang 123+124) để
làm tương tự.
% Bonus thêm cái luật Muy nhé
function [y,a] = mulaw(x,mu)
% x - input sequence
% mu - mu constant
% y - compressed output
% a - maximum amplitute
a = max(abs(x));
y = sign(x).*log(1+mu*abs(x/a))/log(1+mu);
========================================================
function x = invmulaw(y,mu)
% mu - mu constant
% y - compressed input
% x - expanded output
x = sign(y).*((1+mu).^abs(y)-1)/mu;

D09VT1

7


CLGT

Giải bài tập mô phỏng hệ thống truyền thông


Bài 34:
% Bài 34
function [t,y,code] = rzcode(d,R,Ns)
% Chương trình ví dụ về mã đường truyền R
% d
chuỗi dữ liệu đầu vào
% R
tốc độ dữ liệu
% Ns
số lượng mẫu
% t
vectơ thời gian
% y
vectơ mẫu tín hiệu
Tb = 1/R; % chu kì bit
Nb = length(d); % độ dài chuỗi bit
Timewindow = Nb*Tb; % thời gian cửa sổ
ts = Timewindow/(Ns-1); % thời gian lấy mẫu
t = 0:ts:Timewindow; % vectơ thời gian
y = zeros(size(t)); % tạo vectơ y toàn số 0
code = [];% khởi tạo vectơ mã
for k = 1:Ns
n = fix(t(k)/Tb)+1; % lấy phần nguyên của t(k)/Tb cộng thêm 1
if n >= Nb
n = Nb;
end;
if mod(t(k),Tb)<=Tb/2 % lấy phần dư của t(k)/Tb so sánh với Tb/2
y(k) = d(n);
code(n) = d(n);
else

y(k) = 0;
end;
end;

Bài 35:
% Bài 35
k=4;
for i=1:2^4
for j=k:-1:1
if rem(i-1,2^(-j+k+1))>=2^(-j+k) % lấy phần dư có dấu của i-1
chia cho 2^(-j+k+1) so sánh với 2^(-j+k)
u(i,j)=1
else
u(i,j)=0
end
end
end
% tạo ma trận sinh
g=[1 0 0 0 1 1 1;
0 1 0 0 1 1 0;
0 0 1 0 1 0 1;
0 0 0 1 0 0 1];
% xác định các từ mã đầu ra của bộ mã khối có tốc độ 4/7
c=mod(u*g,2) % lấy phần dư của u*g chia cho 2

D09VT1

8



CLGT

Giải bài tập mô phỏng hệ thống truyền thông

Bài 36:
% Bài 36
function tg = tamgiac(Tp,n)
% n là số chu kì muỗn vẽ
% Tp là chu kì xung
Tw=Tp/2;
for i=0:n-1
x=[i*Tp:0.0001:(i+1)*Tp]; % tạo vectơ thời gian
fx=1-abs(((x-i*Tp)-Tw)/Tw); % tính giá trị hàm tại từng thời điểm
plot(x,fx)
hold on
end

Bài 37:
%Bài 37
Fc = 300; %Tần số sóng mang
Fs=1000; % Tần số lấy mẫu Fs>2Fc
t = [0:1/Fs:0.5];
st=2*cos(20*pi*t+pi/4)+cos(30*pi*t);
subplot(3,1,1)
plot(t,st) %Vẽ dạng tín hiệu gốc
subplot(3,1,2)
am = ammod(st,Fc,Fs); %Điều chế biên độ
plot(t,am,'r') %Vẽ dạng tín hiệu sau khi điều chế biên độ
subplot(3,1,3)
adm = amdemod(am,Fc,Fs); %Giải điều chế biên độ

plot(t,adm) %Vẽ tín hiệu sau khi giải điều chế

D09VT1

9



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×