Muốn cho chương trình thi hành được thì phải có phương pháp xác định được các vùng trống của bộ nhớ để làm kho chứa dữ liệu. Phương pháp được biết nhiều nhất là thông qua tên của các biến.
Phần bi tập ví dụ v lời giải 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 - Cơ sở 133 Phần bi tập ví dơ vμ lêi gi¶i 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 - Cơ sở 134 Phần bi tập ví dụ v lời gi¶i 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 in u(i)=n-k+1; else u(i)=i-k; end end for i=1:(m+h) if im w(i)=m-h+1; else w(i)=i-h; end end %x=input('Nhap vao n.m toa Px='); %y=input('Nhap vao n.m toa Py='); %z=input('Nhap vao n.m toa 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 - Cơ sở 135 Phần bi tập ví dụ vμ lêi gi¶i 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 - Cơ sở 136 Phần bi tập ví dụ v lêi gi¶i 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 - Cơ sở 137 Phần bi tập ví dụ v lời gi¶i 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 - Cơ sở 138 Phần bi tập ví dụ v lời giải 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 6]) end end view([3 3]) end PhÇn - Cơ sở 139 ToolBox - Digital Signal Processing Phần øng dơng vỊ xư lý tÝn hiƯu Sè TÝn hiƯu vμ xư lý tÝn hiƯu Kh¸i niƯm vỊ tÝn hiệu v khái niệm rộng Nó đợc định nghĩa Websur (1998) nh l đếm đợc lợng vật lý hay xung (nh hiệu điện thế, dòng, từ thông ) tin thông tin m truyền đợc Ví dụ nh thông tin mong muốn l nhiệt độ vμ tÝn hiƯu ®iƯn thÕ tØ lƯ víi nhiƯt ®é ny Nhiều sách cho tín hiệu thay đổi nh mét hμm 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 điểm Một số tín hiệu khác l rời rạc, ví dụ nh th truyền (gửi đi) theo mà Morse Các tín hiệu rời rạc chúng nhận đợc lấy mẫu thông tin không liên tục, ví dụ nh nhiệt độ khí v áp suất đợc truyền theo khoảng thời gian định vô tuyến Máy tính xử lý tín hiệu rời rạc Để xử lý máy tính, hầu hết tín hiệu thể theo chuỗi số 1,0 Tín hiệu đợc sinh cảm biến (sensor), ví dơ nh− nhiƯt ®iƯn trë, hay tèc ®é kÕ sinh Chuỗi số chiều thực đợc lấy mẫu khoảng không đổi Việc số hoá hình ảnh sinh chuỗi số chiều Nh chuỗi số v ma trận đợc thể đờng khác Chúng đợc lọc khỏi nhiễu, đợc modul hoá v đợc xử lý để lm rõ hình ảnh, nén khoảng động Khi m thao tác đợc thực thời gian tần số chủ đạo, chọn tần số chủ đạo v thuật toán thông thờng có kết 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 hμm số khác để phân tích số tín hiệu số v xây dựng lọc với đặc Phần - øng dông 140 ToolBox - Digital Signal Processing tÝnh cho tr−íc ë ch−¬ng nμy ta chØ xÐt xÐt mét sè vÝ dơ sư dơng nh÷ng hμm chÝnh hay dïng, hm khác bạn đọc tự tham khảo sách hớng dẫn sử dụng Hm lọc Một hm số hay dùng để xử lý chuỗi l hm filter (hm lọc) Lọc số có nơi trình xử lý tín hiệu Trờng hợp đơn giản tín hiệu x có thêm nhiễu (noise) Chúng ta loại bỏ chúng cách sử dụng lọc HÃy xem xét trờng hợp tín hiệu thị thiết bị đo đợc ngời tự đọc Việc đọc khó khăn số l thay đổi số l thay đổi theo thời gian, có nhiễu cảm biến, nhng điều ny đợc cải thiện chọn hiển thị khoảng định, giá trị thực x m l tổng trọng số trung bình v giá trị cuối thị v ®Çu vμo míi, cã nghÜa lμ yn = k1.yn-1 + k2.xn Trong yn-1 l giá trị thị cuối, v xn l đầu vo Ví dụ: ta chän k = 0.9 vμ k2 = 0.1 » t = linspace (0, 10, 100) ; thời gian » 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 = : 100 » y(i) = 0.9* Y(i-1) + 0.1 * x(i) yn = 0.9.yn-1 + 0.1.xn Mèi quan hÖ nμy đợc xác định với yn m n > Ta không quan tâm đến việc l giá trị y1 đợc xác định nh no ( ta xem xét ®iỊu kiƯn sau) Chän y1 = x7 → sư dụng Matlab Bạn so sánh x v y b»ng lƯnh chÊm ®iĨm plot » plot(t, x, t, y) Kết nh hình vẽ (I.1) Phần - ứng dơng 141 ToolBox - Digital Signal Processing H×nh 1.1 Lμm th¼ng tÝn hiƯu nhiƠu- VÝ dơ Ta cã thĨ tính theo giá trị bớc trớc yn = 0.9.yn-1 + 0.05.xn + 0.05.xn-1 Trong trờng hợp ny giá trị tự y1 , v y2 y đợc sinh nh sau: ằ t = linspace (0, 10, 100) ; thời gian ằ 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 = : 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 lμm » plot(t, x, t, y) * Läc sè giới thiệu đơn giản lọc tơng tự đơn giản lọc RC thông thấp theo ví dơ PhÇn - øng dơng 142 ToolBox - Digital Signal Processing Hình 1.2 Lm thẳng tín hiệu nhiễu- Ví dụ Mạch xoay chiều nh hình vẽ Với thông sè nh− sau: V, 10mV, 50 MHz, R, 15Ω C, 100pF pha Điện trở tơng đơng tụ điện ®ỵc tÝnh nh− sau Zc = 1 =−j jωC C Để đa thông số mạch vo ta lμm nh− sau PhÇn - øng dơng 143 ... thực thời gian tần số chủ đạo, chọn tần số chủ đạo v thuật toán thông thờng có kết 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... đến việc l giá trị y1 đợc xác định nh no ( ta sÏ xem xÐt ®iỊu kiƯn sau) Chän y1 = x7 → sư dơng Matlab B¹n cã thĨ so sánh x v y lệnh chấm điểm plot ằ plot(t, x, t, y) Kết nh hình vẽ (I.1) PhÇn