Bài tập Xử lý tín hiệu số và hệ thống
Còn một trường hợp mà chưa được đề cập đến : trường hợp dùng DTFT cho1 phần tử hữu hạn của một tín hiệu vô hạn. Trường hợp này thường được gặp trong thực tế vì chúng ta thường ghi lại (hoặc lưu trữ) một phần nhỏ của tín hiệu để phân tích. Dù sao, chúng ta cũng muốn suy ra tín hiệu đúng từ 1 đoạn tín hiệu giới hạn.
Hàm DTFT là đủ để biểu diễn DTFT của mọi tín hiệu hữu hạn. Một ví dụ đơn giản của cửa sổ nhận được bằng việc lấy ra L điểm đầu tiên của lũy thừa dài vô han . Khi độ dài tăng lên thì kết quả sẽ hội tụ đến dạng giải tích được đưa ra trước đó cho .
Với a=0.977, vẽ log của độ lớn DTFT cho vài độ dài khác nhau L=32,64,128 và 256.
n số ngoài lân cận biên độ giảm hẳn, độ lớn xâp xỉ 0.5 - Điều này được kiểm chứng băng việc vẽ đồ thị biên độ tín hiệu ra từ hàm freqz z = 0.95 * exp(sqrt(-1) * 3 * pi/5); a = [1,-z]; b = [1]; N = 512; [HH,WW] = freqz(b,a,N,'whole'); plot(WW,abs(HH)); grid, title('MAGNITUDE RESPONSE BY FREQZ'),xlabel('NORMALIZED FREQUENCY'), ylabel('|H(e^-jw)|') %peak location of magnitude MaxMagnitue = max(abs(HH)) PeakLocation = WW(find(abs(HH) == MaxMagnitue)) MaxMagnitue = 19.9091 and PeakLocation = 1.8890 3.2.d Thay đổi biên độ của số phức r = 0.975, 0.95, 0.9, 0.8 , ta thực hiện vẽ đồ thị biên độ tín hiệu ra từ biến đổi DTFT z = 0.975 * exp(sqrt(-1) * 3 * pi /5);a = [1,-z];b = [1];N = 512; [HH,WW] = freqz(b,a,N,'whole'); subplot(221);plot(WW,20*log10(abs(HH))); grid, title('MAGNITUDE RESPONSE WITH r = 0.975'),xlabel('FREQUENCY (Hertz)'), ylabel('MAGNITUDE (dB)') z = 0.95 * exp(sqrt(-1) * 3 * pi /5);a = [1,-z];b = [1];N = 512; [HH,WW] = freqz(b,a,N,'whole'); subplot(222);plot(WW,20*log10(abs(HH))); grid, title('MAGNITUDE RESPONSE WITH r = 0.95'),xlabel('FREQUENCY (Hertz)'), ylabel('MAGNITUDE (dB)') z = 0.9 * exp(sqrt(-1) * 3 * pi /5);a = [1,-z];b = [1];N = 512; [HH,WW] = freqz(b,a,N,'whole'); subplot(223);plot(WW,20*log10(abs(HH))); grid, title('MAGNITUDE RESPONSE WITH r = 0.9'),xlabel('FREQUENCY (Hertz)'), ylabel('MAGNITUDE (dB)') z = 0.8 * exp(sqrt(-1) * 3 * pi /5);a = [1,-z];b = [1];N = 512; [HH,WW] = freqz(b,a,N,'whole'); subplot(224);plot(WW,20*log10(abs(HH))); grid, title('MAGNITUDE RESPONSE WITH r = 0.8'),xlabel('FREQUENCY (Hertz)'), ylabel('MAGNITUDE (dB)') - Độ rộng tại -3dB: + r = 0.975 , = 3.485 – 0.2823 = 3.2027; + r = 0.95 , = 3.51 - 0.2577 = 3.2523; + r = 0.9 , = 3.559 - 0.2086 = 3.3504; + r = 0.8 , = 3.682 - 0.0859 = 3.5961; - Xây dựng công thức lien hệ độ rộng tại -3dB với r : 3.3 Decaying Signusoid. Tính DTFT của tín hiệu thực : bằng hàm freqz và tính liên hợp phức ; 3.3.a Ta đã có biến đổi DTFT : (3-6) Sử dụng hàm [Y,W] = freqz(b,a,n) để lấy ra vector tần số mẫu W. Với A = 3,r = 0.95, , ta tính được b = [3*cos(pi/3) , -3*0.95*cos(2*pi/7 - pi/3)] = [1.5 1.0412] a = [1, -2*0.95*cos(2*pi/7), 0.95^2] = [1.0000 -1.1846 0.9025] b = [3*cos(pi/3) , -3*0.95*cos(2*pi/7 + pi/3)]; a = [1, -2*0.95*cos(2*pi/7), 0.95^2] ; n = 512; [Y,W] = freqz(b,a,n); - Đồ thị biên độ, pha của tín hiệu ra theo tần số subplot (211);plot(W,abs(Y)); grid, title('MAGNITUDE RESPONSE BY FREQZ'),xlabel('NORMALIZED FREQUENCY'), ylabel('|Y(e^-jw)|') subplot(212);plot(W,angle(Y)*180/pi); grid, title('PHASE RESPONSE BY FREQZ' ),xlabel('NORMALIZED FREQUENCY'), ylabel('PHASE (DEGREE)') 3.3.b Ta có - Tách tín hiệu = ½( + ) (3-3); - Sử dụng freqz tính DTFT của tín hiệu : [XX,W1] = freqz([3*exp(sqrt(-1)*pi/3)], [1, -0.95 * exp(2*pi*sqrt(-1)/7)],n*2,'whole'); X1 = XX(1:n); %lấy ra tín hiệu ra trong khoảng tần số X2 = XX(n+1:2*n); %lấy ra tín hiệu ra trong khoảng tần số Temp = real(X2) - imag(X2)*sqrt(-1); X2 = Temp; Y2 = 1/2*(X1 + X2(n:-1:1)); subplot (211);plot(W,abs(Y2)); grid, title('MAGNITUDE RESPONSE BY VIA THE CONJUGATE’),xlabel(‘FREQUENCY'), ylabel('|Y(e^-jw)|') subplot(212);plot(W,angle(Y2)*180/pi); grid, title('PHASE RESPONSE BY VIA THE CONJUGATE’),xlabel(‘FREQUENCY'), ylabel('PHASE (DEGREE)') Đồ thị biên độ và đồ thị pha thu được từ 2 cách tính DTFT là giống nhau. Về số liệu sử dụng matlab kiểm tra : abs(Y2)-abs(Y), angle(Y2)-angle(Y) Thì sai số thu được từ 2 phương pháp tính là không đáng kể. Project 4 WINDOWING FOR DTFT Trong project này, có hai đặc tính của DTFT được minh họa : tính điều chế và đặc tính cửa sổ. Tính chất điều biến, có hiệu lực trong 1 trường hợp đặc biệt của hàm cửa sổ ở chỗ miền tần số chập lại tới 1 tần số đơn giản. 4.1 Modulation Property Nhiều đặc tính DTFT có ý nghĩa và ứng dụng hữu ích, một trong số đó là biến điệu biên độ, có thể tìm thấy trong truyền thông và radar. Nếu tín hiệu x[n] được nhân với một hàm sin phức einω0 , thì kết quả biến đổi là một sự dịch chuyển ω0; Xeiω trở thành X(eiω-ω0). Chứng minh khẳng định trên với tín hiệu xung hình chữ nhật với độ dài L=21 và tần số lọc ω0=2π/√31. Vẽ đồ thị kết quả nhờ DTFT. Kiểm tra đỉnh của biên độ DTFT đã được dịch chuyển một đoạn ω0. Thử các giá trị ω0>2π để biểu diễn tính tuần hoàn của DTFT Xét tín hiệu xung chữ nhật định nghĩa là r[n]=1 0 ≤n <l 0 elsewhere Có phổ tần số là : Xét tín hiệu Có phổ tần số là : Vậy ta đã có Với tín hiệu đang xét ta có ω0=2π/√31 ,L=21 (l=20) : Đồ thị biên độ r=[0:20/1024:20]; l=21;omega0=2*pi/sqrt(31);[H,W]=DTFT(r,1025); R=sin(l*(W-omega0)/2)./sin((W-omega0)/2).* exp(j*(l-1)*(W-omega0)/2);plot(G,abs(R) từ đồ thị ta thấy đỉnh của DTFT tín hiệu đã dịch sang phải một khoảng Với ω01=ω0+2π ta có đồ thị mới r=[0:20/1024:20]; l=21;omega0=2*pi/sqrt(31);[H,W]=DTFT(r,1025); W=W+2*pi; R=sin(l*(W-omega0)/2)./sin((W-omega0)/2).* exp(j*(l-1)*(W-omega0)/2); plot(G,abs(R)),grid on Từ đồ thị ta thấy đồ thị của DTFT tín hiệu xn*einω0 cũng giống đồ thị của DTFT tín hiệu xn*ein(ω0+2π) chứng tỏ DTFT tuần hoàn với chu kì 2π Lặp lại nhưng nhân với tín hiệu cosin cùng tần số x[n]= r[n]*cos(n) Đây chính là điều chế biên độ hai dải biên. Theo kết quả thu được ta dự đoán đồ thị sẽ là đối xứng nhau qua trục tung và có biên độ bằng 0.5 so với đồ thị DTFT của r[n]. Ngoài ra còn có hiện tượng điều dịch chuyển tần số về 2 phía trục hoành một khoảng là 1. Đồ thị biểu diễn biên độ. 4.2 Windowing Gives Frequency-Domain Convolution Đặc tính cửa sổ của DTFT của tích hai tín hiệu trong miền thời gian là tích chập trong miền tần số tuần hoàn của tích phân Fourier của chúng. yn=xn.wn↔ Yeiω=12π*-ππXeiωW(eiω-θ)dθ Không thể tính được tích chập trong miền tần số theo công thức trên vì các giá trị của chúng ta là rời rạc. Tuy nhiên, một trường hợp mà kết quả trong miền tần số có thể xác định như một công thức – khi các tín hiệu không bị tác động của hàm cửa sổ là một hàm sin phức (ví dụ x[n]=einθ0). Khi đó X(eiω) là một xung trong tần số.,sự nhân chập suy ra Yeiω=W(ei(ω-θ0). Đó là tính chất điều chế. Điều này dẫn tới biểu diễn DTFT của hàm cửa sổ dịch chuyển theo tần số. Tạo hàm cửa sổ hình sin với θ0=2π/√31: xn=rn.einθ0 ở đây r[n] là xung hình chữ nhật có độ dài là L=32. Xung hình chữ nhật này có thể tạo nhờ hàm ones hoặc boxcar. Vẽ DTFT và chú ý rằng đỉnh bị dịch chuyển tới ω=θ0. Đồ thị biên độ R(eiω) Đồ thị biên độ X(eiω)teta=2*pi/sqrt(31); x=ones(1,32); y=[0:1:31]; z=exp(i*teta*y).*x; [H,W]=DTFT(z,1024); plot(W,abs(H)),grid on; xlabel('NORMALIZED FREQUENCY'),ylabel('Abs(H(w))'),grid on Từ đồ thị ta thấy đỉnh biên độ đã dịch chuyển một khoảng θ0=2π31=1.129. Tín hiệu xung hình sin einθ0 tác động vào tín hiệu w[n]=r[n] đã cho ta tín hiệu y[n] mà DTFT của nó đã dịch chuyển một khoảng θ0 phù hợp với công thức Yeiω=W(ei(ω-θ0). Đồng thời biên độ vẫn như nhau vì eiω=1 Cho hàm cửa sổ sau gọi là cửa sổ Hann. wn=12-12cos(2πLn)0 elsewhere 0≤n<L Áp dụng hàm cửa sổ ở trên vào 1 hàm sin có tần số là ω0=2π31. Vẽ đồ thị thời gian và tính DTFT của nó sau đó vẽ đồ thị biên độ. Đồ thị trong miền thời gian Đồ thị biên độ DTFT của tín hiệu w[n]nn=[0:1:31]; x=1/2-1/2*cos(2*pi/32*nn); [H,W]=DTFT(x,1024); plot(W,abs(H)); xlabel('NORMALIZED FREQUENCY'),ylabel('Abs(H(w))'),grid on Đồ thị DTFT của tín hiệu x[n]=w[n].sin(2π31n)nn=[0:1:31]; x=(1/2-1/2*cos(2*pi/32*nn)).*sin(2*pi/sqrt(31)*nn); [H,W]=DTFT(x,1024); plot(W,abs(H)); xlabel('NORMALIZED FREQUENCY'),ylabel('Abs(H(w))'),grid on Do tác động vào tín hiệu w[n] một tín hiệu dạng sin nên tín hiêu thu được sẽ bị dịch chuyển về 2 phía của trục hoành một khoảng bằng tần số của tín hiệu hình sin. Đồng thời biên độ của tín hiệu cũng bị giảm đi một nửa vì sinx=eix-e-ix2 DTFT của hàm cửa số Hann có thể được viết bởi 3 hàm asinc. Điều này được thực hiện bằng cách coi w[n] như một cửa sổ chữ nhật tác động vào tín hiệu 12-12cos(2πLn) và sau đó sử dụng đặc tính điều biến. Ta thấy đồ thị biên độ W(eiω) được tạo ra từ đồ thị của tín hiệu xung chữ nhật như sau: Ta chia tín hiệu wn=12-12cos(2πL) thành 3 tín hiệu w1n=12 , w2n=-14expi2πnL, w3n=-14expi2πnL khi đó w[n]=w1[n]+w2[n]+w3[n]. Do đó Weiω=W1eiω+W2eiω+W3eiω. Biên độ của W1eiω sẽ bằng ½ biên độ của tín hiệu xung chữ nhật R(eiω) còn pha thì giống nhau, trong khi đó biên độ của W2eiω và W3eiω bằng ¼ của Reiω và pha của chúng thì lần lượt bị dịch chuyển một khoảng 2πLvà-2πL. Ta biểu diễn chúng dưới dạng số phức như sau : Reiω= , W1eiω=, W2eiω= , W3eiω=. Khi đó Cho ta thấy cùng pha với DTFT của tín hiệu w[n]. xem hình trang 6 Khi chúng ta cho tín hiệu vn=12+12cos(2πnL) Sự thay đổi dấu trừ thành dấu cộng ở đây là quan trọng. Vẽ đồ thị trong miền thời gian theo n với -10 ≤n ≤L+10 ở đây L=32. Đồ thị biên độ DTFT 4.3 Convergence to True DTFT Còn một trường hợp mà chưa được đề cập đến : trường hợp dùng DTFT cho1 phần tử hữu hạn của một tín hiệu vô hạn. Trường hợp này thường được gặp trong thực tế vì chúng ta thường ghi lại (hoặc lưu trữ) một phần nhỏ của tín hiệu để phân tích. Dù sao, chúng ta cũng muốn suy ra tín hiệu đúng từ 1 đoạn tín hiệu giới hạn. Hàm DTFT là đủ để biểu diễn DTFT của mọi tín hiệu hữu hạn. Một ví dụ đơn giản của cửa sổ nhận được bằng việc lấy ra L điểm đầu tiên của lũy thừa dài vô han xn=anu[n]. Khi độ dài tăng lên thì kết quả sẽ hội tụ đến dạng giải tích được đưa ra trước đó cho X(eiω). Với a=0.977, vẽ log của độ lớn DTFT cho vài độ dài khác nhau L=32,64,128 và 256. a=0.977;L=32; nn=[0:1:L-1]; x=a.^nn; [X,W]=DTFT(x,2048); subplot(221),plot(W,abs(X)),grid on xlabel('L=32'); L=64; nn=[0:1:L-1]; x=a.^nn; [X,W]=DTFT(x,2048); subplot(222),plot(W,abs(X)),grid on xlabel('L=64'); L=128; nn=[0:1:L-1]; x=a.^nn; [X,W]=DTFT(x,2048); subplot(223),plot(W,abs(X)),grid on, xlabel('L=128'); L=256; nn=[0:1:L-1]; x=a.^nn; [X,W]=DTFT(x,2048*4); subplot(224),plot(W,abs(X)),grid on, xlabel('L=256'); Ta thấy khi số lượng điểm được tăng lên thì đồ thị càng tiến gần đến đồ thi DTFT thu được từ công thức tính trực tiếp.
File đính kèm:
- Bài tập Xử lý tín hiệu số và hệ thống.doc