CLGT Giải tập mô 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 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 giá trị số nguyên gần Bài 12: % Bài 12 b = [1024 1000 100 1]; %Tạo véc tơ b disp('Gia tri logarith co so cua vecto b la : ') logarith2 = log2(b) %Lấy logarit số vector b disp('Gia tri logarith co so 10 cua vecto b la : ') logarith10 = log10(b) %Lấy logarit số 10 vector b Bài 13: % Bài 13 w = (0.01:0.01:5);% Véc tơ tần số, đơn vị rad/s H1 = 1./(j*w); %Hàm truyền tích phân H2 = 1./ (1 + j*w); %Hàm truyền phần tử trễ thời gian bậc plot(w, abs(H1)); % Vẽ đồ thị biên độ hàm truyền H1 title('Do thi bien qua bo tich phan'); figure plot(w,abs(H2)); % Vẽ đồ thị biên độ hàm truyền H2 sang hình khác title('Do thi bien 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 trục y giữ nguyên title('Do thi bien 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 trục x giữ nguyên figure loglog(w,abs(H1)); % Vẽ đồ thị biên độ H1 theo hàm loglog – biểu diễn trục x&y theo logarit title('Do D09VT1 thi bien cua phan tu tre thoi gian'); CLGT Giải tập mô 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ị rad/s H1 = 1./(j*w); %Hàm truyền tích phân H2 = 1./ (1 + j*w); %Hàm truyền phần tử trễ thời gian bậc subplot(2,2,1) plot(w, abs(H1)); % Vẽ đồ thị biên độ hàm truyền H1 title('Do thi bien 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 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 Y surf(X, Y , F); % Vẽ đồ thị F theo X 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 hệ tọa độ cầu X = R*sqrt(R^2-Z.^2).*cos(pi*P./180); % Biểu diễn X hệ tọa độ cầu Y = R*sqrt(R^2-Z.^2).*sin(pi*P./180); % Biểu diễn Y hệ tọa độ cầu surf(X,Y,Z); % Vẽ đường tròn xlabel('x-axis'); ylabel('y-axis'); zlabel('F'); D09VT1 CLGT Giải tập mô 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 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 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 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 tọa độ cực x = r*cos(theta); % Biểu diễn x tọa độ cực y = r*sin(theta); % Biểu diễn y 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 tọa độ cực x = r*cos(theta); % Biểu diễn x tọa độ cực y = r*sin(theta); % Biểu diễn y tọa độ cực plot(x,y); axis equal % Chia trục tọa độ tỉ lệ để hiển thị hình tròn tốt 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 CLGT Giải tập mô hệ thống truyền thông Bài 21: % Bài 21 a = input('a='); % Nhập vào giá trị a b = input('b='); % Nhập vào giá trị b fa =-inf; % gán fa âm vô fb = inf; % gán fb dương vô 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 b=1.5; %Điểm cậ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); = +F; end = tp*h; disp('Gia trị tich phan tinh theo phuong phap mid point la: ') Bài 23: % Bài 23 – cách 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 cua a tinh theo pp gan dung la: ') x1 ==================================================================== % Bài 23 – cách 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 cua a tinh theo pp gan dung la: ') x D09VT1 CLGT Giải tập mô 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 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 - 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 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 - 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 CLGT Giải tập mô 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 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 - 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 CLGT Giải tập mô 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ố 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/(1+log(A)) & abs(y) < 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ụ luật Muy (slide trang 123+124) để làm tương tự % Bonus thêm luật Muy 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 CLGT Giải tập mô 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ụ mã đường truyền R % d chuỗi liệu đầu vào % R tốc độ 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ố code = [];% khởi tạo vectơ mã for k = 1:Ns n = fix(t(k)/Tb)+1; % lấy phần nguyên t(k)/Tb cộng thêm if n >= Nb n = Nb; end; if mod(t(k),Tb)=2^(-j+k) % lấy phần dư có dấu 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 1 1; 0 1 0; 0 1 1; 0 0 1]; % xác định từ mã đầu mã khối có tốc độ 4/7 c=mod(u*g,2) % lấy phần dư u*g chia cho D09VT1 CLGT Giải tập mô hệ thống truyền thông Bài 36: % Bài 36 function tg = tamgiac(Tp,n) % n số chu kì muỗn vẽ % Tp 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 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 đ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 giải điều chế D09VT1