代码:
%% ------------------------------------------------------------------------ %% Output Info about this m-file fprintf(‘\n***********************************************************\n‘); fprintf(‘ <DSP using MATLAB> Problem 3.4 \n\n‘); banner(); %% ------------------------------------------------------------------------ % ---------------------------------------------- % Rectangle Window sequence % ---------------------------------------------- M = 101; n1_start = 0; n1_end = M; n1 = [n1_start : n1_end - 1]; x1 = ones(1, length(n1)); figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 x1(n) Rectangle‘); set(gcf,‘Color‘,‘white‘); stem(n1, x1); xlabel(‘n‘); ylabel(‘x1‘); title(sprintf(‘x1(n) sequence, M = %d‘, M)); grid on; MM = 500; k = [-MM:MM]; % [-pi, pi] %k = [0:M]; % [0, pi] w = (pi/MM) * k; [X1] = dtft(x1, n1, w); magX1 = abs(X1); angX1 = angle(X1); realX1 = real(X1); imagX1 = imag(X1); figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 DTFT of Rm(n)‘); set(gcf,‘Color‘,‘white‘); subplot(2,1,1); plot(w/pi, magX1/max(magX1)); grid on; title(‘Magnitude Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Magnitude‘); subplot(2,1,2); plot(w/pi, angX1); grid on; title(‘Angle Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Radians‘); % -------------------------------------------------- % Hanning Window Sequence % -------------------------------------------------- %n2_start = -9; n2_end = 15; %n2 = [n2_start : n2_end]; n2 = n1; x2 = 0.5 * (1 - cos(2*pi*n1/(M-1))) .* x1; figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 x2(n) Hanning‘); set(gcf,‘Color‘,‘white‘); stem(n2, x2); xlabel(‘n‘); ylabel(‘x2‘); title(sprintf(‘x2(n) sequence, M = %d‘, M)); grid on; MM = 500; k = [-MM:MM]; % [-pi, pi] %k = [0:M]; % [0, pi] w = (pi/MM) * k; [X2] = dtft(x2, n2, w); magX2 = abs(X2); angX2 = angle(X2); realX2 = real(X2); imagX2 = imag(X2); figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 DTFT of Cm(n)‘);; set(gcf,‘Color‘,‘white‘); subplot(2,1,1); plot(w/pi, magX2/max(magX2)); grid on; title(‘Magnitude Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Magnitude‘); subplot(2,1,2); plot(w/pi, angX2); grid on; title(‘Angle Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Radians‘); % -------------------------------------------------- % Triangular Window Sequence % -------------------------------------------------- %n3_start = -3; n3_end = 10; %n3 = [n3_start : n3_end]; n3 = n1; x3 = (1 - abs(M-1-2*n3)/(M-1)) .* x1; figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 x3(n) Triangular‘); set(gcf,‘Color‘,‘white‘); stem(n3, x3); xlabel(‘n‘); ylabel(‘x3‘); title(sprintf(‘x3(n) sequence, M = %d‘, M)); grid on; MM = 500; k = [-MM:MM]; % [-pi, pi] %k = [0:M]; % [0, pi] w = (pi/MM) * k; [X3] = dtft(x3, n3, w); magX3 = abs(X3); angX3 = angle(X3); realX3= real(X3); imagX3 = imag(X3); figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 DTFT of Tm(n)‘);; set(gcf,‘Color‘,‘white‘); subplot(2,1,1); plot(w/pi, magX3/max(magX3)); grid on; title(‘Magnitude Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Magnitude‘); subplot(2,1,2); plot(w/pi, angX3); grid on; title(‘Angle Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Radians‘); % --------------------------------------------- % Hamming Window sequence % --------------------------------------------- %n4_start = 0; n4_end = 50; %n4 = [n4_start : n4_end]; n4 = n1; x4 = (0.54 - 0.46 * cos(2*pi*n4/(M-1))) .* x1; figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 x4(n) Hamming‘); set(gcf,‘Color‘,‘white‘); stem(n4, x4, ‘filled‘); xlabel(‘n‘); ylabel(‘x4‘); title(sprintf(‘x4(n) sequence, M = %d‘, M)); grid on; MM = 500; k = [-MM:MM]; % [-pi, pi] %k = [0:M]; % [0, pi] w = (pi/MM) * k; [X4] = dtft(x4, n4, w); magX4 = abs(X4); angX4 = angle(X4); realX4= real(X4); imagX4 = imag(X4); figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘Problem 3.4 DTFT of Hm(n)‘);; set(gcf,‘Color‘,‘white‘); subplot(2,1,1); plot(w/pi, magX4/max(magX4)); grid on; title(‘Magnitude Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Magnitude‘); subplot(2,1,2); plot(w/pi, angX4); grid on; title(‘Angle Part‘); xlabel(‘frequency in \pi units‘); ylabel(‘Radians‘);
运行结果:
矩形窗:
汉宁窗:
三角窗:
汉明窗: