Xử lý tín hiệu số & Hệ thống - Nguyễn Duy Bình
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
error('DTFT: # data samles cannot exceed # freq samples')
end
W=(2*pi/N)*[0:(N-1)]';
mid=ceil(N/2)+1;
W(mid:N)=W(mid:N)-2*pi;
W=fftshift(W);
H=fftshift(fft(h,N));
Chúng ta không cần phải đưa vào biến độ dài L, vì nó sẽ được xác định bằng tính độ dài vector h.
Ngoài ra, khi tín DTFT là hàm tuần hoàn vùng từ là vùng tần số âm, nên phải sử dụng
hàm fftshift để sắp xếp lại miền tần số theo thứ tự. Sử dụng DTFT tính vector H, vẽ đồ thị trên
miền [- ] với chú ý là H(1) là tần số lấy mẫu ứng với
(3-6) Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 27 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, 2 / 7 , / 3 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 2 /7 /3 2 /73 32[ ] 3(0.95) cos( ) [ ] (0.95 ) [ ] (0.95 ) [ ]7 3 2 2 n j j n j j nny n u n e e u n e e u n = ½( [n]x + *[n]x ) * *[n] ( ) [n] ( )DTFT DTFTj jx X e x X e (3-3); * 1( ) ( ) ( ) 2 j j jY e X e X e - Sử dụng freqz tính DTFT của tín hiệu [n]x : [XX,W1] = freqz([3*exp(sqrt(-1)*pi/3)], [1, -0.95 * exp(2*pi*sqrt(-1)/7)],n*2,'whole'); Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 28 X1 = XX(1:n); %lấy ra tín hiệu ra ( )jX e trong khoảng tần số [0, ] X2 = XX(n+1:2*n); %lấy ra tín hiệu ra *( )jX e trong khoảng tần số [0, ] 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 Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 29 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 , thì kết quả biến đổi là một sự dịch chuyển ; trở thành . a. 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 . 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 . Thử các giá trị để 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]= Có phổ tần số là : -1 2 1 -2 1 2 sin( )( ) sin( ) lii lR e e Xét tín hiệu 0[ ] [ ]* inx n r n e Có phổ tần số là : 0 0 0 0 ( )1 1 ( ) ( ) 0 0 1( ) [ ]* * 1 ill l in ini in in i eX e x n e e e e e 0 0 0 0 0 0 0 ( ) ( ) ( ) 0 ( 1)( )2 2 2 2 ( ) ( ) ( ) 02 2 2 ( )sin( ) 2* ( )sin( ) 2 il il il i l i i i l e e e e e e e Vậy ta đã có 0( )( ) ( )iiX e R e Với tín hiệu đang xét ta có ,L=21 (l=20) : Đồ thị biên độ ( )iR e 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) Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 30 từ đồ thị ta thấy đỉnh của DTFT tín hiệu [ ]x n đã dịch sang phải một khoảng 0 1.129 Với 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 cũng giống đồ thị của DTFT tín hiệu chứng tỏ DTFT tuần hoàn với chu kì Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 31 b. 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) 1 1 0 0 1( ) [ ]* cos( ) * ( ) * 2 l l i in in in in inX e x n e n e e e e ( 1) ( 1)1 ( 1) ( 1) ( 1) ( 1) 0 1 1 1 1( ) ( ) 2 2 1 1 il ill in in i i e ee e e e 1 1( 1) ( 1) 2 2 ( 1) ( 1)sin( sin(1 2 2( )1 12 sin( ) sin( ) 2 2 l li i l l e e l l Đâ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. a. 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]= . Khi đó là một xung trong tần số.,sự nhân chập suy ra . Đó 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 : Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 32 ở đâ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 . Đồ thị biên độ Đồ thị biên độ 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 Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 33 Từ đồ thị ta thấy đỉnh biên độ đã dịch chuyển một khoảng . Tín hiệu xung hình sin 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 phù hợp với công thức . Đồng thời biên độ vẫn như nhau vì b. Cho hàm cửa sổ sau gọi là cửa sổ Hann. Áp dụng hàm cửa sổ ở trên vào 1 hàm sin có tần số là . Vẽ đồ thị thời gian và tính DTFT của nó sau đó vẽ đồ thị biên độ. Đồ thị trong miền thời gian Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 34 Đồ 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]. 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); Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 35 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ì c. 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 như một cửa sổ chữ nhật tác động vào tín hiệu và sau đó sử dụng đặc tính điều biến. Ta thấy đồ thị biên độ được tạo ra từ đồ thị của tín hiệu xung chữ nhật như sau: Ta chia tín hiệu thành 3 tín hiệu khi đó w[n]=w1[n]+w2[n]+w3[n]. Do đó . Biên độ của sẽ bằng ½ biên độ của tín hiệu xung chữ nhật còn pha thì giống nhau, trong khi đó biên độ của và bằng ¼ của và pha của chúng thì lần lượt bị dịch chuyển một khoảng . Ta biểu diễn chúng dưới dạng số phức như sau : , , , Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 36 . Khi đó 2 2 2( ) ( ) ( ) (1 os( )) 2 4 4 2 i R R R RR e c L L L Cho ta thấy ( )iR e cùng pha với DTFT của tín hiệu w[n]. xem hình trang 6 d. Khi chúng ta cho tín hiệu 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 ở đây L=32. Đồ thị biên độ DTFT Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 37 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 . 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. 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'); Xử Lý Tín Hiệu Số & Hệ Thống Nguyễn Duy Bình-Kỹ sư chất lượng cao K53 38 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:
- xu_ly_tin_hieu_so_he_thong_nguyen_duy_binh.pdf