Tài liệu Bài tập lớn xử lý số tín hiệu

  • Số trang: 37 |
  • Loại file: PDF |
  • Lượt xem: 301 |
  • Lượt tải: 0
hoanggiang80

Đã đăng 20010 tài liệu

Mô tả:

Bài tập lớn xử lý số tín hiệu
Xử Lý Tín Hiệu Số & Hệ Thống Project 1 COMPUTING THE DTFT: FINITE-LENGTH SIGNALS Trong project này chúng ta sẽ tập trung xử lý tín hiệu có độ dài hữu hạn. Điều này sẽ sử dụng hàm DTFT cho ở dưới đây. Project làm việc với những tín hiệu dạng xung và phổ tần số DTFT của chúng vì đây là những ví dụ dễ nhất cho tính toán phổ tần số của tín hiệu. Chú ý: Chúng ta cần 2 hàm để tính DTFT. Hàm MATLAB freqz sẽ dùng để xác định trong trường hợp tín hiệu infinite-length, nhưng một hàm mới sẽ cần để tính DTFT của tín hiệu finite-length. Hàm được gọi là DTFT(h,N) function [H,W]=DTFT(h,N) % DTFT calculate DTFT at N equally spaced frequencies % usage: H=DTFT(h,N) % h: finite-length input vector, whose length is L % N: number of frequencies for evaluation over [-pi,pi] % ==> constraint N>=L % H: DTFT values (complex) % W: (2nd output) vector of freqs where DTFT is computed % N=fix(N); L=length(h); h=h(:); if(N else W(i) = sin(1/2*L*w(i))./ sin(1/2*w(i)); %#ok end end Sử dụng hàm asinc( w ,L) ta tính trực tiếp phổ tần số của tín hiệu r[n] ban đầu. Sau đó vẽ đồ thị biên độ và so sánh đồ thị thu được với đồ thị thu được từ sử dụng hàm DTFT trên. Tính giá trị DTFT theo công thức trực tiếp: x=ones(1,15); [H,W]=DTFT(x,1024);%lấy vector tần số lấy mẫu. H2=asinc(W,15).*exp(-j*W'*(15-1)/2); plot(W,abs(H)); grid on,xlabel('NORMALIZED FREQUENCY'),ylabel('abs(H(w))') Qua hai đồ thị biên độ tính theo hai cách trực tiếp và qua hàm DTFT ta thấy kết quả thu được từ 2 phương pháp là đồng nhất. Project 2 DTFT SYMMETRIE, DTFT ĐỐI XỨNG Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 4 Xử Lý Tín Hiệu Số & Hệ Thống Các tín hiệu finite-length thường được sử dụng có tính chất đối xứng để dễ tính DTFT hơn. Ví dụ các xung hình chữ nhật là chẵn xung quanh điểm n=0 thì tính toán DTFT của nó sẽ là hàm thực ,chẵn theo đối số . Trong project 2, sáu loại đối xứng chính sẽ được xem xét và minh họa bởi các ví dụ khác nhau. Chú ý : Cần thiết phải thay đổi hàm DTFT dể có thể chấp nhân một biến mới xác định thời điểm bắt đầu của tín hiệu x[n]. Thông thường các tín hiệu bắt đầu được tính tại thời điểm n=0 bởi hàm DTFT trong Project 1. Một kĩ năng cần thiết nữa trong Project 2 là vẽ đồ thị DTFT để biểu diễn tính đối xứng. Thông thương, các tần số góc được xác định trong khoảng từ 0 tới 2 p . Tuy nhiên dể nghiên cứu tính đối xứng của đồ thị DTFT chúng ta cần phải đưa chúng các tần số góc về khoảng từ -p ® p . Khi kiểm tra các đặc tính thực và ảo của biến đổi có thể phần tín hiệu là bằng không lại không thực sự bằng 0. Điều đó có thể xảy ra do một số các giá trị vô cùng nhỏ trong quá trình làm tròn. Nếu các giá trị đó nằm trong khoảng từ thì có thể bỏ qua và kết luận là do làm tròn số gây ra. Tuy nhiên nếu cỡ thì chưa chắc đã là do làm tròn, trừ khi đã có một số lượng lớn các phép tính đã được thực hiện. Khi kiểm tra biến đổi là chẵn hay lẻ, nên sử dụng một chương trình để dịch chuyên biến đổi. Nghĩa là ta cần phải có một hàm MATLAB mới để thực hiện tương tự với biểu diễn toán hạng của dịch chuyển tần sô end 2.1 Y (eiw ) = X (e - iw ) . Hàm số sẽ thực hiện biến đổi với cặp vector (H,W). function [G, Wflipped ]= flipDTFT(H,W) % FlipDTFT flip the DTFT G(w)=H(-w) % usage: % [ G,Wflipped] =flipDTFT(H,W) % H=DTFT values complex % W=frequency samples % G= DTFT values % Wflipped= flipped frequency domain lies within [-pi,pi) % N=length(H); Wflipped=-W(N:-1:1); G=H(N:-1:1); %----% now get everything back into the [-pi,pi) interval % assume that W was monotonically increasing % so Wflipped is also increasing % jkl=find(Wflipped(:)'<-pi); if(~isempty(jkl)) kk=[(length(jkl)+1):N jkl]; Wflipped(jkl)=Wflipped(jkl)+2*pi; Wflipped=Wflipped(kk); G=G(kk); end jkl=find(Wflipped(:)'>=(pi-100*eps)); if(~isempty(jkl)) kk=[jkl 1:(jkl(1)-1)]; Wflipped(jkl)=Wflipped(jkl)-2*pi; Wflipped=Wflipped(kk); G=G(kk); Zero—Phase Signals, Tín hiệu pha 0 Xử lý các tín hiệu zero-phase là một điều khó khăn trong MATLAB vì hàm DTFT trong Project 1 cho rằng tín hiệu bắt đầu từ n=0 trong khi các tín hiệu zero-phase phải có tính đối xứng xung quanh điểm n=0. Một cách để xử lý vấn đề này là ta thay đổi hàm DTFT bằng cách thêm vào 1 Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 5 Xử Lý Tín Hiệu Số & Hệ Thống biến mới xác định thời điểm bắt đầu của tín hiệu. Thời điểm ban đầu này sẽ làm thay đổi giá trị hàm DTFT theo hệ thức DTFT x[ n - n0 ] ¬¾¾ ® e - iw n0 X (eiw ) a. Xây dựng hàm DTFT_n0(x,n0,N) để thực hiện sự dịch chuyển thời gian của tín hiệu bằng biến n0. function [H,W]=DTFT_n0(h,n0,N) %#ok %-% usage [H,W]=DTFT_n0(h,n0,N) % h finite-length input vector % n0 xac dinh thoi diem bat dau tin hieu % N number of freuencies for evaluation over [-pi,pi] % H DTFT_n0 values % W (2nd output) vector of frequencies for evaluation over % [-pi,pi] % N=fix(N); [X,W]=DTFT(h,N); H=exp(i*n0*W).*X; %#ok b. Kiểm tra DTFT_n0 bằng cách tính DTFT của một xung 21 điểm bắt đầu tại n=-10. Kết quả sẽ là một hàm thực chẵn Ta sử dụng tín hiệu ì1 with -1 £ n £ 1 r[ n ] = í î0 elsewhere x=ones(1,21); [H,W]=DTFT_n0(x,10,25); H Kết quả tính với r[n] ,n0=10,N=25 như sau : n=1 0.2492 + 0.0000i n=13 n=2 -0.6969 - 0.0000i n=14 n=3 1.0000 + 0.0000i n=15 n=4 -1.0856 - 0.0000i n=16 n=5 0.9126 + 0.0000i n=17 n=6 -0.4778 - 0.0000i n=18 n=7 -0.1831 - 0.0000i n=19 n=8 1.0000 + 0.0000i n=20 n=9 -1.8782 - 0.0000i n=21 n=10 2.7111 + 0.0000i n=22 n=11 -3.3951 - 0.0000i n=23 n=12 3.8438 + 0.0000i n=24 n=25 21.0000 3.8438 - 0.0000i -3.3951 + 0.0000i 2.7111 + 0.0000i -1.8782 + 0.0000i 1.0000 - 0.0000i -0.1831 - 0.0000i -0.4778 - 0.0000i 0.9126 - 0.0000i -1.0856 + 0.0000i 1.0000 - 0.0000i -0.6969 - 0.0000i 0.2492 + 0.0000i Theo bảng số liệu ta thấy phổ tần số là hoàn toàn thực và giá trị phần ảo là bằng 0. Đồng thời các giá trị thu được cũng đối xứng qua điểm n=0 nen là hàm chẵn.Điều đó phù hợp với lý thuyết. c. Vẽ đồ thị của DTFT trên Đồ thị phần thực Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 6 Xử Lý Tín Hiệu Số & Hệ Thống Đồ thị biên độ Vậy từ đồ thị ta lại thấy rằng DTFT của tín hiệu r[n] là chẵn và đối xứng, phù hợp với lý thuyết. Giá trị phần ảo cỡ không hoàn toàn bằng không nhưng đó là do sai số làm tròn trong quá trình tính toán. Chúng ta hoàn toàn có thể bỏ qua nó mà không ảnh hưởng tới kết quả thu được d. Chứng minh phần ảo là bằng 0 và pha biến thien từ 0 tới p +¥ L -¥ -L R(eiw ) = å r[n]* e - inw = å e - inw L L 1 1 = 1 + å (einw + e - inw ) = 1 + 2å cos(nw ) Từ chứng minh trên ta thấy phần ảo là bằng 0. Pha của cố định 1 tới L R(eiw ) biến thiên từ 0 của thành phần . Mặt khác Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 7 Xử Lý Tín Hiệu Số & Hệ Thống w= 2* p k N k = 1... N - 1 Do dó pha của R(eiw ) biến thiên từ 0 tới Cũng cần phải chú ý là sự đối xứng này chỉ có thể quan sát khi số xung là lẻ, nếu số xung là chẵn thì còn phải kể tới một sự trễ pha của nửa tín hiệu. 2 .2 Triangular Pulse Cho một tín hiệu đối xứng khác dạng tam giác như sau ìL - n with 0 £ n [H,W]=DTFT(x,1024); [Y,Wflip]=flipDTFT(H,W); subplot(211), plot(W,abs(H)) xlabel('NORMALIZED FREQUENCY'),ylabel('Abs(H(w))'),grid on subplot(212),plot(W,abs(Y)) xlabel('NORMALIZED FREQUENCY'),ylabel('Abs of flipDTFT (H(w))'),grid on So sánh pha a=0.9; nn=[0:1:21];x=a.^nn.*cos(2*pi*nn/sqrt(31)); %#ok Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 10 Xử Lý Tín Hiệu Số & Hệ Thống [X,W]=DTFT(x,1024); [Y,Wflip]=flipDTFT(X,W); subplot(211), plot(W,angle(X)) xlabel('NORMALIZED FREQUENCY'),ylabel('Arg(H(w))'),grid on subplot(212),plot(W,angle(Y)) xlabel('NORMALIZED FREQUENCY'),ylabel('Arg of flipDTFT (H(w))'),grid on Dựa vào đồ thị ta có thể thấy đồ thị biên độ của DTFT và đồ thị liên hợp đối xứng là bằng nhau, đồ thị pha của DTFT và của liên hợp phức đối xứng là đối nhau qua trục tung . Đó chính là tính chất cần tìm. b. Nếu tín hiệu là thuần ảo, DTFT của nó sẽ là liên hợp phản đối xứng. Sử dụng hàm x[n] từ phần trên, định nghĩa hàm y[n] =jx[n]. So sánh biên độ a=0.9; nn=[0:1:21];x=j*a.^nn.*cos(2*pi*nn/sqrt(31)); %#ok [X,W]=DTFT(x,1024); [Y,Wflip]=flipDTFT(X,W); subplot(211), plot(W,abs(X)) xlabel('NORMALIZED FREQUENCY'),ylabel('Abs(H(w))'),grid on subplot(212),plot(W,abs(Y)) xlabel('NORMALIZED FREQUENCY'),ylabel('Abs of flipDTFT (H(w))'),grid on Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 11 Xử Lý Tín Hiệu Số & Hệ Thống So sánh phase a=0.9; nn=[0:1:21];x=j*a.^nn.*cos(2*pi*nn/sqrt(31)); %#ok [X,W]=DTFT(x,1024); [Y,Wflip]=flipDTFT(X,W); subplot(211), plot(W,angle(X)) xlabel('NORMALIZED FREQUENCY'),ylabel('Arg(H(w))'),grid on subplot(212),plot(W,angle(Y)) xlabel('NORMALIZED FREQUENCY'),ylabel('Arg of flipDTFT (H(w))'),grid on Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 12 Xử Lý Tín Hiệu Số & Hệ Thống Ta thấy biên độ của DTFT và của liên hợp phức phản đối xứng là bằng nhau. pha của chúng đối nhau. Đó là tính chất cần tìm. c. Một hàm chẵn trong miền thời gian cũng cho một hàm chẵn trong miền tần số. sừ dụng tín hiệu trong miền là chẵn. Tính DTFT của hàm trên và chứng minh nó chẵn với Đồ thị phần thực nn=[-29:1:29]; x=exp(i*2*pi*nn.^2/25); [H,W]=DTFT_n0(x,30,1024); plot(W,real(H)) xlabel('NORMALIZED FREQUENCY'),ylabel('Real(H(w))'),grid on Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 13 Xử Lý Tín Hiệu Số & Hệ Thống Đồ thị phần ảo nn=[-29:1:29]; x=exp(i*2*pi*nn.^2/25); [H,W]=DTFT_n0(x,30,1024); plot(W,imag(H)) xlabel('NORMALIZED FREQUENCY'),ylabel('Im(H(w))'),grid on Từ đồ thị ta thấy phần thực và ảo của DTFT đều đối xứng qua trục tung do đó đây là hàm chẵn. phù hợp với các tính toán lý thuyết d. Với tín hiệu lẻ trong khoảng , thì DTFT của nó sẽ là hàm lẻ theo Đồ thị phần thực x=[-19:1:19]; Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 14 Xử Lý Tín Hiệu Số & Hệ Thống [H,W]=DTFT_n0(x,19,1024); plot(W,real(H)) xlabel('NORMALIZED FREQUENCY'),ylabel('Real(H(w))'),grid on Đồ thị phần ảo x=[-19:1:19]; [H,W]=DTFT_n0(x,19,1024); plot(W,imag(H)) xlabel('NORMALIZED FREQUENCY'),ylabel('Im(H(w))'),grid on Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 15 Xử Lý Tín Hiệu Số & Hệ Thống Từ đồ thị ta thấy phần thực của DTFT có thể coi là bằng 0 còn phần ảo thì đối xứng qua gốc tọa độ. Chứng tỏ DTFT là hàm lẻ theo . e. Các tính chất chẵn/lẻ và thực/ảo có thể kết hợp lại. xét tín hiệu là hàm ảo ,lẻ. DTFT của nó sẽ là một hàm phản liên hợp và lẻ tương ứng. Kiểm tra bằng đồ thị. nn=[-20:1:20]; x=j*nn.*cos(nn); [H,W]=DTFT_n0(x,20,1024); plot(W,real(H)),grid on xlabel('NORMALIZED FREQUENCY'),ylabel('Real(H(w))'),grid on plot(W,imag(H)),grid on xlabel('NORMALIZED FREQUENCY'),ylabel('Im(H(w))'),grid on Đồ thị biên độ Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 16 Xử Lý Tín Hiệu Số & Hệ Thống Đồ thị pha Sử dụng hàm flipDTFT kiểm tra nn=[-20:1:20]; x=j*nn.*cos(nn); [H,W]=DTFT_n0(x,20,1024); [H,G]=flipDTFT(X,W); plot(G,real(H)),grid on xlabel('NORMALIZED FREQUENCY'),ylabel('Real of (H(w))'),grid on plot(G,imag(H)),grid on xlabel('NORMALIZED FREQUENCY'),ylabel('Im of (H(w))'),grid on Đồ thị biên độ Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 17 Xử Lý Tín Hiệu Số & Hệ Thống Đồ thị pha Từ đồ thị ta thấy 1. Biên độ DTFT và biên độ flipDTFT là bằng nhau, pha DTFT đối xứng với phần ảo flipDTFT qua trục tung. Đây là tính chất của hàm thuần ảo (câu C) 2. Biên độ của DTFT và của flipDTFT là bằng nhau,pha của chúng là đối nhau. Đó là tính chất của hàm lẻ -thời gian (câu d) Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 18 Xử Lý Tín Hiệu Số & Hệ Thống Project 3 : DTFT TDTFT OF INFINITE-LENGTH SIGNAL 3.1 Tín hiệu mũ. jw n Sử dụng hàm freqz để tính toán DTFT X (e ) của tín hiệu x[n] = (0.9) u[n] . 3.1.a Vẽ đồ thị biên độ, pha của theo tần số w trong khoảng [ -p , p ] - Trước hết ta lấy vector giá trị biến đổi HH, tần số lấy mẫu WW (trên đường tròn đơn vị [0, 2p ] ) dung hàm freqz(b,a,n,’whole’); DTFT x[n] = a nu[n] ¬¾¾ ® X (e jw ) = 1 (3.1) 1 - ae - jw a = [1,-0.9]; b = [1]; N = 512; [HH,WW] = freqz(b,a,N,'whole'); subplot (221);plot(WW,abs(HH)); grid, title('MAGNITUDE RESPONSE BY FREQZ'),xlabel('NORMALIZED FREQUENCY'), ylabel('|X(e^-jw)|') subplot(222);plot(WW,angle(HH)*180/pi); grid, title('PHASE RESPONSE BY FREQZ' ),xlabel('NORMALIZED FREQUENCY'), ylabel('PHASE (DEGREE)') - Đồ thị biên độ, pha theo tần số w trong khoảng [ 0, 2p ] - Biến đổi HH, WW : chuyển vector tần số lấy mẫu từ khoảng [0, 2p ] về [ -p , p ] mid = ceil (N/2) + 1; WW(mid:N)= WW(mid:N) - 2*pi; WW = fftshift(WW); Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 19 Xử Lý Tín Hiệu Số & Hệ Thống HH2 = [HH(mid : N)' HH(1 : mid -1)']; HH = HH2'; - Vẽ lại đồ thị biên độ và đò thị pha : subplot (211);plot(WW,abs(HH)); grid, title('MAGNITUDE RESPONSE BY FREQZ'),xlabel('NORMALIZED FREQUENCY'), ylabel('|X(e^-jw)|') subplot(212);plot(WW,angle(HH)*180/pi); grid, title('PHASE RESPONSE BY FREQZ' ),xlabel('NORMALIZED FREQUENCY'), ylabel('PHASE (DEGREE)') 3.1.b Biên độ là hàm chẵn và pha là hàm lẻ của w: 1 1 ; pha Þ Biên độ éë X (e jw ) ùû = - jv 1 - ae 1 - 2a cos(w ) + a 2 a sin w jw : f ( X (e )) = - arctan( ) 1 - a cos w X (e jw ) = 3.1.c Ta vẽ lại đồ thị biên độ, pha của tín hiệu ra theo tần số sử dụng công thức 3.1.b AA = 1./sqrt(1 - 2*0.9*cos(WW) + 0.9^2); PP = atan((-0.9*sin(WW))./(1-0.9*cos(WW))); subplot (223);plot(WW,AA); grid, title('MAGNITUDE RESPONSE BY FORMULAS'),xlabel('NORMALIZED FREQUENCY'), ylabel('|H(e^-jw)|') subplot (224);plot(WW,PP*180/pi); grid, title('PHASE RESPONSE BY FORMULAS'),xlabel('NORMALIZED FREQUENCY'), ylabel('PHASE (DEGREE)') Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 20
- Xem thêm -