310 likes | 340 Views
سیگنال ها و سیستم ها. مروری بر Matlab. حمیدرضا پوررضا. محاسبات ساده. >> ((40+60)*11-100)/20 ans = 50 >> x=5 x = 5 >> y=10; >> x*y^2 ans = 500. Variable naming rules 1- case sensitive 2- maximum length is 31 characters 3- must start with letter
E N D
سیگنال ها و سیستم ها مروری بر Matlab حمیدرضا پوررضا
محاسبات ساده >> ((40+60)*11-100)/20 ans = 50 >> x=5 x = 5 >> y=10; >> x*y^2 ans = 500 Variable naming rules 1- case sensitive 2- maximum length is 31 characters 3- must start with letter 4- can not contain any symbols Reserved Word List for end if while function return elseif case otherwise switch continue else trycatch global persistent break H.R. POURREZA
توابع محاسباتی >> cos(pi); >> exp(5); % e5 >> log2(8); % 8=23 >> sqrt(100); >> abs(3+4i); >> angle(3+3i); >> floor(9.9); >> round(3.6); >> rem(10,4); H.R. POURREZA
توابع محاسباتی >> [ang,r,z]=cart2pol(1,1,1); >> nchoosek(5,3); % N!/K!(N-K)! >> whos >> clear >> whos >> format long >> pi >> format short >> pi H.R. POURREZA
توابع M-File Choose New from the File menu and select M-file functionamount= wage(hours, payRate) % Will calculate the weekly wage amount = 40*payRate+(hours-40)*1.5*payRate; >> type wage >> help wage >> wage(40,10) >> wage(40,2000); >> am=wage(40,2000) H.R. POURREZA
توابع M-File – استفاده از IF functionamount= wage(hours, payRate) fprintf('Hi! My name is WageCalculator and I will calculate how much you earned last week.\n'); name = input('What is your name?\n','s'); fprintf('Nice to meet you %s.\n',name); Max_hours=40; Overtime_rate=1.5; if hours>=Max_hours amount = Max_hours*payRate+(hours- Max_hours)*Overtime_Rate*payRate; else amount = hours*payRate; end H.R. POURREZA
اندیسهای ماتریس >> A=[]; >> A=[1 2 3; 4 5 6; 7 8 9]; >> A=[1 2 3; 4 5 6; 7 8 9] A= 1 2 3 4 5 6 7 8 9 >> Mm=A*A; %ضرب ماتریسی Mm = 30 36 42 66 81 96 102 126 159 H.R. POURREZA
اندیسهای ماتریس >> Ma=A.*A % ضرب آرایه ای Ma = 1 4 9 16 25 36 49 64 81 >> Dm=A/A; %تقسیم ماتریسی >> DA=A./A; % تقسیم آرایه ای >> 1:5 1 2 3 4 5 >> X=1:N; >> X=colon(1,N); H.R. POURREZA
اندیسهای ماتریس >> 100:-10:50 100 90 80 70 60 50 >> C3=A(:,3) C3 = 3 6 9 >> R2=A(2,:) R2 = 4 5 6 H.R. POURREZA
اندیسهای ماتریس >> T2=A(1:2,1:3) T2 = 1 2 3 4 5 6 >> T3=T2' T3 = 1 4 2 5 3 6 >> S=sum(B(1:k,j)); H.R. POURREZA
تولید ماتریس >> zeros(M,N) %generate an MxN matrix of zeros >> ones(M,N) %generate an MxN matrix of ones >> rand(M,N) %generate an MxN whose entires are %uniformly-distributed random %numbers in the interval [0.0,1.0] >> randn(M,N) %generate an MxN whose entires are %normally-distributed random %numbers with mean 0 and var. 1 H.R. POURREZA
تولید ماتریس >> A=5*ones(3,3) A = 5 5 5 5 5 5 5 5 5 >> B=rand(2,4) B = 0.2311 0.4860 0.7621 0.0185 0.6068 0.8913 0.4565 0.8214 >> H.R. POURREZA
ادغام ماتریسها (Matrix Concatenation) >> B = [1 2;3 4]; >> C = [B B;B+4 B-1] C = 1 2 1 2 3 4 3 4 5 6 0 1 7 8 2 3 >> H.R. POURREZA
حذف سطر و ستون از ماتریسها >> C(2 , :) = [] %delete the second row of C C = 1 2 1 2 5 6 0 1 7 8 2 3 >> C(: , 1:3:4) = [] C = 2 1 6 0 8 2 >> H.R. POURREZA
دریافت خصوصیات ماتریسها >> B = [5 1 2; 3 9 4; 7 6 8]; >> max(B) ans = 7 9 8 >> max(max(B)) ans = 9 >>max(B(:)); >> S = size(B) S = 3 3 H.R. POURREZA
دریافت خصوصیات ماتریسها >> D = B(2 , :) D = 3 9 4 >> size(D) ans = 1 3 length(D) ans = 3 >> ndims(B) ans = 2 H.R. POURREZA
For-end >> [R,C]=size(B); >> Avg=0; >>for r=1:R for c=1:C Avg=Avg+B(r,c); end end >>Avg=Avg/(R*C) Avg = 5.0000 >> >>lookfor average >> pause H.R. POURREZA
نمایش >> plot(x); Try: x = 0:0.1:2*pi;y=sin(x);plot(x,y)grid onhold onplot(x,exp(-x),'r:*');title('2-D Plots');xlabel('Time');ylabel('Sin(t)');text(pi/3,sin(pi/3),'<--sin(\pi/3)')legend('Sine Wave','Decaying Exponential'); H.R. POURREZA
نمایش >> plot(x); Try: x=0:.1:2*pi; subplot(3,1,1); plot(x,sin(x)); subplot(3,1,2); plot(x,cos(x)); subplot(3,1,3) plot(x,exp(-x)); H.R. POURREZA
مثال یک clc; clear all; close all; t=-2:1:2; y=[zeros(1,2),ones(1,1),zeros(1,2)]; subplot(2,2,1); stem(t,y); ylabel('Amplitude -->.'); xlabel('(a) n -->.'); تولید چند سیگنال گسسته: H.R. POURREZA
مثال یک % ################################ n=input('enter the N value'); t=0:1:n-1; y1=ones(1,n); subplot(2,2,2); stem(t,y1); ylabel('Amplitude -->.'); xlabel('(b) n -->.'); % ################################ n1=input('enter the length of ramp sequence'); t=0:n1; subplot(2,2,3); stem(t,t); ylabel('Amplitude -->.'); xlabel('(c) n --.>'); تولید سیگنال [u(n)-u(n-N)]: تولید سیگنال شیب: H.R. POURREZA
مثال یک % ################################ n2=input('enter the length of exponential sequence'); t=0:n2; a=input('enter the a value'); y2=exp(a*t); subplot(2,2,4); stem(t,y2); ylabel('Amplitude -->.'); xlabel('(d) n -->.'); تولید نمایی: H.R. POURREZA
مثال دو % ################################ t=0:.01:pi; y=sin(2*pi*t); figure(2); subplot(2,1,1); plot(t,y); ylabel('Amplitude --.>'); xlabel('(a) n --.>'); % ################################ t=0:.01:pi; y=cos(2*pi*t); subplot(2,1,2); plot(t,y); ylabel('Amplitude -->.'); xlabel('(b) n --.>'); تولید تابع سینوس: تولید تابع کسینوس: H.R. POURREZA
مثال سه clc; clear all; close all; x=input('enter the 1st sequence’'); h=input('enter the 2nd sequence'); y=conv(x,h); figure;subplot(3,1,1); stem(x);ylabel('Amplitude --.'); xlabel('(a) n --.'); subplot(3,1,2); stem(h);ylabel('plitude --.'); xlabel('(b) n --.'); subplot(3,1,3); stem(y);ylabel('Amplitude --.'); xlabel('(c) n --.'); disp('The resultant signal is');y H.R. POURREZA
مثال سه enter the 1st sequence’[1 2] enter the 2nd sequence[1 2 4] The resultant signal is y = 1 4 8 8 H.R. POURREZA
مثال چهار clc; clear; %----------------Function definition----------------- stepsize = 0.01; t1 = [-1 : stepsize : 3]; f = t1>=0 & t1<=2; t2 = [-1 : stepsize : 2]; h = t2>=0 & t2<=1; %--------------------Convolution--------------------- t = [t1(1)+t2(1) : stepsize : t1(end)+t2(end)];) g = zeros(size(t)); محاسبه کانولوشن برای دو سیگنال زیر: H.R. POURREZA
مثال چهار for i = 1 : length(t) if t(i) <= 0 g(i) = 0; elseif t(i) <= 1 tau = [0 : stepsize : t(i)]; f_times_h = ones(1,length(tau)); g(i) = trapz(tau,f_times_h); elseif t(i) <= 2 tau = [t(i)-1 : stepsize : t(i)]; f_times_h = ones(1,length(tau)); g(i) = trapz(tau,f_times_h); elseif t(i) <= 3 tau = [t(i)-1 : stepsize : 2]; f_times_h = ones(1,length(tau)); g(i) = trapz(tau,f_times_h); else g(i) = 0; end end H.R. POURREZA
مثال چهار %----------------------Plots------------------------- figure; subplot(2,2,1); plot(t1,f,'LineWidth',2); xlabel('t'); ylabel('f(t)'); ylim([0 1.5]); subplot(2,2,2); plot(t2,h,'LineWidth',2); xlabel('t'); ylabel('h(t)'); ylim([0 1.5]); subplot(2,2,3:4); plot(t,g,'LineWidth',2); xlabel('t'); ylabel('g(t)=f(t)*h(t)'); ylim([0 1.5]); H.R. POURREZA
مثال چهار H.R. POURREZA
مثال پنج clear; t = -1:0.01:3; u_t = t>=0; u_t_1 = t>=2; f = u_t - u_t_1; I1 = trapz(t,f) t = 0:0.01:pi/2; g = sin(2*t); I2 = trapz(t,g) I1 = 2 I2 = 1.0000 محاسبه دو سیگنال زیر: H.R. POURREZA
جعبه ابزار پردازش تصویر >> f = imread(' d:\images\fig4.jpg ', 'jpg'); >> size(f) ans= 1024 1024 >> imwrite(f,' d:\images\fig4.jpg ', 'jpg'); >>imshow(f) >>g=rgb2gray(f); >>g=mat2gray(f); H.R. POURREZA