% This routine visualizes the effect of zero-padding % on the DTFS of a sinusoidal DT signal. % Author: Andreas Muschinski % Date: 9 March 2008 clear all % Sampling period: 1 millisecond Ts = 0.001; % Number of samples: L L = 20; % Number of padded zeros: M M = 280; % Total number of discrete times: N = L+M; % Fundamental period of continuous-time signal: Tc = 10.e-3; % Fundamental frequency of CT signal: omegac = 2*pi/Tc; % Amplitude: A = 2.; % Discrete times: n = [0:N-1]'; x = 0*n; % Discrete frequencies: k_orig = [0:L-1]; k_zp = [0:N-1]'; % Physical times: tn = n*Ts; x(1:L) = A * cos(omegac * tn(1:L)); x_orig = x(1:L); x_zp = x; % --------- DFTS and inverse DFTS X_orig = fft(x_orig); X_zp = fft(x_zp); omega_k_orig = (2*pi/L) * k_orig; omega_k_zp = (2*pi/N) * k_zp; % From 0 to pi (Nyquist interval): omega_k_zp_Ny = omega_k_zp(1:N/2); X_zp_Ny = X_zp(1:N/2); [C,I] = max(abs(X_zp_Ny)); imax = I(1); 2*pi/omega_k_zp_Ny(imax) %=================== Plot data figure(1) stem(n,x) title('Zero-padded, sinusoidal DT signal') xlabel('n') ylabel('x[n]') figure(2) stem(k_orig,abs(X_orig)) title('Magnitude of DTFS of original DT signal') xlabel('k') ylabel('|X[k]|') figure(3) stem(k_zp,abs(X_zp)) title('Magnitude of DTFS of zero-padded DT signal') xlabel('k') ylabel('|X[k]|') figure(4) stem(omega_k_zp,abs(X_zp),'b') hold on stem(omega_k_orig,abs(X_orig),'r','LineWidth',2) hold off title('Magnitude of DTFS of sinusoidal DT signal (before and after zero-padding)') legend('original DT signal','zero-padded DT signal') xlabel('\omega_k') ylabel('X[k]')