Bài giảng Làm quen với matlab

1- mở 1 hàm m-file và thực hiện yêu cầu sau: a- tạo ma trận có chiều dài n x m: b- cộng trừ nhân chia hai ma trận vừa tạo ( đưa ra kết quả) c- trích ra đường chéo của 2 ma trận ban đầu sau đó ghép lại thành 1 ma trận mới d- trích 2 dòng đầu của ma trận 1 và 2 dòng cuối của ma trận 2. sau đó ghép chúng thành ma trận mới e- trích cột cuối của ma trận thứ nhất và cột đầu của ma trận 2. sau đó ghép với ma trận 1 để tạo ma trận mới

pdf62 trang | Chia sẻ: vietpd | Lượt xem: 2932 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Bài giảng Làm quen với matlab, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BÀI 1: LÀM QUEN VỚI MATLAB I- Lý thuyết và thực hành 1- mở 1 hàm m-file và thực hiện yêu cầu sau: a- tạo ma trận có chiều dài n x m: b- cộng trừ nhân chia hai ma trận vừa tạo( đưa ra kết quả) c- trích ra đường chéo của 2 ma trận ban đầu sau đó ghép lại thành 1 ma trận mới d- trích 2 dòng đầu của ma trận 1 và 2 dòng cuối của ma trận 2. sau đó ghép chúng thành ma trận mới e- trích cột cuối của ma trận thứ nhất và cột đầu của ma trận 2. sau đó ghép với ma trận 1 để tạo ma trận mới % chương trình thực hiện >> a=[2 4 6 0 ;3 5 7 7;10 4 5 4]; >> b=[2 4 6 1; 4 9 2 4 ;1 5 6 7 ]; >> x=a+b x = 4 8 12 1 7 14 9 11 11 9 11 11 >> y=a-b y = 0 0 0 -1 -1 -4 5 3 9 -1 -1 -3 >> z=a.*b z = 4 16 36 0 12 45 14 28 10 20 30 28 >> t=a./b t = 1.0000 1.0000 1.0000 0 0.7500 0.5556 3.5000 1.7500 10.0000 0.8000 0.8333 0.5714 >> diag(a); % ham co cong dung trich duong cheo cua ma tran >> diag(b); >> x1=[diag(a) diag(b)] x1 = 2 2 5 9 5 6 >> a1=a(1:2,:); >> b1=a(2:3,:); >> x2=[a1;b1] x2 = 2 4 6 0 3 5 7 7 3 5 7 7 10 4 5 4 >> a2=a(:,4); >> b2=b(:,1); >> x3=[a2 b2] x3 = 0 2 7 4 4 1 2- đồ họa 2.1- trong không gian 2D: mở 1 hàm m-file và vẽ đồ thị của các hàm sau(vẽ trên cùng 1 của sổ) hàm f(x) : f(x)= -x.sin(x) đạo hàm của f(x) : f’(x)=-x.cosx-sinx đạo hàm xấp xỉ : f12=diff(f(x)/x(2)-x(1)) sai số liên quan: f22=(f12-f’(x)(1:999))/norm(f12) % chương trình x=linspace(-20,20,1000); %chon khoang lay mau %ham f(x); y=-x.*sin(x); subplot(2,2,1); % chia o trong do thi plot(x,y) %ve do thi trong khong gian 2d grid title('ham sin'); %tao tieu de cho do thi xlabel('truc x' ); %tao nhan cho truc x ylabel('truc y'); %tao nhan cho truc y %ham dao ham; y1=-x.*cos(x)-sin(x); subplot(2,2,2); plot(x,y1) grid %ve luoi trong do thi title('ham dao ham'); xlabel('truc x'); ylabel('truc y'); %ham xap xi y2=diff(y/x(2)-x(1)); subplot(2,2,3); plot(x(1:999),y2); grid title('ham xap xi'); xlabel('truc x'); ylabel('truc y'); y3=(y2-y1(1:999))/norm(y2); subplot(2,2,4); plot(x(1:999),y3); grid title('ham sai so lien quan'); xlabel('truc x'); ylabel('truc y'); %ket qua chuong trinh 2.2-trong không gian 3D: mở 1 hàm m-file và vẽ đồ thị của các hàm sau(vẽ trên từng cửa sổ) a- z1=f(x,y)=sinx.siny, với x,y=[0, pi ] b- z2=f(x,y)=x - x3 + y2 + 1, với x,y=[-3,3] c- z3=f(x,y)= 2 2 2 2 sin( ) ( ). x y x y x + + , với x,y=[-8,8] % do thi 1 x=(0:0.05:pi) y=(0:0.05:pi) [x,y]=meshgrid(x,y); % tao ma tran he thong trong do thi 3d z1=sin(x).*sin(y); figure; %tao them 1 do thi moi mesh(x,y,z1); %ve do thi 3d xlabel('Truc x'); ylabel('Truc y'); zlabel('Truc z1'); title(' Do thi ham so Z= sinx*siny'); % do thi 2 [x,y]=meshgrid(-3:0.5:3); z2=x-x.^3+y.^2+1; figure; mesh(x,y,z2); xlabel('Truc x'); ylabel('Truc y'); zlabel('Truc z2'); title(' Do thi ham so z2 = x-x^3+y^2+1'); % do thi 3 [x,y]=meshgrid(-8:0.5:8); z3=sin (sqrt(x.^2+y.^2))./sqrt((x.^2+y.^2).*x); figure; mesh(x,y,z3); xlabel('Truc x'); ylabel('Truc y'); zlabel('Trucz3'); title(' Do thi ham so z3 = sin((sqrt(x.^2+y.^2)./sqrt((x.^2+y.^2).*x))'); % ket qua chuong trinh II- NHẬN XÉT VÀ KẾT LUẬN Bài thực hành giúp ta bước đầu làm quen với matlab, nhờ đó mà ta co thể dễ dàng tạo các ma trận các hàm va thưc hiện tinh toán nó, vẽ đượ các đồ thị đơn giản trong không gian 2d và 3d Bài thực hành còn giúp ta hiểu rõ chức năng của các lệnh trong matlab BÀI 2:MÔ PHỎNG VÀ TẠO TÍN HIỆU 1-Tóm tắt lý thuyết Một tín hiệu thời gian rời rạc được biểu diễn như 1 dãy số hay còn gọi là 1 dãy mẫu,được kí hiệu là {x[n]}; trong đó đối số là những số nguyên chạy từ -∞ đến +∞, đặc trưng cho thời gian. Giá trị của dãy mẫu tại thời điểm n là x[n]. vì thế để tiện lợi,tín hiệu thời gian rời rạc bất kỳ thường được ký hiệu là x[n] • tín hiệu thời gian rời rạc có thể là 1 dãy mẫu có chiều dài vô hạn hoặc hữu hạn. dãy có chiều dày hữu hạn là dãy có giá trị khác 0 trong 1 khoảng thời gian hữu hạn từ thời điểm N1 đến N2: N1≤ n≤ N2. Với N2≥ N1. Dãy này có chiều dài N=N2-N1+1 mẫu • dãy thỏa mãn điều kiện [ ] [ ]x n x n kN= +% % được gọi là dãy tuần hoàn với chu kỳ cơ bản N là 1 số nguyên dương và k là 1 số nguyên bất kỳ • năng lượng của dảy x[n] dược xác định bằng công thức 2| [ ] | n X nε ∞ =−∞ = ∑ • năng lượng của dãy trong 1 khoảng xác định từ -K≤ n≤ K được xác định bằng biểu thức 2| [ ] | k n k X nε =− = ∑ • công suất trung bình của 1 dãy không tuần hoàn x[n] được xác định bằng công thức 2 1 1lim lim | [ ] | 1 1 K Kav K K n K p X n K K ε →∞ →∞ =− = = + + ∑ • Công suất trung bình của 1 dãy tuần hoàn [ ]x n% với chu kỳ N được cho bởi công thức 2 0 1 | [ ] | N av n p X n N = = ∑ % • Dãy xung đơn vị được kí hiệu bằng [ ]nδ và được xác định từ biểu thức: { 1, 00, 0[ ] khinkhinnδ =≠= • Dãy nhảy bậc đơn vị kí hiệu u[n] dược xác dịnh từ biểu thức : { 1, 00, 0[ ] khinkhinu n ≥<= • Dãy sin phức được biểu thị bằng hệ thức : 0[ ] | || | jw nnx n A eα +Φ= • Dãy sin thực có biên độ là hằng số được biểu thị bằng [ ] cos( )nx n A w n= + Φ trong đó A , w0, Φ là những số thực được gọi là biên độ, tần số góc và pha ban đầu của dãy số sin x[n], còn 00 2 wf pi = là tần số. dãy sin phức và sin thực là những dãy tuần hoàn với chu kỳ N nếu : 0 2w n rpi= . Trong đó N là số nguyên dương còn r la số nguyên bất kỳ . giá trị N nhỏ nhất thỏa mãn điều kiện trên là chu kỳ cơ bản của dãy x[n] đó • Tích 2 dãy dũ liệu x[n] và h[h] có cùng chiều dài n sẽ thu được 1 dãy dữ liệu y[n] có cùng chiều dài N là được thực hiện bằng hệ thức : y[n]= x[n] +h[n] • Nhân dãy x[n] với hằng số a dược thực hiện bằng hệ thức : y[n]=a.x[n] • Ngược thời gian hay còn gọi là đổi chiều tín hiệu của 1 dãy có chiều dài vô hạn dượ thực hiện bằng hệ thức : y[n]= x[-n] • Làm trễ dãy x[n] có chiều dài vô hạn 1 lượng M sẽ thu được dãy y[n] có chiều dài vô hạn và được thực hiện nhờ biểu thức: y[n]=x[n-M] . trong đó M là 1 số nguyên dương . đây cũng chính là 1 phép dịch dãy x[n] về phía phải trục thời gian M mẫu và được kí hiệu là z-M. trường hợp M=1 thì được gọi là trễ đơn vị và kí hiệu z-1 . nếu M lấy dấu âm thì được gọi là sớm tương đương với việc dịch dãy về phía trái M mẫu trên trục thời gian II- THỰC HÀNH 1- dãy xung đơn vị [ ]nδ a- tạo dãy xung đơn vị [ ]nδ có chiều dài N mẫu: b- tạo dãy xung đơn vị [ ]nδ có chiều dài N mẫu bị trễ M mẫu (M<N) c- tạo dãy nhảy bậc đơn vị u[n] dài N mẫu d- tạo dãy nhảy bậc đơn vị u[n] dài N mẫu bị trễ M mẫu (M<N) e- chương trình phát dãy xung % chuong trinh n=10; %day xung don vi x=[1 zeros(1,n-1)]; subplot(5,1,1); stem(x); title('day xung don vi') %day xung don vi chieu dai N tre M mau m=4; x1=[zeros(1,m) 1 zeros(1,n-m-1)]; %zeros :ma tran dong nhat khong subplot(5,1,2); stem(x1) title('day xung don vi chieu dai N tre M mau') %tao day nhay bac dai N mau u=[ones(1,n)]; subplot(5,1,3); stem(u) title('day nhay bac dai N mau') %tao day nhau bac dai N bi tre M mau m=4; u1=[ones(1,n-m)]; subplot(5,1,4); stem(u1) title('day nhau bac dai N bi tre M mau') %chuong trinh phat day xung n=-10:20; y=[zeros(1,10) 1 zeros(1,20)]; subplot(5,1,5); stem(n,y) xlabel(' chi so thoi gian') ylabel('bien do') title('day xung don vi') axis([10 20 0 1.5]) %tao kich thuoc truc do thi % ket qua chuong trinh Nhận xét: nhìn vào đồ thị ta thấy các tín hiệu được biểu diễn dưới dạng rời rạc nấc đơn vị (biên độ =1),đồ thị thể hiện rõ các đặc điểm của dãy xung đơn vị , tính chất trễ , dãy nhảy bậc đơn vị… phù hợp với lý thuyết đã học 2- biểu diễn tín hiệu sin phức và sin thực dãy sin phức mô tả bằng phương trình: 0 0 0 0( ) 0 0| | | | cos( ) | | sin( ) n j w n n nA e A e w n j A e w nσ σ σ+ +Φ = + Φ + + Φ dãy sin thực [ ] cos( )nx n A w n= + Φ trong đó A , w0, Φ là những số thực được gọi là biên độ, tần số góc và pha ban đầu của dãy số sin x[n], còn 00 2 wf pi = là tần số % chuong trinh t=-(1/12)+(pi/6).*j; k=2; n=0:40; x=k*exp(t*n); subplot(2,1,1); stem(n,real(x)); xlabel('chi so thoi gian'); ylabel('bien do') title('phan thuc') subplot(2,1,2); stem(n,imag(x)); xlabel('chi so thoi gian'); ylabel('bien do'); title('phan ao'); % ket qua chuong trinh Nhận xét : kết quả thu được la đồ thị biểu diễn tín hiệu phần thực và phần ảo dưới dạng rời rạc nấc đơn vị trên trục thực và trục ảo nhờ hàm stem. Tín hiệu biểu diễn dần tiến về không 3- các tín hiệu thời gian rời rạc sin thực để tạo tín hiệu sin thực trong matlab ta sử dụng các hàm sin và cos %chuong trinh tin hieu thoi gian roi rac sin thuc n=0:40; f=0.1; phase=0; A=1.5; arg=2*pi*f*n-phase; x=A*sin(arg); stem(n,x); axis([0 40 -2 2]); grid; title(' day tin hieu sin'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); % ket qua chuong trinh Nhận xét : kết quả thu được cũng là đồ thị dạng rời rạc hình sin có biên độ là 1,5, chu kỳ là 10 biến thiên liên tục theo thời gian 4- các tín hiệu ngẫu nhiên rời rạc tín hiệu ngẫu nhiên thời gian rời rạc có chiều dài n mẫu phân bố đều đặn trong khoảng [0,1] được tạo bởi lệnh trong matlab là x=rand(1,N) tạo 1 tín hiệu ngẫu nhiên dạng gauss có giá trị trung bình bằng 0 và phương sai bằng đơn vị , dùng lệnh x=rand(1,N) %chuong trinh n=40; x=randn(1,n); stem(x); % ket qua chuong trinh III- áp dụng 1- biểu diễn tín hiệu sin thực có tần số 0,9 và 1,1 %chuong trinh biểu diễn tín hiệu sin thực có tần số 0,9 n=0:40; f=0.9; phase=0; A=1.5; arg=2*pi*f*n-phase; x=A*sin(arg); stem(n,x); axis([0 40 -2 2]); grid; title(' day tin hieu sin'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); % ket qua chuong trinh %chuong trinh biểu diễn tín hiệu sin thực có tần số 1,1 n=0:40; f=1,1; phase=0; A=1.5; arg=2*pi*f*n-phase; x=A*sin(arg); stem(n,x); axis([0 40 -2 2]); grid; title(' day tin hieu sin'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); % ket qua chuong trinh So sánh 2 dãy này với dãy trong chương trình 2.3 (f=0,1) ta nhận thấy : ở tần số là 0,9 thì chu kỳ sẽ là 9 dạng xung ra được mô phỏng gần như tần số là 0,1 -ở tần số 1,1 ta thấy so với f=0,1 thì đồ thị là dạng đường thẳng do giá trị max của hàm sin là 1 và ở day giá trị là 1,1 nên đồ thị sẽ có dạng dường thẳng ( dạt giá trị =0) 2- biểu diễn tín hiệu sin thực có chiều dài 50 mẫu, tấn số 0,08, biên độ 2,5 và có độ dịch pha 900 -thay lệnh stem thành lệnh plot và lệnh stairs %chuong trinh n=0:50; f=0.08; phase=90; A=2.5; arg=2*pi*f*n-phase; x=A*sin(arg); subplot(3,1,1); stem(n,x); axis([0 40 -3 3]); title(' day tin hieu sin bd bang lenh stem'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); subplot(3,1,2); plot(n,x); title(' day tin hieu sin bd bang lenh plot'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); subplot(3,1,3); stairs(n,x); title(' day tin hieu sin bd bang lenh stairs'); xlabel(' chi so thoi gian n'); ylabel(' bien do'); % ket qua chuong trinh Nhận xét: đồ thị mà ta thu được sau khi chạy chương trình thể hiện dúng các thông số của bài toán Khi ta sủ dụng các lệnh để vẽ đồ thị khác nhau thì sẽ cho ra các dạng đồ thị khác nhau. Lệnh plot để vẽ đồ thị dưới dạng sóng liên tuc ,lệnh stem để vẽ đồ thị sóng dạng rời rạc , lệt stairs vẽ đồ thị dạng sóng bậc thang 3- biểu diễn 1 tín hiệu dạng lũy thùa thực x[n]=0,2.1,2n. biểu diễn bằng các lệnh stem,plot,stairs và nhận xét n=0:40; x=0.2.*(1.2.^n); subplot(3,1,1) plot(x) grid title('tin hieu dang luy thua bd bang lenh plot') xlabel('chi so thoi gian') ylabel(' bien do') subplot(3,1,2) stem(x); grid title('tin hieu dang luy thua bd bang lenh stem') xlabel('chi so thoi gian') ylabel(' bien do') subplot(3,1,3) stairs(x); grid title('tin hieu dang luy thua bd bang lenh stairs') xlabel('chi so thoi gian') ylabel(' bien do') % ket qua chuong trinh Nhận xét: tín hiệu lũy thừa được biểu diễn bằng 3 lệnh plot, stem và stairs cho ra 3 dạng sóng khác nhau rời rạc, liên tục, bậc thang. Ta nhận thấyTín hiệu dược biểu diễn đi từ 0 và bắt đầu tăng dần lên khi gần tới 20 và đạt tới giá trị đỉnh là >40 phù hợp với lý thuyết đã học IV- NHẬN XÉT VÀ KẾT LUẬN Bài thực hành này giúp ta nắm rõ các vấn đề về mô phỏng và tạo tín hiệu: công dụng của các hàm ở trong từng bài, cách sử dụng các lệnh , cách vẽ đồ thị , hiểu được đồ thị … BÀI 3:HỆ THỐNG LTI I- LÝ THUYẾT Hệ thống thời gian rời rạc thực hiện phép ánh xạ tín hiệu lối vào với các giá trị x[n] thành tín hiệu rời rạc lối ra với những tính chất mong muốn bằng cách áp dụng những thuật toán cho trước . bài thực hành này là tiến hành mô phỏng 1 số hệ thống rời rạc tuyến tính và bất biến với thời gian đơn giản và nghiên cứu các tính chất của chúng trên lĩnh vực thời gian. Các hệ thống này được đặc trưng bởi đáp ứng xung h[n] và được mô hình hóa trên hình 3.1 hình 3.1 • Quan hệ vào / ra của hệ thống LTI được xax1 định bởi tổng nhân chập sau: [ ] [ ] [ ] [ ] [ ] r k y n h k x n k x k h n k ∞ ∞ =−∞ =−∞ = − = −∑ ∑ . và được kí hiệu bằng :y[n]=x[n]*h[n] • 2 hệ thống LTI có đáp ứng xung lần lượt là h1[n] và h2[n] ghép nối tiếp với nhau thì hệ thống tổng thể có đáp ứng xung: h[n]=h1[n]*h2[n] . nếu 2 hệ thống ghép nối tiếp nhau sao cho : 1[ ]* 2[ ] [ ]h n h n nδ= thì hệ thống LTI có đáp ứng xung h2[n] được gọi là nghịch đảo của hệ thống LTI có đáp ứng xung h1[n] và ngược lại • 1 hệ thống LTI được gọi là ổn định theo nghĩa BIBO nếu đáp ứng xung xủa nó thỏa mãn điều kiện: 2| [ ] | n h k ∞ =−∞ < ∞∑ • 1 hệ thống LTI được gọi là nhân quả khi và chỉ khi đáp ứng xung của nó thỏa mãn điều kiện h[n]=0 khi n<0 • Quan hệ vào ra của hệ thống LTI còn được biểu thị bằng phương trình sai phân hệ số hằng số dạng: 0 00 0 [ ] [ ] [ ] M N m k m m b ay n x n m y n k a a = = = − = −∑ ∑ với a0≠0. như vậy lối ra y[n] tại thời điểm n có thể được tính từ phương trình sai phân ở trên đối với tất cả n≥n0 khi biết x[n] và các điều kiện ban đầu y[n0-1], y[n0-2],…,y[n0-N]. hệ thống thời gian rời rạc được mô tả bằng phương trình sai phân có đáp ứng xung vô hạn nên được gọi là hệ thống IIR • Hệ thống có đáp ứng xung hữu hạn được gọi là hệ thống FIR nếu phương trình sai phân có ak=0 với k>0 . vậy hệ thống FIR nhân quả có phương trình 0 0 [ ] [ ] M m m by n x n m a = = −∑ • Hệ thống thời gian rời rạc đượ gọi là tuyến tính nếu đáp ứng lên 1 tổng bằng tổng các đáp ứng , cách khác nếu y1[n] và y2[n] là đáp ứng lên các tính hiệu lối vào x1[n] và x2[n] thì đối với lối vào tổng : x[n]=ax1[n] +bx2[n] sè có đáp ứng là y[n]=ay1[n]+by2[n]. phương trình này đúng với các hằng số a,b bất kỳ và đối với tất cả cá giá trị khả dĩ của tín hiệu lối vào x1[n] và x2[n] , nếu phương trình không nghiệm đúng với ít nhất 1 giá trị khác không của a hoặc b , của x1[n], x2[n] thì hệ thống là phi tuyến • Hệ thống đượ gọi là bất biến đối với thời gian nếu y1[n] là đáp ứng đối với tín hiệu lối vào x1[n], thì đáp ứng đối với phiên bản trễ của tín hiệu lối vào x[n]=x1[n-n0] sẽ là y[n]=y1[n-n0], ở đây n0 là số nguyên dương hoặc âm. Nếu hệ thức không thỏa mãn thì hệ thống thay đổi đối với thời gian. Hệ thống vừa thỏa mãn tính tuyến tính vừa bất biến với thời gian gọi là hệ thống LTI • Trong matlab dể mô phỏng các hệ thống thời gian rời rạc LTI nhân quả có phương trình sai phân trên ta có thể dùng lệnh filter y=filter(num,den,x) • Tín hiệu lối ra y[n] của hệ thống LTI có đáp ứng xung đơn vị h[n] với lối vào x[n] cũng được xác định bằng lệnh conv(h,x) • đáp ứng xung đơn vị h[n] của 1 hệ thống dược xác dịnh bằng lệnh h=inpz(num,den,N+1) II- THỰC HÀNH 1- các hệ thống tuyến tính và phi tuyến tính Nghiên cứu tính chất tuyến tính của hệ thống y[n]-0,4y[n-1]+0,75y[n-2]=2,2403x[n]+2,4908x[n-1]+2,2403x[n-2] chương trình dưới đây để mô phỏng hệ thống này với 3 tín hiệu vào là x1[n],x2[n], x[n]=ax1[n]+bx2[n]. tính và vẽ đồ thị của tín hiệu lối ra y1[n],y2[n] và y[n] với x1=cos(0,2 npi ),x2=cos(0,8 npi ),x[n]=2x1[n]-3x2[n] %chuong trinh n=0:40; a=2; b=-3; x1=cos(2*pi*0.1*n); x2=cos(2*pi*0.2*n); x=a*x1+b*x2; num=[2.2403 2.4908 2.2403]; %tao ma tran tu so den=[ 1 -0.4 0.75]; % tao ma tran mau so y1=filter(num,den,x1); % ham filter thuc hien bo loc matran tu, mau cua ham x1 y2=filter(num,den,x2); % thuc hien bo loc matran tu, mau cua ham x2 y=filter(num,den,x); yt=a*y1+b*y2; d=y-yt subplot(3,1,1);stem(n,y);title('tin hieu loi ra theo x') axis([0 40 -50 50]) %chia truc cua do thi truc x tu 0-40, truc y tu -50-50 subplot(3,1,2);stem(n,yt);title('tin hieu loi ra theo y') axis([0 40 -50 50]) subplot(3,1,3);stem(n,d);title('tin hieu sai so d') %ket qua chay chuong trinh Nhận xét: nhìn vào dồ thị tha thấy tín hiệu lối ra theo x(y[n]), tín hiệu lối ra theo y(yt[n]) là giống nhau vì thế hai hệ thống này là tuyến tính vì y[n]=yt[n] 2- xác định đáp ứng xung đơn vị của hệ thống LTI Phép tính và vẽ đáp ứng xung của phương trình sai phân sau: y[n]-0,4y[n-1]+0,75y[n-2]=2,2403x[n]+2,4908x[n-1]+2,2403x[n-2] %tinh va ve dap ung xung n=40; num=[2.2403 2.4908 2.2403 ]; den=[1 -0.4 0.75]; h=impz(num,den,n); %hàm impz : xac dinh dap ung xung don vi cua he thong stem(h); title('dap ung xung cua he thong'); Nhận xét: kết quả thu được là dang tín hiệu được biểu diễn dưới dạng rời rạc và tiến dần về 0 3- các hệ thống bất biến với thời gian Mô phỏng hệ thống có phương trình sai phân sau y[n]= 2,2403x[n]+2,4908x[n-1]+2,2403x[n-2]+ 0,4y[n-1]+0,75y[n-2] mục đích của chương trình này là tìm tín hiệu lối ra y[n] đối với 2 tín hiệu lối vào x[n] và x[n-n0] và hiệu của 2 tín hiệu đó n=0:40; n0=10; a=0.3; b=-2; xn=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n); xn0=[zeros(1,n0) xn]; num=[2.243 2.4908 2.2403]; den=[1 -0.4 0.7]; yn=filter(num,den,xn); yn0=filter(num,den,xn0); dn=yn-yn0(1+n0:41+n0); subplot(3,1,1) stem(n,yn); title('tin hieu loi ra trheo y[n]'); subplot(3,1,2); stem(n,yn0(1:41)); title('tin hieu loi ra tre n0 mau'); subplot(3,1,3); stem(n,dn); title('tin hieu hieu') Nhận xét: tín hiệu lối ra y[n] giảm dần, tín hiệu lối ra theo y[n-n0] bị trễ đi 10 mẫu so với tín hiệu y[n] . hai tín hiệu này cơ bản là giống nhau nhưng thời điểm bắt đầu của tín hiệu là khác nhau Vì tín hiệu ra là 0 nên không đáp ứng với tín hiệu lối vào nên hệ thống không bất biến với thời gian 4- ghép nối tiếp các hệ thống Ghép nối 2 hệ thống bậc 2 có phương trình sai phân sau: y1[n]+0,9y1[n-1]+0,8y1[n-2]=0,3x[n]-0,3x[n-1]+0,4x[n-2] và y2[n]+0,7y2[n-1]+0,85y2[n-2]=0,2y1[n]-0,5y1[n-1]+0,3y1[n-2] để thu được hệ thống bậc 4 có phương trình sai phân sau y[n]+1,6y[n-1]+2,28y[n-2]+1,325y[n-3]+0,68y[n-4]=0,06x[n]-0,19x[n- 1]+0,27x[n-2]-0,26x[n-3]+0,12x[n-4] %chuong trinh x=[1 zeros(1,40)]; %tao tin hieu vao x[n] n=0:40; %cac he so cua he thong bac 4 den=[1 1.6 2.28 1.325 0.68]; num=[0.06 -0.19 0.27 -0.26 0.12]; %tinh tin hieu loi ra cua he thong bac 4 y=filter(num,den,x); %cac he so cua hai he thong bac hai num1= [0.3 -0.2 0.4]; den1=[1 0.9 0.8]; num2=[0.2 -0.5 0.3]; den2=[1 0.7 0.85]; %tin hieu ra y[n] y1=filter(num1,den1,x); %tin hieu ra y[2] y2=filter(num2,den2,y1); %hieud[n]=y[n]-y2[n] d=y-y2; %ve cac tin hieu subplot(3,1,1); stem(n,y); ylabel('bien do') title('tin hieu ra cua he thong bac 4'); grid; subplot(3,1,2); stem(n,y2); ylabel('bien do') title('loi ra cua he thong noi tiep'); grid; subplot(3,1,3); stem(n,d); xlabel('chi so thoi gian n'); ylabel('bien do'); title('tin hieu sai so'); grid; Nhận xét:dựa vào đồ thị ta nhận thấy tín hiệu lối ra y[n] giống tín hiệu lối ra y2[n] nên dãy y[n] giống dãy y2[n] 5- tính ổn dịnh của hệ thống LTI y[n]-x[n]-0,8x[n-1]-1,5y[n-1]-0,9y[n-2] %chuong trinh num=[1 -0.8]; den=[1 1.5 0.9]; N=250; h=impz(num,den,N+1); sum=0; %thuc hien phep lap for k=1:N+1; sum=sum + abs(h(k)); if abs(h(k))<10^(-6) break end end %ve dap ung xung don vi n=0:N; stem(n,h); xlabel('chi so thoi
Tài liệu liên quan