Các giá trị nμy có thể đ−ợc nhận bởi thử nghiệm vμ sai số, nh− đ−ợc hiện thị ở đồ thị , khi đánh giá trục tốt nhất vμ dùng câu lệnh axis .Hoặc ta có thể sử dụng một hμm khác lμ abs để tì
Trang 1ằ V= 0.01; %V
Ta tính đ−ợc tổng trở của mạch
ằ Z= R+ Zc
Z=
Vμ dòng điện
ằ I = V/Z
I =
1.2606e-04+ 2.5097e-04i
Điện áp rơi trên điện trở
ằ Vr = R*I
Vr=
0.0018 + 0.0039i
Vμ qua tụ điện chúng ta có thể đồ thị biên pha Sử dụng MATLAB subplot
ằ subplot (1, 2, 1)
Các thông số 1, 2, 1 có ý nghĩa lμ 1 vμ 2 ma trận của hình vẽ sinh ra vμ chấm điểm theo một điểm đầu Trong MATLAb 3.5 các thông số nμy sẽ đ−ợc viết lμ (121)
Gồm các giá trị V, Vr, Vc nh− pha cuối cùng Để định nghĩa pha chúng ta cần đ−a
điểm gốc của 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 chính xác của trục thật cần phải nh− đối với trục
ảo Có nghĩa lμ khung chấm điểm lμ hình vuông
ằ axis('square')
Khung của các trục sẽ đ−ợc sinh ra nh− sau
ằ axis ([0 0.012 -0.006 0.006])
Trang 2Phần mở rộng của cả hai trục lμ 0.012 Các giá trị nμy có thể đ−ợc nhận bởi thử nghiệm vμ sai số, nh− đ−ợc hiện thị ở đồ thị , khi đánh giá trục tốt nhất vμ dùng câu
lệnh axis Hoặc ta có thể sử dụng một hμm khác lμ abs để tìm giá trị biên pha lớn nhất
vμ để điều chỉnh lại trục
Chúng ta cũng có thể dùng hμm 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ị sẽ đ−ợc viết nh− sau:
ằ title('(a)')
ằ xlabel('Real'), ylabel('Imaginary')
Bạn cũng có thể xác định các hình bằng cách tự đánh dấu các điểm tức lμ dùng
hμm 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 =
Trang 3Hình 1.3 Diện áp trên 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
ằ omega= 2*pi*f; %tần số góc, rad/s
ằ t=0: T/50 : 2*T; % chuỗi các 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 của ma trận đồ thị
ằ subplot(1, 2, 2)
vμ hcấm điểm theo những lệnh sau:
ằ plot (t, 1000*v, t, 1000*vr, t, 1000*vc)
Trang 4ằ 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ột mạch lọc thông thấp Giả sử ta cho vμo đầu vμo
10mV, bây giờ ta xem đầu ra của tụ điện Ký hiệu điện áp vμo lμ Vin vμ điện áp ra Vout
j C
in
in
in
−
−
1 1
ω
ω
/
/
Hμm đáp ứng tần (dùng hμm biến đổi) của bộ lọc xác định bởi tỉ số
H j Vout
( ω )
ω
+
1 1 Giá trị ωc = 1/RC gọi lμ tần số cắt ở dạng không thứ nguyên
H j
( )
/
ω
ω ω
= +
1 1
hoặc
ω/ωc = 2πf/2πfc =f/fc
Chúng ta nhận đ−ợc dạng không thứ nguyên của hμm biến đổi
H f
jf fc
( )
/
= +
1 1
Chúng ta sẽ vẽ biên vμ pha của hμm biến đổi theo hai đồ thị theo tỉ số tần vμ theo dãy giá trị biến đổi
Trang 5H×nh 1.4 §å thÞ biªn vμ tÇn cña m¹ch th«ng thÊp RC
» fratio= 0 : 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
Trang 6Vẽ đồ thị theo logarithm
Bây giờ ta xem xét bμi toán theo quan điểm xử lý tín hiệu
L
R
di
dt i
v 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
Ta giả thiết rằng y được lấy mẫu trong khoảng TS nhỏ so với thời gian τ Do đó ta
có thể xấp xỉ
dy dt
T
S
= ư ư1
Trong đó yn - lấy được từ lần đo thứ n của giá trị y, vμ yn-1 của 1 bước trước
Đẳng thức (1.1) được viết lại như sau
τ y y
S
n n
ư
+ =
ư1
(1.2)
a
n = 1 n ư nư
1
2 1 1
(1.3)
Biểu thức nμy ta có được từ bộ lọc đầu tiên
Viết cho trường hợp tổng quát
(1.4)
hoặc
b
b
a
a
n
b
1 1
2 2
1
1
2 1
1
1
+ ư + + ư + ư ư ư ư ư +
Trang 7A = [a1 a2 , , ana]
B = [b1, b2, , bnb]
Điều nμy có thể thấy rõ qua đồ thị 1.6 trong đó ai vμ bi các hệ số được lμm bình thường hoá bằng cách chia cho a1 hệ số của yn Trong hình 2 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, do đó x(n) = f(n.TS) vμ zx(k) xác định thμnh 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 về biến đổi z trong các giáo trình về xử ký tín hiệu)
Hình 1.6 Chuyển đổi trực tiếp ở dạng II
Việc thể hiện lại chỉ ra trên 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 bộ nhớ nhất) Trên thực tế tại mỗi bước nμy chúng ta cần cất mỗi giá trị của trạng thái z1, z2, , zn được thể hiện trên đồhọa bằng 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
Z
Z
-Z
Z
-Z
Z
b3
-b3
Trang 8(a) Vector trạng thái đầu, thường được đánh dấu bằng Zi vμ được đặt vμo bộ trễ
Zj không xuất hiện, tất cả các giá trị Zj sẽ đặt = 0
(b) Giá trị của A vμ B được chuẩn hoá bằng chia cho a1
(2) Vòng lặp chính Tại các bước nμy, chức năng lọc thể hiện theo những thao tác sau: (a) Sinh ra yn từ quan hệ yn = b1xn + Z1
(b) Đặt vμo Zj với j từ 1 đến N-1 trong
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 cho đến khi chuỗi x hội tụ
(3) Bước cuối cùng Giá trị Zj được sao chép đến vector ra Zf
Đẳng thức (1.5) có thể được thực hiện bởi MATLAB bằng chức năng lọc ở
đây có 4 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μ một chuỗi các 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ư ở trên Hμm lọc có thể trả về giá trị cuối cùng của Z như dãy Zf, nếu nó gọi 2 biến số bên vế trái:
ằ[y, Zf] = filter (B, A, x)
Ví dụ: cho
ằ x = [1, 2, 1, 2, 1, 2 , 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
Trang 91
2
3
4
5
6
7
8
9
10
1
2
1
2
1
2
1
2
1
2
.5 1.125 0.9063 1.508 1.104 1.653 1.189 1.71 1.225 1.734
0.125 0.4063 0.5078 0.6035 0.6528 0.6891 0.7105 0.7249 0.7338 0.7397
0.1250 0.2813 0.2266 0.3770 0.2759 0.4132 0.2973 0.4276 0.3062 0.4335 Trong bảng nμy sinh ra bởi MATLAB M-file, số được lμm tròn 4 số sau dấu phẩy
ằ y(:)
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ố nμy theo mô tả ở hình 1.6 (nói ở trên) Cuối cùng,
sau khi xác định chuỗi số x, A vμ B liên hệ lại hμm lọc như được chỉ ra
ằ [Y,Zf] = filter (B, A, x, Zi) ;
Chúng ta nhận ra chuỗi y được tính toán bởi tệp M, vμ giá trị lớn nhất của
Z1 vμ Z2 trên bảng
ằ Zf
Zf =
0.7397
0.4335
Trang 10ằ Zf
Zf =
0.7397
0.4335
Nếu bạn biến các điều kiện đầu để cất vμo khâu trễ, bạn có thể gọi các bộ lọc bởi
Thông thường dùng nếu ta có một tín hiệu x dμi không thể cất gửi vμo bộ nhớ của máy tính của bạn Bạn có thể trạt x ra thμnh điểm gọi lμ x1, x2, , xn như trong MATLAB
Vμ bộ lọc phân biệt được chúng chính xác Giá trị cuối cùng , Zf của các khâu trễ tại mỗi bước được sử dụng như lμ các giá trị đầu, Zi, cho bước tiếp theo Để hiểu rõ ta
ằx = [x1 ; x2 ; ; xn]
dựng 1 chuỗi với 100 số ngẫu nhiên
ằ x = rand(100,1) ;
Chúng ta trặt chúng thμnh 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 bộ lọc liên hệ với các thμnh phần của các chuỗi con Khi xây dựng chúng sử dụng các giá trị của trạng thái cuối cùng, Zf, sinh ra bởi lần gọi đầu tiên như vậy một trạng thái đầu Zi, cho cho lần gọi thứ 2, cứ như vậy:
Để kiểm tra bạn có thể sử dụng khi chuỗi số x
ằ y = filter(b, a, x) ;
Vμ bạn thay đổi kết quả được sinh ra bởi “partial”
ằ max(max(abs(y-[y1 ; y2 ; y3 ; y4]))) ;
Trang 11Như chúng ta nhiều khi thấy vector Zi lμ phần chọn vμ bạn có thể lμm ra Trong trường hợp nμy hμm lọc sử dụng vector không chuẩn với chiều dμi N toμn lμ 0 (vector 0) Nếu Z xuất hiện nó cần phải dμi N, bằng với bộ lọc đã được định trước , vμ 1 + N như ở phần trê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ị của vector Zi, trong trạng thái để chuỗi A & B Ta có N, trạng thái đầu cho đầu vμo ở trong trong dạng của vectơ y, có chiều dμi N vμ cần giá trị đầu của y đồng thời với yi Nếu chúng ta viết N đẳng thức đầu của 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)
yk = Zik b xi k i a y
i
k
i k i i
k
+ ư
ư
1
(1.9)
yN = ZiN b xi N i a y
i
N
i N i i
N
+ ư
ư
1
(1.10)
Nếu chúng ta muốn N giá trị đầu của bộ lọc phù hợp với yi , chúng ta có thể trừ yi với y trong N đẳng thức, vμ tìm ra Zi Hμm lọc được viết để giải quyết vấn đề
nμy Hãy lμm những bước chuẩn bị sau để gọi tệp filteric.m
** Chú ý: Trạng thí dụ nμy dùng tín hiệu giả
Như trong ví dụ : Cho X hiện thị 1000 điểm đầu của tín hiệu bị lấy mẫu tại
100 HZ Chúng ta muốn cho qua tín hiệu từ 30 Hz (lọc thấp) của điểm 5, vμ nhận được tín hiệu y như y(i) = x(i) vμ i =1 đến 5
Đầ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ố của bộ 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