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

Giao trinh matlab v5.2 P15

11 5 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

Nội dung

Tùy theo ngôn ngữ, các vùng trống gián tiếp có thể bao gồm các tham chiếu, mà thật ra, chúng là các con trỏ (pointer) chỉ đến những vùng chứa khác của bộ nhớ, được cài đặt trong các biến hay nhóm các biến.

ToolBox - Digital Signal Processing » V= 0.01; %V » R= 15; % Ohm » omega= 2*pi*50*10^6; %rad/s » C= 100*10^(-12); %F ằ Zc= -j/(omega*C); %Ohm Ta tính đợc tổng trë cđa m¹ch » Z= R+ Zc Z= 16.0000 -31.8310i V dòng điện ằ I = V/Z I= 1.2606e-04+ 2.5097e-04i Điện áp rơi điện trở ằ Vr = R*I Vr= 0.0018 + 0.0039i Vμ qua tơ ®iƯn chóng ta đồ thị biên pha Sử dụng MATLAB subplot ằ subplot (1, 2, 1) Các thông số 1, 2, cã ý nghÜa lμ vμ ma trận hình vẽ sinh v chấm điểm theo điểm đầu Trong MATLAb 3.5 thông số ny đợc viết l (121) Gồm giá trị V, Vr, Vc nh pha cuối Để định nghĩa pha cần đa điểm gốc chúng ằ VV= [0 V]; VVc = [0 Vc]; VVr = [0 Vr] TiÕp ®Õn ta chÊm ®iĨm ®iƯn thÕ pha » plot (real(VV) , imag(VV) Để quan sát đợc thang góc pha xác trục thật cần phải nh trục ảo Có nghĩa l khung chấm điểm l hình vuông ằ axis('square') Khung trục đợc sinh nh− sau » axis ([0 0.012 -0.006 0.006]) PhÇn - øng dơng 144 ToolBox - Digital Signal Processing Phần mở rộng hai trục l 0.012 Các giá trị ny đợc nhận thử nghiệm v sai số, nh đợc thị đồ thị , đánh giá trục tốt v dùng câu lệnh axis Hoặc ta sử dụng hm khác l abs để tìm giá trị biên pha lớn v để điều chỉnh lại trục Chúng ta dùng hm hold để giữ cho đồ thị chồng lên hai hình khác,Vr v Vc ằ hold on » plot(real(VVr), imag(VVr)) » plot(real(VVc), imag(VVc)) Toμn bé ®å thị đợc viết nh sau: ằ title('(a)') ằ xlabel('Real'), ylabel('Imaginary') Bạn xác định hình cách tự đánh dấu điểm tức l dùng hm gtext » text(real(V), imag(V), 'V') » text(real(Vr), imag(Vr), 'Vr') » text(real(Vc), imag(Vc), 'Vc') Sau ®ã chÊm ®iĨm toμn bé » hold off Ta cịng cã thĨ tÝnh tỉng cđa ®iƯn áp nh sau(xem thêm hìnhvẽ): ằ Vr + Vc ans = 0.0100 - 0.0000i » 180*(angle(Vr) - -angle(Vc))/pi ans = 90 PhÇn - øng dơng 145 ToolBox - Digital Signal Processing Hình 1.3 Diện áp mạch nói tiếp RC Để có đợc đồ thị v tính toán điện ¸p ta lμm theo nh÷ng b−íc sau » f= 50*10^6; % tÇn sè, Hz » T = 1/f; % chu kú, s » omega= 2*pi*f; %tÇn sè gãc, rad/s » t=0: T/50 : 2*T; % chuỗi giá trị ằ v = V*sin(omega*t); » vr = abs(Vr)*sin(omega*t + angle(Vr)); » vc = abs(Vc)*sin(omega*t + angle(Vc)); Để có đợc điểm nh phần tử thứ hai ma trận đồ thị ằ subplot(1, 2, 2) v hcấm điểm theo lệnh sau: » plot (t, 1000*v, t, 1000*vr, t, 1000*vc) PhÇn - øng dông 146 ToolBox - Digital Signal Processing » grid, title('(b)') » xtabel('t,s'), ylabel('mV') »text(t(5), 1000*v(5), 'V') »text(t(20), 1000*v(20), 'Vr') ằtext(t(50), 1000*v(5), 'Vc') Nh ta đà biết mạch RC l mạch lọc thông thấp Giả sử ta cho vo đầu vo 10mV, ta xem đầu tụ điện Ký hiệu điện áp vo l Vin v điện áp Vout Z = R + Rc = R + jωC Vin = Vin Z R − j / ωC 1 Vout = ZcI = Vin jωC R − j / ωC I= Hm đáp ứng tần (dùng hm biến đổi) lọc xác định tỉ số H ( j ) = Vout = Vin + jωRC Gi¸ trị c = 1/RC gọi l tần số cắt dạng không thứ nguyên H ( j ) = 1 + jω / ω c hc ω/ωc = 2πf/2πfc =f/fc Chúng ta nhận đợc dạng không thứ nguyên hμm biÕn ®ỉi H( f ) = 1 + jf / f c Chóng ta sÏ vÏ biªn vμ pha hm biến đổi theo hai đồ thị theo tỉ số tần v theo dÃy giá trị biến đổi PhÇn - øng dơng 147 ToolBox - Digital Signal Processing Hình 1.4 Đồ thị biên v tần mạch th«ng thÊp RC » fratio= : 0.01: 5; » H = ones(size(fratio))/(1+j*fratio); Hình 1.5 Mạch thông thấp dự tính tr−íc PhÇn - øng dơng 148 ToolBox - Digital Signal Processing Vẽ đồ thị theo logarithm Bây ta xem xét bi toán theo quan điểm xử lý tín hiƯu L di v +i = R dt R Víi τ = L/R - h»ng sè thêi gian cđa m¹ch - y = i v x = v/R Đẳng thức trë thμnh τ dy + y=x dt (1.1) Ta gi¶ thiết y đợc lấy mẫu khoảng TS nhỏ so víi thêi gian τ Do ®ã ta cã thĨ xÊp xØ dy y n − y n−1 = dt TS Trong yn - lấy đợc từ lần đo thứ n giá trị y, v yn-1 bớc trớc Đẳng thức (1.1) đợc viết lại nh sau τ y n − y n −1 + y n = xn TS yn = Ta l¹i cã (1.2) b1 a x n − y n −1 a1 a1 (1.3) Biểu thức ny ta có đợc từ lọc Viết cho trờng hợp tổng quát a1 y n + a y n −1 + + a na y n − na +1 = b1 x n + b2 x n −1 + + bnb x n − nb (1.4) hc yn = bn a a b1 b x n + x n−1 + + b x n− nb+1 − y n−1 − − na y n− na +1 a1 a2 a1 a1 a1 (1.5) Sử dụng MATLAB l lọc N tăng, N = max(na ,nb) - Ta có chuỗi Phần - ứng dụng 149 ToolBox - Digital Signal Processing A = [a1 a2 , , ana] B = [b1, b2, , bnb] §iỊu nμy cã thĨ thấy rõ qua đồ thị 1.6 v bi hệ số đợc lm bình thờng hoá c¸ch chia cho a1 hƯ sè cđa yn Trong hình l cho ký hiệu thao tác dịch thời gian unitary time shift operator) Cho x - rêi r¹c cđa tÝn hiƯu f(t) bÞ lÊy mÉu theo chu kú TS, x(n) = f(n.TS) v zx(k) xác định thnh phần thứ k zx(k) = x(k+1) Tơng tự nh vËy thμnh phÇn thø cđa z-1 n lμ x(k-1) z - ký hiệu thích hợp cho việc thao tác số nhanh (xin đọc thêm biến đổi z giáo trình xử ký tín hiệu) X b1 Y Z Z- b2 Z Zb3 - Z Zb3 - H×nh 1.6 Chuyển đổi trực tiếp dạng II Việc thể lại hình 1.6 gọi l dạng chuyển đổi II v l mô hình tối thiểu việc cất giữ (tức l tiết kiệm nhớ nhất) Trên thực tế bớc ny cần cất giá trị trạng thái z1, z2, , zn đợc thể đồ họa khung đúp đờng trung tâm (xem hình vẽ) Bộ lọc đợc thực hiƯn nh− sau: (1) Thùc hiƯn PhÇn - øng dơng 150 ToolBox - Digital Signal Processing (a) Vector tr¹ng thái đầu, thờng đợc đánh dấu Zi v đợc đặt vo trễ Zj không xuất hiện, tất giá trị Zj đặt = (b) Giá trị A v B đợc chuẩn hoá chia cho a1 (2) Vòng lặp Tại bớc ny, chức lọc thể theo thao tác sau: (a) Sinh yn tõ quan hÖ yn = b1xn + Z1 (b) Đặt vo Zj với j từ ®Õn N-1 Zj = bjxn + Zj+1 - ajyn vμ ®èi víi j = N ta tÝnh nh− sau: ZN = bNxn - aN.yn Vòng lặp đợc tiếp tục chuỗi x hội tụ (3) Bớc cuối Giá trị Zj đợc chép đến vector Zf Đẳng thức (1.5) đợc thực MATLAB chức lọc có cách gäi hμm läc y = filter (B, A, x) y = filter (B, A, x, Zi) [y,Zf] = filter (B, A, x) [y,Zf] = filter (B, A, x, Zi) Trong Zi v Zf l chuỗi thông số tối u, liên hệ với trạng thái đầu v trạng thái cuối, đà đợc mô tả nh Hm lọc trả giá trị cuối Z nh− d·y Zf, nÕu nã gäi biÕn sè bên vế trái: ằ[y, Zf] = filter (B, A, x) VÝ dô: cho » x = [1, 2, 1, 2, 1, , 1, 2, 1, 2]; » B = [0.5]; » A = [1, -0.25, -0.25]; Gäi hμm läc nh sau: Các tần số đợc tính toán nh sau B−íc Vμo PhÇn - øng dơng Ra Z1 151 Z2 ToolBox - Digital Signal Processing 1 0.125 0.1250 2 1.125 0.4063 0.2813 0.9063 0.5078 0.2266 1.508 0.6035 0.3770 1.104 0.6528 0.2759 1.653 0.6891 0.4132 1.189 0.7105 0.2973 1.71 0.7249 0.4276 1.225 0.7338 0.3062 10 1.734 0.7397 0.4335 Trong b¶ng nμy sinh MATLAB M-file, số đợc lm tròn số sau dÊu phÈy » y(:) ans = 0.5000 1.1250 0.9063 1.5078 1.1035 1.6258 1.1891 1.7338 Ng−êi ®äc cã thĨ tÝnh lại số ny theo mô tả hình 1.6 (nói trên) Cuối cùng, sau xác định chuỗi số x, A v B liên hệ lại hm lọc nh ®−ỵc chØ » [Y,Zf] = filter (B, A, x, Zi) ; Chúng ta nhận chuỗi y đợc tính toán tệp M, v giá trị lớn Z1 v Z2 bảng ằ Zf Zf = 0.7397 0.4335 PhÇn - øng dơng 152 ToolBox - Digital Signal Processing » Zf Zf = 0.7397 0.4335 Gäi hm lọc với điều kiện đầu Nếu bạn biến điều kiện đầu để cất vo khâu trễ, bạn gọi lọc Thông thờng dùng ta cã mét tÝn hiƯu x dμi kh«ng thĨ cÊt gửi vo nhớ máy tính bạn Bạn trạt x thnh điểm gọi l x1, x2, , xn nh− MATLAB Vμ bé läc phân biệt đợc chúng xác Giá trị cuối , Zf khâu trễ bớc đợc sử dụng nh l giá trị đầu, Zi, cho b−íc tiÕp theo §Ĩ hiĨu râ ta »x = [x1 ; x2 ; ; xn] dựng chuỗi với 100 sè ngÉu nhiªn » x = rand(100,1) ; Chóng ta trặt chúng thnh nhiễu chuỗi nhỏ ằ x1 = x(1 : 25) ; » x2 = x(26 : 50) ; » x3 = x(51 : 75) ; » x4 = x(76 : 100) B©y giê chóng ta x©y dùng lọc liên hệ với thnh phần chuỗi Khi xây dựng chúng sử dụng giá trị trạng thái cuối cùng, Zf, sinh lần gọi nh trạng thái đầu Zi, cho cho lÇn gäi thø 2, cø nh− vËy: Để kiểm tra bạn sử dụng chuỗi sè x » y = filter(b, a, x) ; Vμ bạn thay đổi kết đợc sinh partial » max(max(abs(y-[y1 ; y2 ; y3 ; y4]))) ; ans = PhÇn - øng dơng 153 ToolBox - Digital Signal Processing Nh− chóng ta nhiỊu thÊy vector Zi l phần chọn v bạn lm Trong trờng hợp ny hm lọc sử dụng vector không chn víi chiỊu dμi N toμn lμ (vector 0) Nếu Z xuất cần phải di N, với lọc đà đợc định trớc , v + N nh phần MATLAB Để xác định bé läc cđa N, chóng ta cÇn cung cÊp N trạng thái nh l giá trị vector Zi, trạng thái để chuỗi A & B Ta có N, trạng thái đầu cho đầu vo trong dạng vectơ y, có chiều di N v cần giá trị đầu y đồng thời với yi Nếu viết N đẳng thức đầu thuật toán lọc, bạn nhận đợc mối quan hệ sau: y1 = Zi1 + b1 + b1x1 (1.6) y2 = Zi2 + [b1x2 + b2x1] - [a2 - y1] (1.7) y3 = Zi3 + [b1x3 + b2x2 + b3x1] - [a2 - y2 + a1y3] (1.8) k yk = Zik k −1 ∑ bi x k +1−i − ∑ +1 y k −i i =1 (1.9) i =1 yN = ZiN N N −1 i =1 i =1 ∑ bi x N +1−i − ∑ +1 y N −i (1.10) NÕu chóng ta muèn N giá trị đầu lọc phù hợp với yi , chóng ta cã thĨ trõ yi víi y N đẳng thức, v tìm Zi Hm lọc đợc viết để giải vấn đề ny HÃy lm bớc chuẩn bị sau để gọi tệp filteric.m ** Chú ý: Trạng thí dụ ny dùng tín hiệu giả Nh− vÝ dơ : Cho X hiƯn thÞ 1000 điểm đầu tín hiệu bị lấy mẫu 100 HZ Chóng ta mn cho qua tÝn hiƯu tõ 30 Hz (lọc thấp) điểm 5, v nhận đợc tÝn hiÖu y nh− y(i) = x(i) vμ i =1 đến Đầu tiên ta xây dựng tín hiệu với » x = rand(1000 , 1) ; TiÕp ®Õn chóng ta xác định thông số lọc theo thí dơ nh− ë phÇn tỉng quan cđa toolbox xư lý sè tÝn hiÖu » yi = x(1 : 5) ; Các trạng thái đầu đợc xác định nh sau Phần - øng dông 154 ... bn a a b1 b x n + x n−1 + + b x n− nb+1 − y n−1 − − na y n− na +1 a1 a2 a1 a1 a1 (1.5) Sư dơng MATLAB ë l lọc N tăng, N = max(na ,nb) - Ta có chuỗi Phần - ứng dông 149 ToolBox - Digital Signal... tiếp tục chuỗi x hội tụ (3) Bớc cuối Giá trị Zj đợc chép đến vector Zf Đẳng thức (1.5) đợc thực MATLAB chức lọc có cách gọi hm lọc y = filter (B, A, x) y = filter (B, A, x, Zi) [y,Zf] = filter... 0.7105 0.2973 1.71 0.7249 0.4276 1.225 0.7338 0.3062 10 1.734 0.7397 0.4335 Trong bảng ny sinh MATLAB M-file, số đợc lμm trßn sè sau dÊu phÈy » y(:) ans = 0.5000 1.1250 0.9063 1.5078 1.1035 1.6258

Ngày đăng: 11/05/2021, 04:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN