1. Trang chủ
  2. » Công Nghệ Thông Tin

Giao trinh matlab v5.2 P14 pdf

11 263 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 268,41 KB

Nội dung

PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 133 else if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end if j==3 for l=1:(n+k-3) if u(l+j-1)==u(l) if u(l+j)==u(l+1) N(l,j)=0; else N(l,j)=(u(l+j)-U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end else if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end if j==4 X(t)=0;Y(t)=0;Z(t)=0; for l=1:(n+k-4) if u(l+j-1)==u(l) if u(l+j)==u(l+1) N(l,j)=0; else N(l,j)=(u(l+j)-U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end else if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 134 N(l,j)=(U-u(j))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end end for l=1:n X(t)=X(t)+x(l)*N(l,k); Y(t)=Y(t)+y(l)*N(l,k); Z(t)=Z(t)+z(l)*N(l,k); end end %U %hold on; if s1==1 subplot(2,1,1); plot3(X,Y,Z); line(x,y,z); hold on subplot(2,1,2); hold on plot(X,Y,'M'); line(x,y); hold on end if s1==2 subplot(2,1,1); plot3(X,Y,Z); line(x,y,z); hold on subplot(2,1,2); plot(X,Y,'G'); line(x,y); hold on end if s1==3 subplot(2,1,1); plot3(X,Y,Z); line(x,y,z); hold on subplot(2,1,2); PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 135 plot(X,Y,'R'); line(x,y); hold on end end elseif strcmp(action,'Plane'); n=input('n='); m=input('m='); k=input('Vao bac k='); h=input('vao bac h='); q='y'; while q=='y' q=input('Neu tiep tuc thi danh y nguoc lai la n ='); for i=1:(n+k) if i<(k+1) u(i)=0; elseif i>n u(i)=n-k+1; else u(i)=i-k; end end for i=1:(m+h) if i<(h+1) w(i)=0; elseif i>m w(i)=m-h+1; else w(i)=i-h; end end %x=input('Nhap vao n.m toa do Px='); %y=input('Nhap vao n.m toa do Py='); %z=input('Nhap vao n.m toa do Pz='); x(1,1)=-3;x(1,2)=-3;x(1,3)=-3;x(1,4)=-3; x(2,1)=-1;x(2,2)=-1;x(2,3)=-1;x(2,4)=-1; x(3,1)=1;x(3,2)=1;x(3,3)=1;x(3,4)=1; x(4,1)=3;x(4,2)=3;x(4,3)=3;x(4,4)=3; y(1,1)=0;y(1,2)=3;y(1,3)=3;y(1,4)=0; y(2,1)=3;y(2,2)=5;y(2,3)=5;y(2,4)=3; PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 136 y(3,1)=3;y(3,2)=5;y(3,3)=5;y(3,4)=3; y(4,1)=5;y(4,2)=5;y(4,3)=5;y(4,4)=5; z(1,1)=5;z(1,2)=3;z(1,3)=-3;z(1,4)=-5; z(2,1)=5;z(2,2)=3;z(2,3)=-3;z(2,4)=-5; z(3,1)=5;z(3,2)=3;z(3,3)=-3;z(3,4)=-5; z(4,1)=5;z(4,2)=3;z(4,3)=-3;z(4,4)=-5; v=input('vao khoang can ve cua u(1,2 n)='); g=input('vao khoang can ve cua w(1,2 n)='); for i=1:(n+k-1) if u(i)< u(i+1) if u(i)==v-1 N(i,1)=1; else N(i,1)=0; end else N(i,1)=0; end end for i=1:(n+k-1) t=N(i,1); end for i=1:(m+h-1) if w(i)< w(i+1) if w(i)==g-1 M(i,1)=1; else M(i,1)=0; end else M(i,1)=0; end end for i=1:(m+h-1) t1=M(i,1); end X1=[];Y1=[];Z1=[]; for U=(v-1):0.1:(v-0.1) t=0; for W=(g-1):0.1:(g-0.1) t=t+1; PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 137 for i=2:h if i==2 for l=1:(m+h-2) if w(l+i-1)==w(l) if w(l+i)==w(l+1) M(l,i)=0; else M(l,i)=(w(l+i)-W)*M(l+1,i-1)/(w(l+i)-w(l+1)); end else if w(l+i)==w(l+1) M(l,i)=(W-w(l))*M(l,i-1)/(w(l+i-1)-w(l)); else M(l,i)=(W-w(l))*M(l,i-1)/(w(l+i-1)-w(l)) +(w(l+i)- W)*M(l+1,i-1)/(w(l+i)-w(l+1)); end end end end if i==3 for l=1:(m+h-3) if w(l+i-1)==w(l) if w(l+i)==w(l+1) M(l,i)=0; else M(l,i)=(w(l+i)-W)*M(l+1,i-1)/(w(l+i)-w(l+1)); end else if w(l+i)==w(l+1) M(l,i)=(W-w(l))*M(l,i-1)/(w(l+i-1)-w(l)); else M(l,i)=(W-w(l))*M(l,i-1)/(w(l+i-1)-w(l)) +(w(l+i)- W)*M(l+1,i-1)/(w(l+i)-w(l+1)); end end end end end for j=2:k if j==2 for l=1:(n+k-2) PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 138 if u(l+j-1)==u(l) if u(l+j)==u(l+1) N(l,j)=0; else N(l,j)=(u(l+j)-U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end else if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end if j==3 for l=1:(n+k-3) if u(l+j-1)==u(l) if u(l+j)==u(l+1) N(l,j)=0; else N(l,j)=(u(l+j)-U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end else if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end if j==4 for l=1:(n+k-4) if u(l+j-1)==u(l) if u(l+j)==u(l+1) N(l,j)=0; else N(l,j)=(u(l+j)-U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end else PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 139 if u(l+j)==u(l+1) N(l,j)=(U-u(l))*N(l,j-1)/(u(l+j-1)-u(l)); else N(l,j)=(U-u(j))*N(l,j-1)/(u(l+j-1)-u(l)) +(u(l+j)- U)*N(l+1,j-1)/(u(l+j)-u(l+1)); end end end end end % kt for j=2:k X1(t)=0;Y1(t)=0;Z1(t)=0; for l=1:n for i=1:m X1(t)=X1(t)+x(l,i).*N(l,k).*M(i,h); Y1(t)=Y1(t)+y(l,i).*N(l,k).*M(i,h); Z1(t)=Z1(t)+z(l,i).*N(l,k).*M(i,h); end end plot3(X1,Y1,Z1); hold on view([3 3 6]) end end view([3 3 3]) e e n n d d ToolBox - Digital Signal Processing Phần 2 - ứng dụng 140 Phần 2 ứng dụng về xử lý tín hiệu Số 1 1 . . T T í í n n h h i i ệ ệ u u v v x x ử ử l l ý ý t t í í n n h h i i ệ ệ u u Khái niệm về tín hiệu v một khái niệm rộng. Nó đợc định nghĩa ở Websur (1998) nh l một sự đếm đợc của lợng vật lý hay xung (nh một hiệu điện thế, dòng, hoặc từ thông ) bởi một bản tin hoặc thông tin m có thể truyền đi đợc. Ví dụ nh thông tin mong muốn có thể l nhiệt độ v tín hiệu điện thế tỉ lệ với nhiệt độ ny. Nhiều sách cho rằng tín hiệu thay đổi nh một hm của thời gian. Một số tín hiệu l liên tục ; nhiệt độ không khí, sóng biển tại một điểm Một số tín hiệu khác l rời rạc, ví dụ nh các th truyền đi (gửi đi) theo mã Morse. Các tín hiệu có thể rời rạc vì chúng nhận đợc bởi sự lấy mẫu thông tin không liên tục, ví dụ nh nhiệt độ của khí quyển v áp suất đợc truyền đi theo một khoảng thời gian nhất định bởi vô tuyến. Máy tính có thể xử lý tín hiệu rời rạc thôi. Để xử lý bằng máy tính, hầu hết các tín hiệu có thể thể hiện theo một chuỗi các số 1,0 . Tín hiệu đợc sinh ra bởi cảm biến (sensor), ví dụ nh nhiệt điện trở, hay tốc độ kế sinh ra. Chuỗi số 1 chiều thực khi đợc lấy mẫu tại các khoảng không đổi. Việc số hoá các hình ảnh sinh ra chuỗi số 2 chiều. Nh các chuỗi số v các ma trận đợc thể hiện trên các đờng khác nhau. Chúng có thể đợc lọc khỏi nhiễu, có thể đợc modul hoá v có thể đợc xử lý để lm rõ hình ảnh, hoặc nén trong một khoảng động. Khi m các thao tác có thể đợc thực hiện ở thời gian hoặc tần số chủ đạo, khi chọn tần số chủ đạo v thuật toán đúng thì thông thờng có kết quả l tăng hiệu ứng. Matlab dùng để giải thuật toán nhanh v chọn tần số chủ đạo. Phần ny ta xử dụng Toolbox xử lý tín hiệu (Signal Processing). Nó gồm hơn 70 hm số khác nhau để phân tích số tín hiệu số v xây dựng bộ lọc với những đặc ToolBox - Digital Signal Processing Phần 2 - ứng dụng 141 tính cho trớc. ở chơng ny ta chỉ xét xét một số ví dụ sử dụng những hm chính hay dùng, còn những hm khác thì bạn đọc có thể tự tham khảo trong sách hớng dẫn sử dụng. 2 2 . . H H m m l l ọ ọ c c . . Một trong những hm số hay dùng để xử lý chuỗi l hm filter (hm lọc). Lọc số có ở mọi nơi trong quá trình xử lý tín hiệu. Trờng hợp đơn giản khi 1 tín hiệu x có thêm nhiễu (noise). Chúng ta có thể loại bỏ chúng bằng cách sử dụng lọc. Hãy xem xét trờng hợp tín hiệu hiện thị trong một thiết bị đo đợc do ngời tự đọc. Việc đọc sẽ rất khó khăn vì số l thay đổi số l thay đổi theo thời gian, khi có nhiễu của cảm biến, nhng điều ny có thể đợc cải thiện nếu chúng ta chọn hiển thị tại một khoảng nhất định, không phải giá trị thực x m l một tổng các trọng số trung bình v giá trị cuối cùng hiện thị v đầu vo mới, có nghĩa l y n = k 1 .y n-1 + k 2 .x n Trong đó y n-1 l giá trị hiện thị cuối, v x n l đầu vo mới. Ví dụ: nếu ta chọn k = 0.9 v k 2 = 0.1 ằ t = linspace (0, 10, 100) ; thời gian cơ bản ằ s = sin (2*pi/5*t) ; tín hiệu ằ [t,c] = size(t) ; n = 0.1 * rand(r, c) ; nhiễu ằ x = s + n ; đầu vo có nhiễu ằ y(1) = x(1) ; điều kiện đầu ằ for i = 2 : 100 ằ y(i) = 0.9* Y(i-1) + 0.1 * x(i) y n = 0.9.y n-1 + 0.1.x n Mối quan hệ ny đợc xác định với y n m n > 1. Ta không quan tâm đến việc l giá trị y 1 đợc xác định nh thế no ( ta sẽ xem xét điều kiện sau) . Chọn y 1 = x 7 sử dụng Matlab Bạn có thể so sánh x v y bằng lệnh chấm điểm plot ằ plot(t, x, t, y) Kết quả nh hình vẽ (I.1) ToolBox - Digital Signal Processing Phần 2 - ứng dụng 142 Hình 1.1 Lm thẳng tín hiệu nhiễu- Ví dụ 1 Ta có thể tính theo 2 giá trị bớc trớc y n = 0.9.y n-1 + 0.05.x n + 0.05.x n-1 Trong trờng hợp ny 2 giá trị tự do y 1 , v y 2 . khi đó thì y đợc sinh ra nh sau: ằ t = linspace (0, 10, 100) ; thời gian cơ bản ằ s = sin (2*pi/5*t) ; tín hiệu ằ [t,c] = size(t) ; n = 0.1 * rand(r, c) ; nhiễu ằ x = s + n ; đầu vo có nhiễu ằ y(1) = x(1) ; điều kiện đầu ằ for i = 3 : 100 ằ y(i) = 0.9* Y(i-1) + 0.05 * x(i) + 0.05*x(i-1): ằ End Cũng nh trờng hợp trớc chúng ta cũng lm ằ plot(t, x, t, y) * Lọc số có thể giới thiệu đơn giản bắt đầu từ lọc tơng tự đơn giản lọc RC - thông thấp theo ví dụ . x(1,1)=-3;x(1 ,2) =-3;x(1,3)=-3;x(1,4)=-3; x (2, 1)=-1;x (2, 2)=-1;x (2, 3)=-1;x (2, 4)=-1; x(3,1)=1;x(3 ,2) =1;x(3,3)=1;x(3,4)=1; x(4,1)=3;x(4 ,2) =3;x(4,3)=3;x(4,4)=3; y(1,1)=0;y(1 ,2) =3;y(1,3)=3;y(1,4)=0; y (2, 1)=3;y (2, 2)=5;y (2, 3)=5;y (2, 4)=3;. z(1,1)=5;z(1 ,2) =3;z(1,3)=-3;z(1,4)=-5; z (2, 1)=5;z (2, 2)=3;z (2, 3)=-3;z (2, 4)=-5; z(3,1)=5;z(3 ,2) =3;z(3,3)=-3;z(3,4)=-5; z(4,1)=5;z(4 ,2) =3;z(4,3)=-3;z(4,4)=-5; v=input('vao khoang can ve cua u(1 ,2 n)='); g=input('vao. y (2, 1)=3;y (2, 2)=5;y (2, 3)=5;y (2, 4)=3; PhÇn bμi tËp vÝ dô vμ lêi gi¶i PhÇn 1 - C¬ së 136 y(3,1)=3;y(3 ,2) =5;y(3,3)=5;y(3,4)=3; y(4,1)=5;y(4 ,2) =5;y(4,3)=5;y(4,4)=5; z(1,1)=5;z(1 ,2) =3;z(1,3)=-3;z(1,4)=-5;

Ngày đăng: 10/07/2014, 20:21