Bài tập lớn tín hiệu và lọc số

28 499 0
Bài tập lớn tín hiệu và lọc số

Đ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

Project 1:basic signals EX1: Basic Signals-Impulses a)Chúng ta tạo xung tín hiệu MATLAB cách lập hàm sau đây: function [ ] = new_impulse(A,n0,n1,n2 ) nn=n1:n2; imp=zeros(n2-n1+1,1); imp(n0-n1+1)=A; stem(nn,imp) end Sau sử dụng đoạn mã sau để tạo dạng tín hiệu yêu cầu: >> new_impulse(0.9,5,1,20) % ung voi xung x[1]=0.9 δ[n-5] khoang ≤ n ≤ 20 >> new_impulse(0.8,0,-15,15) % ung voi xung x[2]=0.8 δ[n] khoang -15 ≤ n ≤ 15 >> new_impulse(1.5,333,300,350) % ung voi xung x[3]=1.5 δ[n-333] khoang 300 ≤ n ≤ 350 >> new_impulse(4.5,-7,-10,0) % ung voi xung x[4]=4.5 δ[n+7] khoang -10 ≤ n ≤ Ta có kết trang sau: xung x[1]=0.9 δ[n-5] khoảng ≤ n ≤ 20 xung x[2]=0.8 δ[n] khoảng -15 ≤ n ≤ 15 xung x[3]=1.5 δ[n-333] khoảng 300 ≤ n ≤ 350 xung x[4]=4.5 δ[n+7] khoảng -10 ≤ n ≤ Nhận xét: -Ta sử dụng vector nn imp để tạo tín hiệu rời rạc vẽ đồ thị.Trong hàm new_impulse ta có tham số vào A(độ lớn xung ), n0 (vị trí xung dãy) , n1,n2(điểm bắt đầu điểm kết thúc trình tạo xung ).Phải ý thực lập trình imp đến (n2-n1+1) nn đến (n2-n1) để thức lỗi.Trong phần ta không sử dụng hàm title để dán nhãn tích cho hình vẽ MATLAB không in kí hiệu δ mà ta sử dụng Ví dụ: >>title(‘Tin hieu x[1]=0.9 δ[n-5]’); ??? >>title(‘Tin hieu x[1]=0.9 [n-5]’); | Error: Unexpected MATLAB operator b)Tín hiệu rời rạc có dạng (1.1) theo giả thiết đề tín hiệu tuần hoàn có chu kì P=5, có chiều dài PM= 50 , n=0, kết thúc n=49 Để tạo tín hiệu ta sử dụng đoạn mã: >> x=[1;0;0;0;0]*ones(1,10); % tao vector co dai 50, co gia tri x(n)=1 o cac diem n=5*l >> x=x(:); >> nn=0:49; >> stem(nn,x); Ta có kết sau: Nhận xét: Dựa vào đồ thị ta thấy có 10 xung chuỗi tín hiệu rời rạc hữu hạn tương ứng với giá trị l =(0 9) Ta tạo tín hiệu vector nn x.Trong x xây dựng cách nối tiếp 10 lần vector có dạng [1;0;0;0;0] Đây cách làm hiệu ta hiểu rõ chất tín hiệu.Tuy nhiên có cách làm khác sử dụng vòng for sau: >>nn=0:49; >>x=zeros(50,1); %ma tran 50 hang,1 cot >>for i=0:1:9 x(5*i+1)=1;%tao cac xung >>end Stem(nn,x) Ta đạt kết tương tự c)Ta sử dụng đoạn mã ví dụ: x=[0;1;1;0;0;0]*ones(1,7); x=x( : ); size(x) ans = 42 stem(x); Ta có đồ thị: Dựa vào đồ thị thu ta xây dựng công thức dạng (1.1) sau: Nhật xét: -Đây tổng hai dãy tín hiệu thành phần s1(n) s2(n) có dạng công thức (1.1) Trong s1(n) = s2(n) = EX2: Basic Signals-Sinusoids a)Chúng ta tạo tín hiệu hình sin rời rạc MATLAB cách lập hàm sau đây: function [ ] = new_sin( A,omega0,phi,n1,n2 ) nn=n1:n2; sinx=A*sin(omega0*nn+phi); stem(nn,sinx); end sau sử dụng đoạn mã: >> new_sin(1,pi/17,0,0,25) >> title('x[1]=sin(pi/17*n)'); >> new_sin(1,pi/17,0,-15,15) >> title('x[2]=sin(pi/17*n)'); >> new_sin(1,3*pi,pi/2,-10,10) >> title('x[3]=sin(3*pi*n+pi/2)'); >>new_sin(1,pi/sqrtm(23),pi/2,0,50)%ta doi tu dang cos sang dang sin de ve duoc bang ham new_sin vua xay dung bang cach thay pha ban dau tu pi/2 >> title('x[4]=cos(pi/sqrt(23)*n)'); Nhận xét: Ta xây dựng hàm tạo chuỗi hình sin rời rạc có giá trị đầu vào biên độ A, tần số góc omega0, pha ban đầu phi giá trị bắt đầu kết thúc n1 n2 Khi gọi hàm tự động vẽ đồ thị tín hiệu.Sau ta gán cho đồ thị tên riêng dựa vào lệnh title Ta có kết quả: Dựa vào đồ thị ta thấy ta biểu diễn x[3](n) không theo công thức dạng lượng giác do: sin(3*π*n+ π/2) = sin(3* π*n)*cos(π/2)+cos(3*π*n)*sin(π/2) = cos(3* π*n) = ±1 phụ thuộc vào n Đó tổng chuỗi xung có chu kì P 2,có độ dài tương ứng 21 19 Cụ thể , công thức đưa có dạng: b)Dựa vào hàm số xây dựng bao gồm tham số: biên độ A, tần số góc omega,pha ban đầu ɸ vị trí bắt đầu kết thúc tín hiệu.Ta sửa số cấu trúc đoạn mã để hàm sau thức trả giá trị vector chứa giá trị sóng hình sin(thêm sinx,nn vào sau function để hàm trả vector sinx).Thử với tín hiệu rời rạc 2*sin(π*n/11) với n từ -20 đến 20.Ta có kết sau: function [sinx,nn ] = new_sin(A,omega0,phi,n1,n2 ) nn=n1:n2; sinx=A*sin(omega0*nn+phi); stem(nn,sinx); end >> new_sin(2,pi/11,0,-20,20) ans = Columns through 1.0813 1.5115 1.8193 1.9796 1.9796 1.8193 1.5115 1.0813 0.5635 Columns 10 through 18 -0.0000 -0.5635 -1.0813 -1.5115 -1.8193 -1.9796 -1.9796 -1.8193 -1.5115 Columns 19 through 27 -1.0813 -0.5635 0.5635 1.0813 1.5115 1.8193 1.9796 1.9796 Columns 28 through 36 1.8193 1.5115 1.0813 0.5635 0.0000 -0.5635 -1.0813 -1.5115 -1.8193 Columns 37 through 41 -1.9796 -1.9796 -1.8193 -1.5115 -1.0813 EX3: Sampled Sinusoids a)Ta có công thức tín hiệu sin s(t) tín hiệu sau lấy mẫu s[n]: S(t)=A *cos(2*π*f0*t+ɸ) S[n] = s(t)|t=n*T = A*cos (2*π*f0/fs*n+ɸ) Đây trình lấy mẫu tín hiệu , việc nhân tín hiệu cần lấy mẫu với xung dirac có chu kì Te Ta lập hàm lấy mẫu tín hiệu hình sin có tham số: biên độ A, tần số tín hiệu hình sin,tần số xung lấy mẫu tslm ,pha ban đầu ɸ thời gian bắt đầu kết thúc trình lấy mẫu function [sintg] = lay_mau_th( A,tsm,phi,t1,t2,tslm ) temptg=t1:1/tslm:t2; % chia theo cac moc don vi theo thoi gian voi buoc nhay 1/tslm sintg=A*cos(2*pi*tsm*temptg+phi) stem(temptg,sintg); end Sử dụng đoạn mã sau ta có kết giá trị tín hiệu thời điểm lấy mẫu(thời gian lấy mẫu chuyển đơn vị giây,do ta để tần số lấy mẫu đơn vị Hz): >> lay_mau_th(50,1200,pi/4,0,7*10^-3,8000) sin_lay_mau = Columns through 35.3553 -7.8217 -44.5503 -44.5503 -7.8217 35.3553 49.3844 22.6995 -22.6995 Columns 10 through 18 -49.3844 -35.3553 7.8217 44.5503 44.5503 7.8217 -35.3553 -49.3844 -22.6995 Columns 19 through 27 22.6995 49.3844 35.3553 -7.8217 -44.5503 -44.5503 -7.8217 35.3553 49.3844 Columns 28 through 36 22.6995 -22.6995 -49.3844 -35.3553 7.8217 44.5503 44.5503 7.8217 -35.3553 Columns 37 through 45 -49.3844 -22.6995 22.6995 49.3844 35.3553 -7.8217 -44.5503 -44.5503 -7.8217 Columns 46 through 54 35.3553 49.3844 22.6995 -22.6995 -49.3844 -35.3553 7.8217 44.5503 44.5503 Columns 55 through 57 7.8217 -35.3553 -49.3844 Ta lập hàm tương tự tham số ban đầu ta thay thời gian lấy mẫu t tham số n t=nT Hàm trả điểm lấy mẫu function [nn_lay_mau] = lay_mau_th( A,tsm,phi,t1,t2,tslm ) nn_lay_mau=(t1*tslm):(t2*tslm); sin_lay_mau=A*cos(2*pi*tsm*nn_lay_mau/tslm+phi); stem(nn_lay_mau,sin_lay_mau); end Sau thay đổi hàm lấy mẫu: >> lay_mau_th(50,1200,pi/4,0,7*10^-3,8000) ans = Columns through 15 10 11 12 13 14 Columns 16 through 30 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Columns 31 through 45 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Columns 46 through 57 45 46 47 48 49 50 51 52 53 54 55 56 Ta có đồ thị trang sau Ta nhận thấy chiều dài tín hiệu lấy mẫu 57, bao gồm chu kì hoàn chỉnh Ta sử dụng đoạn mã: %ve y(2:21): chieu dai la 21,bat dau tu >> genexp(0.9,2,21) %ve a*y(1:20): chieu dai la 20,bat dau tu >> nn=1:1:20; >>for i=1:1:20 hm(i)=0.9*0.9^i; >>end >>stem(nn,hm); Ta có kết đồ thị trang sau Nhận xét: Cả đồ thị có hình dáng tương tự nhau, đồ thị n=1, đồ thị lại n=2 Qua kiểm chứng nhận xét ban đầu đề Đồ thị kết quả: Cách 1: sử dụng đoãn mã phía Cách 2: sử dụng genexp d)Ta sử dụng hàm filter thay xây dựng hàm genexp xây dựng để tạo dãy tín hiệu rời rạc suy giảm theo hàm mũ phần trước với việc sử dụng công thức đệ quy: y[n]-a*y[n-1]=x[n] điều kiện ban đầu y[-1]=0 Cách sử dụng hàm lọc liệu filter: =>Trong SIGNAL PROCESSING TOOLBOX, hàm y =filter(b,a,x) lọc liệu vector x với lọc mô tả vectơ a b, tạo liệu y lọc Cấu trúc lọc lọc dãy tổng quát mô tả phương trình vi phân: y(n) = b(1)x(n) + b(2)x(n-1) + + b(nb)x(n-nb+1) - a(2)y(n-1) - -a(na)y(n-na+1) tương đương phép biến đổi Z: = Ta viết hàm sử dụng filter ,dự kiện vào bao gồm số u, điểm bắt đầu n0 điểm kết thúc n1: function [ham_mu ] = ham_filter( u,n0,n1) b=[1]; a=[1,-u]; for i=(n0+1):1:(n1+1) x(i)=0; x(1)=1; end nn=0:(n1-n0); ham_mu=filter(b,a,x); stem(nn,ham_mu); end Để sử dụng hàm trên,ta có đoạn mã: ham_filter(0.9,0,20) ans = Columns through 1.0000 0.9000 0.8100 0.7290 0.6561 0.5905 0.5314 0.4783 0.4305 Columns 10 through 18 0.3874 0.3487 0.3138 0.2824 0.2542 0.2288 0.2059 0.1853 0.1668 Columns 19 through 21 0.1501 0.1351 0.1216 Ta có kết đồ thị: Nhận xét: -Sử dụng hàm filter, ta có kết tương tự dãy tín hiệu tạo hàm genexp phần trước -Ta sử dụng hàm filter công thức đệ quy y[n] -a*y[n-1]=x[n] tương ứng với lọc mô tả phương trình sử dụng hàm trên(xem cách sử dụng trên) tạo tín hiệu rời rạc theo yêu cầu đề bài: y[-1]=0 y[0]= x[0]=1 y[1]=a y[2]=a^2 y[n]=a^n PROJECT : COMPLEX-VALUED SIGNALS EX 1:Complex Exponentials a)Để biểu diễn tín hiệu phức theo công thức Euler :==*(cos(θ*n)+j*sin(θ*n)) Ta xây dựng hàm sau: function [ ] = ham_phuc( r,phi,n1,n2) nn=n1:n2; for i=1:1:(n2-n1+1) xx(i)=(r^nn(i))*(cos(phi*nn(i))+1i*sin(phi*nn(i)));% cong thuc Euler end subplot(211) stem(nn,real(xx)) title('REAL PART') subplot(212) stem(nn,imag(xx)) title('IMAG PART') end Áp dụng với z=(0.9 ,π/4) với chiều dài xung 0≤n≤20.Ta sử dụng đoạn mã: ham_phuc(0.9,pi/4,0,20) Ta có kết quả:=> đồ thị bao gồm phần, phần thực phần ảo tín hiệu b)Để vẽ đồ thị hàm số phần ảo phần thực , ta sử dụng hàm sau, áp dụng với z=(0.9 ,π/4) ,chiều dài xung 0≤n≤20 : function [ ] = ham_xoan_oc( r,phi,n1,n2) nn=n1:n2; for i=1:1:(n2-n1+1) xx(i)=(r^nn(i))*(cos(phi*nn(i))+1i*sin(phi*nn(i))); end stem(imag(xx),real(xx)) title('IMAG VERSUS REAL') end >> ham_xoan_oc(0.9,pi/4,0,20) Ta có đồ thị hình vẽ, nhiên đồ thị chưa thể rõ hình xoắn ốc yêu cầu toán, ta hiệu chỉnh giá trị r θ sau: z=(0.9 ,π/10) ,chiều dài xung 0≤n≤100.Ta sử dụng đoạn mã sau: >> ham_xoan_oc(0.9,pi/10,0,100) Ta có đồ thị kết rõ ràng hơn: Nhận xét:đồ thị thể rõ ràng hàm xoắn ốc theo yêu cầu đề c)Để thể rõ tín hiệu phức,có đầy đủ pha ban đầu,biên độ, ta sử dụng công thức thứ 2: ==*(cos(θ*n+ɸ)+j*sin(θ*n+ɸ)) Với G=A* A biên độ, pha ban đầu Áp dụng với xung hình sin yêu cầu,ta sử dụng đoạn mã với hàm xây dựng hàm exp sau: function [ xx ] = new_ham_phuc_o( A,r,ro,phi,n1,n2) nn=n1:n2; for i=1:1:(n2-n1+1) xx(i)=A*exp(1j*phi)*exp(1j*nn(i)*ro)*(r^nn(i)); end end Với tín hiệu sin ta biểu diễn phần ảo tín hiệu phức, tín hiệu cos ta sử dụng phần thực >> nn=0:20; >> subplot(211) >> stem(nn,imag(new_ham_phuc_o(3,1,pi/7,0,0,20))) >> title('REAL PART') >> %ta vua ve phan thuc cua tin hieu: 3*sin(pi/7*n) + 4*j*cos(pi/7*n) >> subplot(212) >> stem(nn,real(new_ham_phuc_o(4,1,pi/7,0,0,20))) >> title('IMAG PART') >>%ta vua ve phan ao cua tin hieu: 3*sin(pi/7*n) + 4*j*cos(pi/7*n) >> nn=-15:25; >> stem(nn,imag(new_ham_phuc_o(1,1,pi/17,0,-15,25))) >>% ta vua ve tin hieu: sin(pi/17*n) >> nn=0:50; >> stem(nn,real(new_ham_phuc_o(1,1.1,pi/11,pi/4,0,50))) >>%ta vua ve tin hieu:1.1^n*cos(pi/11*n+pi/4) >>nn=-10:20; >> stem(nn,real(new_ham_phuc_o(1,0.9,pi/11,0,-10,20))) >>%ta vua ve tin hieu: 0.9^n *cos(pi/11*n) Đồ thị kết quả: d)Trong phần ta xây dựng tín hiệu phức sử dụng hàm filter, với cách sử dụng tương tự nêu phần trên, với hệ số a phức Ta dựa vào công thức đệ quy : y[n]=*y[n-1]+x[n] Hay : y[n]=r*exp(j*θ)*y[n-1]+x[n] với giá trị đầu vào x[n] = G*δ[n] = A*exp(j*ɸ) δ[n] Ta xây dựng hàm sau: function [th_phuc ] = th_phuc_filter( A,r,omega0,phi,n1,n2 ) b=[1]; a=[1,-r*(cos(omega0)+1j*sin(omega0))]; temp=zeros(n2-n1+1,1); temp(1)=A*(cos(phi)+1j*sin(phi)); th_phuc=filter(b,a,temp); end Sau ta sử dụng đoạn mã: %tao bang ham filter >> nn=0:50; >> subplot(211) >> stem(nn,real(th_phuc_filter(1,1.1,pi/11,pi/4,0,50))); >> title('REAL PART BY FILTER') >> subplot(212) >> stem(nn,imag(th_phuc_filter(1,1.1,pi/11,pi/4,0,50))); >> title('IMAG PART BY FILTER') >>% tao lai bang ham mu >>for i=0:1:50 ham_mu(i+1)=(1.1^i)*exp(j*(pi/11*i+pi/4)); end >> subplot(211) >> stem(nn,real(ham_mu)) >> title('REAL PART BY EXP') >> subplot(212) >> stem(nn,imag(ham_mu)) >> title('IMAG PART BY EXP') Đồ thị kết quả: Nhận xét: Dựa vào đồ thị ta thấy cách xây dựng tín hiệu phức theo cách thông thường( hàm exp) theo cách sử dụng lọc ( hàm filter) cho kết hoàn toàn giống e)Dựa vào công thức đệ quy: y[n]=*y[n-1]+x[n] ta có biến đổi sau để biểu diễn phần thực phần ảo tín hiệu y[n] cách đệ quy, tức theo , ,x[n] r, cos(θ) , sin(θ): y[n]=*y[n-1]+x[n] => y[n]=r*e^(j*θ)*y[n-1]+x[n] => +j* = r*(cos(θ)+j*sin(θ)) *(+ ) + +j* (1.3) (1.3) => = r*cos(θ)* - r*sin(θ)* , = A*cos(ɸ)*δ[n] (1.3) => = r*cos(θ)+r*sin(θ)* + , =A*sin(θ)* δ[n] Ta có công thức đệ quy nhu yêu cầu đề f) Từ lý thuyết phần e, ta xây dựng hàm tạo tín hiệu mũ phức theo kiểu đệ quy.Hàm có tham số vào A, r, θ,ɸ,n1,n2 trả dãy tín hiệu.So sánh với công thức sử dụng hàm filter xây dựng phần d Thử với A=1,ɸ=0,r=0.5,θ = π/4 Xây dựng hàm: function [th_phuc_real] = th_phuc_dequy( A,r,omega0,phi,n1,n2 ) nn=n1:n2; th_phuc_real=zeros(n2-n1+1,1); th_phuc_imag=zeros(n2-n1+1,1); th_phuc_real(1)=A*r*cos(omega0+phi); th_phuc_imag(1)=A*r*sin(omega0+phi); for i=2:1:(n2-n1+1) th_phuc_real(i)= r*cos(omega0)*th_phuc_real(i-1)r*sin(omega0)*th_phuc_imag(i-1); th_phuc_imag(i)= r*cos(omega0)*th_phuc_imag(i1)+r*sin(omega0)*th_phuc_real(i-1); end end Sau ta sử dụng đoạn mã: >> nn=0:20; subplot(211) stem(nn,th_phuc_dequy(1,0.5,0,0,0,20)); title('REAL PART BY RECURSION') subplot(212) stem(nn,real(th_phuc_filter (1,0.5,0,0,0,20))); title('REAL PART BY FILTER') subplot(211) stem(nn,th_phuc_dequy(1,0.5,pi/4,0,0,20)); title('REAL PART BY RECURSION') subplot(212) stem(nn,real(th_phuc_filter (1,0.5,pi/4,0,0,20))); title('REAL PART BY FILTER') Ta có đồ thị: Nhận xét: cách xây dựng tín hiệu phức theo kiểu đệ quy phần thực phần ảo cho kết tương tự cách làm khác ============================================================== KẾT LUẬN: Qua tập lớn có số kĩ việc sử dụng phần mềm MATLAB để xây dựng thao tác dạng tín hiệu rời rạc, qua mở rộng công việc sau này.Ta có hình dung rõ hình dạng dạng tín hiệu mà thường sử dụng trình học [...]... học tính tổng của 1 chuỗi lũy thừa: ( a≠1) (1.2) Để so sánh công thức (1.2) và giá trị tổng của các xung trong phần a ta sử dụng đoạn mã: Ta xây dựng lại hàm genexp như sau để tiện tính toán tổng: hàm trả về biến tong là tổng của các giá trị tín hiệu tại các điểm n=(1,2, ,L+1) trong tín hiệu rời rạc vừa xây dựng, phương pháp tính toán là sử dụng 1 vòng for Đầu vào bao gồm cơ số b, điểm bắt đầu n0 và. .. xác và giống nhau theo 2 cách tính: 1 cách theo công thức 1.2 và cách ta tính tổng toàn bộ giá trị của các xung trong dãy tín hiệu tạo bởi genexp c) So sánh 2 vector y(2:L) và a*y(1:L-1) ta xác nhận được sự chính xác của công thức : y[n]=a*y[n-1] over the range 1 ≤ n ≤L-1 (1.3) Lý do 1 dãy tín hiệu dạng mũ được tìm thấy thường xuyên trong DSP là thời gian khi bị dịch chuyển không làm thay đổi tín hiệu. Do... PART BY EXP') Đồ thị kết quả: Nhận xét: Dựa vào đồ thị ta thấy cách xây dựng tín hiệu phức theo cách thông thường( hàm exp) và theo cách sử dụng bộ lọc ( hàm filter) cho kết quả hoàn toàn giống nhau e)Dựa vào công thức đệ quy: y[n]=*y[n-1]+x[n] ta có biến đổi sau để có thể biểu diễn phần thực và phần ảo của tín hiệu y[n] 1 cách đệ quy, tức là và theo , ,x[n] và r, cos(θ) , sin(θ): y[n]=*y[n-1]+x[n] =>... FILTER') Ta có các đồ thị: Nhận xét: cách xây dựng tín hiệu phức theo kiểu đệ quy từng phần thực và phần ảo cho kết quả tương tự các cách làm khác ============================================================== KẾT LUẬN: Qua bài tập lớn trên chúng ta đã có 1 số kĩ năng cơ bản trong việc sử dụng phần mềm MATLAB để xây dựng cũng như thao tác trên các dạng tín hiệu rời rạc, qua đó có thể mở rộng hơn trong các... => = r*cos(θ)* - r*sin(θ)* , = A*cos(ɸ)*δ[n] (1.3) => = r*cos(θ)+r*sin(θ)* + , =A*sin(θ)* δ[n] Ta có công thức đệ quy nhu yêu cầu đề bài f) Từ lý thuyết phần e, ta xây dựng hàm tạo tín hiệu mũ phức theo kiểu đệ quy.Hàm có tham số vào là A, r, θ,ɸ,n1,n2 và trả về dãy tín hiệu. So sánh với công thức sử dụng hàm filter đã xây dựng ở phần d Thử với A=1,ɸ=0,r=0.5,θ = 0 hoặc π/4 Xây dựng hàm: function [th_phuc_real]... =filter(b,a,x) lọc dữ liệu trong vector x với bộ lọc mô tả bởi các vectơ a và b, tạo ra dữ liệu y đã lọc Cấu trúc lọc là bộ lọc dãy tổng quát mô tả bởi phương trình vi phân: y(n) = b(1)x(n) + b(2)x(n-1) + + b(nb)x(n-nb+1) - a(2)y(n-1) - -a(na)y(n-na+1) hoặc tương đương phép biến đổi Z: = Ta viết 1 hàm sử dụng filter ,dự kiện vào bao gồm cơ số u, điểm bắt đầu n0 và điểm kết thúc n1: function [ham_mu ] =... thị: Nhận xét: -Sử dụng hàm filter, ta có kết quả tương tự như dãy tín hiệu đã tạo bằng hàm genexp ở phần trước -Ta sử dụng hàm filter trong bài này do công thức đệ quy y[n] -a*y[n-1]=x[n] tương ứng với bộ lọc được mô tả bởi phương trình sử dụng trong hàm trên(xem cách sử dụng ở trên) có thể tạo ra được tín hiệu rời rạc theo yêu cầu đề bài: y[-1]=0 y[0]= x[0]=1 y[1]=a y[2]=a^2 y[n]=a^n PROJECT 2 :... nhiên đồ thị chưa thể hiện rõ được hình xoắn ốc như yêu cầu bài toán, ta hiệu chỉnh các giá trị r và θ như sau: z=(0.9 ,π/10) ,chiều dài xung 0≤n≤100.Ta sử dụng đoạn mã sau: >> ham_xoan_oc(0.9,pi/10,0,100) Ta có đồ thị kết quả rõ ràng hơn: Nhận xét:đồ thị đã thể hiện rõ ràng được hàm xoắn ốc theo yêu cầu đề bài c)Để thể hiện rõ hơn 1 tín hiệu phức,có đầy đủ pha ban đầu,biên độ, ta sử dụng công thức... dựng bởi hàm exp như sau: function [ xx ] = new_ham_phuc_o( A,r,ro,phi,n1,n2) nn=n1:n2; for i=1:1:(n2-n1+1) xx(i)=A*exp(1j*phi)*exp(1j*nn(i)*ro)*(r^nn(i)); end end Với tín hiệu sin ta biểu diễn bằng phần ảo của tín hiệu phức, còn tín hiệu cos ta sử dụng phần thực >> nn=0:20; >> subplot(211) >> stem(nn,imag(new_ham_phuc_o(3,1,pi/7,0,0,20))) >> title('REAL PART') >> %ta vua ve phan thuc cua tin hieu:... đầu của đề bài Đồ thị kết quả: Cách 1: sử dụng đoãn mã phía trên Cách 2: sử dụng genexp d)Ta sử dụng hàm filter thay vì xây dựng hàm genexp đã xây dựng để tạo dãy tín hiệu rời rạc suy giảm theo hàm mũ ở phần trước với việc sử dụng công thức đệ quy: y[n]-a*y[n-1]=x[n] và điều kiện ban đầu y[-1]=0 Cách sử dụng hàm lọc dữ liệu filter: =>Trong SIGNAL PROCESSING TOOLBOX, hàm y =filter(b,a,x) lọc dữ liệu

Ngày đăng: 10/08/2016, 11:09

Tài liệu cùng người dùng

Tài liệu liên quan