Giáo trình Xử lý tín hiệu số - Đỗ Huy Khôi
MỤC LỤC
LỜI NÓI ĐẦU. 4
CHƯƠNG I 5
TÍN HIỆU RỜI RẠC VÀ HỆ THỐNG RỜI RẠC 5
1.1. MỞ ĐẦU 5
1.2. TÍN HIỆU RỜI RẠC 5
1.2.2. Phân loại tín hiệu: 5
1.2.3. Tín hiệu rời rạc - dãy 6
1.3. HỆ THỐNG RỜI RẠC 10
1.3.1. Khái niệm. 10
1.4. HỆ THỐNG BẤT BIẾN THEO THỜI GIAN (LTI: Linear Time-Invariant System) 14
1.4.1. Khái niệm 14
1.4.2. Tổng chập (CONVOLUTION SUM) 14
1.4.3. Các hệ thống LTI đặc biệt. 18
1.5.PHƯƠNG TRÌNH SAI PHÂN TUYẾN TÍNH HỆ SỐ HẰNG 20
1.5.1. Khái niệm 20
1.5.2. Nghiệm của LCCDE 21
1.5.3. Hệ thống rời rạc đệ qui và không đệ quy 24
1.6 TƯƠNG QUAN CỦA CÁC TÍN HIỆU RỜI RẠC 26
1.6.1. Tương quan chéo 27
1.6.2. Tự tương quan 27
1.6.3. Một số tính chất của tương quan chéo và tự tương quan: 28
1.7. XỬ LÝ SỐ TÍN HIỆU TƯƠNG TỰ 29
1.7.1. Các hệ thống xử lý tín hiệu: 29
1.7.2. Hệ thống xử lý số tín hiệu tương tự: 29
BÀI TẬP CHƯƠNG 1 35
CHƯƠNG II 38
BIỂU DIỄN TÍN HIỆU VÀ HỆ THỐNG RỜI RẠC TRONG MIỀN Z 38
2.1 MỞ ĐẦU: 38
2.2 CÁC KHÁI NIỆM VỀ BIẾN ĐỔI Z. 38
2.2.1. Biến đổi Z ( THE Z - TRANSFORM) 38
2.2.2. Miền hội tụ (ROC: Region of Convergence) 39
2.2.3. Biến đổi Z ngược 44
2.3 CÁC TÍNH CHẤT CỦA BIẾN ĐỔI Z 46
2.4.1. Phương pháp tra bảng: 53
2.4.2. Phương pháp triển khai thành các phân thức tối giản. 53
2.4.3. Phương pháp triển khai thành chuỗi luỹ thừa 55
2.5 GIẢI PHƯƠNG TRÌNH SAI PHÂN TUYẾN TÍNH HỆ SỐ HẰNG DÙNG BIẾN ĐỔI Z MỘT PHÍA 55
2.5.1. Biến đổi Z một phía 55
2.5.2. Giải phương trình sai phân tuyến tính hệ số hằng: 55
2.6 PHÂN TÍCH HỆ THỐNG LTI TRONG MIỀN Z 55
2.6.1. Hàm truyền đạt của hệ thống LTI 55
2.6.2. Đáp ứng của hệ thống cực-zero nghỉ 55
2.6.3. Đáp ứng của hệ thống cực-zero với điều kiện đầu khác 0. 55
2.6.4. Đáp ứng quá độ (TRANSIENT RESPONSE) và đáp ứng xác lập (STEADY - STATE RESPONSE) 55
2.6.5. Hệ thống ổn định và nhân quả. 55
2.7 THỰC HIỆN CÁC HỆ THỐNG RỜI RẠC 55
2.7.1. Mở đầu: 55
2.7.2. Hệ thống IIR (đệ quy) 55
2.7.3. Hệ thống FIR (không đệ quy) 55
BÀI TẬP CHƯƠNG 2 55
CHƯƠNG III 55
PHÂN TÍCH TẦN SỐ CỦA TÍN HIỆU 55
3.1 MỞ ĐẦU 55
3.2 TẦN SỐ CỦA TÍN HIỆU RỜI RẠC 55
3.2.1. Tín hiệu tương tự tuần hoàn theo thời gian 55
3.2.2. Tín hiệu rời rạc tuần hoàn hình sin 55
3.2.3 Mối liên hệ của tần số F của tín hiệu tương tự xa(t) và tần số f của tín hiệu rời rạc x(n) được lấy mẫu từ xa(t) 55
3.2.4. Các tín hiệu hàm mũ phức có quan hệ hài 55
3.3 PHÂN TÍCH TẦN SỐ CỦA TÍN HIỆU LIÊN TỤC 55
3.3.1. Phân tích tần số của một tín hiệu liên tục tuần hoàn theo thời gian – chuỗi fourier 55
3.3.2. Phổ mật độ công suất của tín hiệu tuần hoàn 55
3.3.3. Phân tích tần số của tín hiệu liên tục không tuần hoàn – biến đổi fourier 55
3.3.4. Phổ mật độ năng lượng của tín hiệu không tuần hoàn 55
3.4 PHẤN TÍCH TẦN SỐ CỦA TÍN HIỆU RỜI RẠC 55
3.4.1. Chuỗi fourier của tín hiệu rời rạc tuần hoàn 55
3.4.2. Phổ mật độ công suất của tín hiệu rời rạc tuần hoàn 55
Phổ mật độ công suất – Phổ biên độ – Phổ pha: 55
3.4.3. Phân tích tần số của tín hiệu rời rạc không tuần hoàn – biến đổi fourier 55
3.4.4. Phổ mật độ năng lượng của tín hiệu không tuần hoàn 55
3.4.5. Các tính chất của biến đổi fourier của tín hiệu rời rạc theo thời gian 55
3.5 LẤY MẪU TÍN HIỆU TRONG MIỀN THỜI GIAN VÀ MIỀN TẦN SỐ 55
3.5.1. Lấy mẫu trong miền thời gian và khôi phục tín hiệu tương tự. 55
3.5.2. Lấy mẫu trong miền tần số và khôi phục tín hiệu rời rạc theo thời gian 55
3.6 BIẾN ĐỔI FOURIER RỜI RẠC (DFT DISCRETE FOURIER TRANFORM) 55
3.6.1. Khái niệm 55
3.6.2. Quan hệ giữa DFT và các biến đổi khác 55
BÀI TẬP CHƯƠNG 3 55
CHƯƠNG IV 55
BIỂU DIỄN, PHÂN TÍCH HỆ THỐNG RỜI RẠC TRONG MIỀN TẦN SỐ 55
4.1 CÁC ĐẶC TÍNH CỦA HỆ THỐNG LTI TRONG MIỀN TẦN SỐ 55
4.1.1. Đáp ứng tần số của hệ thống LTI 55
4.1.2. Đáp ứng quá độ và đáp ứng xác lập với tín hiệu hình sin 55
4.1.3. Đáp ứng xác lập với tín hiệu vào tuần hoàn. 55
4.2. PHÂN TÍCH HỆ THỐNG LTI TRONG MIỀN TẦN SỐ 55
4.2.1. Quan hệ vào-ra trong miền tần số. 55
4.2.2. Tính hàm đáp ứng tần số. 55
4.3. HỆ THỐNG LTI VÀ MẠCH LỌC SỐ. 55
4.3.1. Lọc chọn tần lý tưởng. 55
4.3.2. Tính không khả thi của bộ lọc lý tưởng 55
4.3.3. Mạch lọc thực tế 55
BÀI TẬP CHƯƠNG 4 55
TÀI LIỆU THAM KHẢO 55
PHỤ LỤC 55
MỘT SỐ CHƯƠNG TRÌNH MẪU DÙNG NGÔN NGỮ MATLAB TRONG XỬ LÝ TÍN HIỆU SỐ 55
% Nhập vào vector biến thời gian và biểu thức của tín hiệu, vẽ các loại tín hiệu: tương tự, rời rạc, số. %--------------------------------------------------- t=input('Nhap khoang thoi gian, VD:0:0.1:40, t= '); y=input('Nhap ham so muon ve co bien t, VD:sin(t/4+1), y= '); loai=input('(analog,type=1;discrete,type=2;digital,type=3)Type = '); duong=input('(___,style=1;...,style=2;-.,style=3) stype = '); if loai==1 DS1=figure('Name','Type of signal','Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); if duong = =1 plot(t,y,'r-'); elseif duong = =2 plot(t,y,'r:'); elseif duong = =3 plot(t,y,'r-.'); end; elseif loai= =2 cham=input('(cham den,cham=1;cham trang,cham=2;... khong,cham=3) cham= '); DS1=figure('Name','Type of signal', 'Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); if cham= =1 stem(t,y,'fulled'); elseif cham= =2 stem(t,y); elseif cham= =3 stem1(t,y); end; elseif loai= =3 [x,z]=stairs(t,y); xt(1)=x(1);zt(1)=z(1); for n=1:length(x)/2-1 ni=2*n+1; xt(n)=x(ni);zt(n)=z(ni); end; cham=input('(cham den,cham=1;cham trang,cham=2;... khong,cham=3) cham= '); plot(x,z,'g:');hold on; if cham= =1 stem(xt,zt,'fulled'); elseif cham= =2 stem(xt,zt); elseif cham= =3 stem1(xt,zt); end; end axis off; 2. function dsphinh3_26(N,L) %Ve bien do va pha cua DFT n diem cua day co do dai L. % Doan hoa minh 2001 %-------------------------------------------------------- function dsphinh3_26(N,L) xn=ones(1,L); X=fft(xn,N); X1=abs(X); theta1=angle(X); DS2=figure('Name','DFT N diem’,'Color','w',... 'NumberTitle','off','Position',[50 50 580 300]); stem(X1,'filled') DS2=figure('Name','Type of signal','Color','w',... 'NumberTitle','off','Position',[50 50 580 300]); stem(theta1,'filled') 3. dsphinh5_16 % Ve dac tuyen cua mach loc thiet ke bang cua so co chieu dai bang 9 va bang 61. % Do Huy Khoi and Phung Trung Nghia syms w v; y=sin((w-v)*9/2)/sin((w-v)/2); z=int(y,v,-pi/4,pi/4); z=simple(z) w=0:0.01:pi; for n=1:length(w) Ht(n)=subs(z,'w',w(n)); end H=exp(-j*4.*w)./(2*pi).*Ht; tHt=abs(H); Hdb=20*log10(tHt); DS1=figure('Name','Type of signal','Color','w',... 'NumberTitle','off','Position',[50 50 500 200]); plot(w,tHt) grid on DS1=figure('Name','Type of signal','Color','w',... 'NumberTitle','off','Position',[50 50 500 200]); plot(w,Hdb,'k') grid on syms w v; y1=sin((w-v)*61/2)/sin((w-v)/2); z1=int(y1,v,-pi/4,pi/4); z1=simple(z1) w=0:0.01:pi; for n=1:length(w) Ht1(n)=subs(z1,'w',w(n)); end H1=exp(-j*4.*w)./(2*pi).*Ht1; tHt1=abs(H1); Hdb1=20*log10(tHt1); DS3=figure('Name','Type of signal',... 'Color','w','NumberTitle','off','Position',[50 50 500 200]); plot(w,tHt1) grid on DS4=figure('Name','Type of signal',... 'Color','w','NumberTitle','off','Position',[50 50 500 200]); plot(w,Hdb1,'k') grid on 4.firequiripple % Thiet ke bo loc FIR thong thap pha tuyen tinh dung thuat toan Remez exchange. % Do Huy Khoi and Phung Trung Nghia M=input('Nhap chieu dai cua dap ung xung, M = '); dx=11; pdx=12; disp('Chon dieu kien doi xung, neu doi xung thi nhap: dx') disp(' , neu phan doi xung thi nhap: pdx') dk=input('Dieu kien doi xung : '); W=input('Nhap vector trong so,so phan tu bang so dai bang,... Vd: W=[1.2 1],W= '); disp('Nhap vector cac tan so c../Anh bang tan,... mot cap tan so cho moi ') disp('bang tan, cac tan so nay nam giua 0 va 1,... Vd F=[0 .1 .15 1]') F=input('F = '); disp('Nhap vector gia tri dap ung tan so mong muon A (gia tri thuc),') disp('tai cac diem tan so bang c../Anh, A co kich thuoc bang F') disp ('Vi du: A=[1 1 0 0]') A=input('A = '); N=M-1; if dk= =11 [hn,err]=remez(N,F,A,W) elseif dk= =12 [hn,err]=remez(N,F,A,W,'Hilbert') end w=0:0.001:pi; f=w./pi; H= freqz(hn,1,w); H1=20*log10(abs(H)); DS1=figure('Name','Impulse Response','Color','w',... 'NumberTitle','off','Position',[50 50 500 300]); n=0:1:M-1; stem(n,hn,'filled','k') axis off DS1=figure('Name','Frequency Response', 'Color','w',... 'NumberTitle','off','Position',[50 50 500 300]); plot(f,abs(H),'k') grid on DS1=figure('Name','Frequency Response (dB)','Color','w',... 'NumberTitle','off','Position',[50 50 500 300]); plot(f,H1,'k') ylim([-100 10]) grid on 5. firsample % Thiet ke bo loc FIR thong thap pha tuyen tinh bang phuong phap lay may tan so. % Do Huy Khoi and Phung Trung Nghia . %--------------------------------------------------------- M=input('Nhap chieu dai cua dap ung xung, M = '); dx=11; pdx=12; disp('Chon dieu kien doi xung, neu doi xung thi nhap: dx') disp(' , neu phan doi xung thi nhap: pdx') dk=input('Dieu kien doi xung : '); alpha=input('Chon he so alpha, alpha= '); disp('Voi h(n) dx k=[0:(M-1)/2] neu M le,... k=[0:(M/2)-1] neu M chan') disp('Voi h(n) pdx k=[0:(M-3)/2] neu M le,... k=[1:(M/2)] neu M chan') disp('Nhap dac tuyen tan so mong muon,... tai cac diem tan so wk=2*pi*k/M') if mod(M,2)= =0 U=M/2-1; else U=(M-1)/2; end for ii=1:U+1 %kk=int2str(ii); %disp('k = 'kk); Hrk(ii)=input('Hr(k) = '); end G=zeros(U+1,1); hn=zeros(M,1); for k=1:U+1 G(k)=((-1)^(k-1))*Hrk(k); end if alpha= =0 if dk= =11 for n=1:M for k=2:U+1 hn(n)=hn(n)+G(k)*cos(pi*(k-1)*(2*(n-1)+1)/M); end hn(n)=(2*hn(n)+G(1))/M; end elseif dk = =12 if mod(M,2)= =1 for n=1:M for k=1:U+1 hn(n)=hn(n)-2*G(k)*sin(2*pi*(k-1)*((n-1)+0.5)/M)/M; end end else for n=1:M for k=1:U hn(n)=hn(n)-2*G(k)*sin(2*pi*k*((n-1)+0.5)/M)/M; end hn(n)=hn(n)+((-1)^(n))*G(U+1)/M; end end end elseif alpha= = 0.5 if dk= =11 for n=1:M for k=1:U+1 hn(n)=hn(n)+2*G(k)*sin(2*pi*(k-1+1/2)*((n-1)+0.5)/M)/M; end end elseif dk= =12 for n=1:M for k=1:U+1 hn(n)=hn(n)+2*G(k)*cos(2*pi*(k-1+1/2)*((n-1)+0.5)/M)/M; end end end end hn om=0:0.01:pi; if mod(M,2)= =0 Hr=hn(1).*cos(om.*((M-1)/2)); n=1; while n<=U n=n+1; Hr=Hr+hn(n).*cos(om.*((M-1)/2-n+1)); end Hr=2.*Hr; else Hr=hn(1).*cos(om.*((M-1)/2)); n=1; while n<=(M-3)/2 n=n+1; Hr=Hr+hn(n).*cos(om.*((M-1)/2-n+1)); end Hr=2.*Hr; Hr=Hr+hn(U+1); end modunH=abs(Hr); DS1=figure('Name', 'Dap ung bien do', 'Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); plot(om,modunH,'k'); grid on modunHdb=20.*log10(modunH); DS2=figure('Name','Type of signal', 'Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); plot(om,modunHdb,'k'); grid on teta=-om.*(M-1)/2+angle(Hr); DS3=figure('Name','Dap ung pha','Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); plot(om,teta,'k'); grid on DS4=figure('Name','Dap ung xung', 'Color','w',... 'NumberTitle','off','Position',[50 50 400 300]); stem(hn,'filled','k'); grid on 6. dsphinh 5_15 % Ve dap ung tan so cua cua so chu nhat co chieu dai bang M=9, % M=51 va m=101. % Do Huy Khoi and Phung Trung Nghia om=0:0.001:pi; M=9; W1=20*log10(abs(sin(om.*M/2)./sin(om./2))); DS1=figure('Name','Dap ung tan so cua cua so chu nhat M=9', 'Color','w','NumberTitle','off','Position',[50 50 500 200]); plot(om,W1,'k') title('M = 9'); xlabel('w (rad)'); ylabel('|W(w)|(dB)'); axis on grid on M=51; W2=20*log10(abs(sin(om.*M/2)./sin(om./2))); DS2=figure('Name',' Dap ung tan so cua cua so chu nhat M=51', 'Color','w','NumberTitle','off','Position',[50 50 500 200]); plot(om,W2,'k') title('M = 51'); xlabel('w (rad)'); ylabel('|W(w)|(dB)'); axis on grid on M=101; W3=20*log10(abs(sin(om.*M/2)./sin(om./2))); DS2=figure('Name','Dap ung tan so cua cua so chu nhat M=101', 'Color','w','NumberTitle','off','Position',[50 50 500 200]); plot(om,W3,'k') title('M = 101'); xlabel('w (rad)'); ylabel('|W(w)|(dB)'); axis on grid on function hh = stem1(varargin) % Hàm này được cải biên từ hàm stem của MATLAB, vẽ dãy rời rạc không có chấm trêm đầu. %STEM1 Discrete sequence or "stem" plot. % STEM1(Y) plots the data sequence Y as stems from the x axis % % STEM1(X,Y) plots the data sequence Y at the values specfied % in X. % STEM1(...,'LINESPEC') uses the linetype specifed for the stems and % markers. See PLOT for possibilities. % % H = STEM(...) returns a vector of line handles. % % See also PLOT, BAR, STAIRS. % Copyright (c) by Do Huy Khoi and Phung Trung Nghia. % Date: 2000/6/4. nin = nargin; fill = 0; ls = '-'; ms = 'o'; col = ''; % Parse the string inputs while isstr(varargin{nin}), v = varargin{nin}; if ~isempty(v) & strcmp(lower(v(1)),'f') fill = 1; nin = nin-1; else [l,c,m,msg] = colstyle(v); if ~isempty(msg), error(sprintf('Unknown option "%s".',v)); end if ~isempty(l), ls = l; end if ~isempty(c), col = c; end if ~isempty(m), ms = m; end nin = nin-1; end end error(nargchk(1,2,nin)); [msg,x,y] = xychk(varargin{1:nin},'plot'); if ~isempty(msg), error(msg); end if min(size(x))= =1, x = x(:); end if min(size(y))= =1, y = y(:); end % Set up data using fancing ../indexing [m,n] = size(x); xx = zeros(3*m,n); xx(1:3:3*m,:) = x; xx(2:3:3*m,:) = x; xx(3:3:3*m,:) = NaN; [m,n] = size(y); yy = zeros(3*m,n); yy(2:3:3*m,:) = y; yy(3:3:3*m,:) = NaN; cax = newplot; next = lower(get(cax,'NextPlot')); hold_state = ishold; h2 = plot(xx,yy,[col,ls],'parent',cax); if nargout>0, hh = h2; end
File đính kèm:
- giao_trinh_xu_ly_tin_hieu_so_do_huy_khoi.doc