Home > matlab code, Uncategorized, youtube demo code > Zero Padding Tutorial M-file

This is the code I used in the youtube tutorial on zero padding (see http://youtu.be/7yYJZfc5q-I).

```% This tutorial attempts to explain how zero-padding works.
% You should already have some exposure to how the DFT works and
% be have seen the effects of zero paddding and windowing.
%

fs = 1000;
T = 1/fs;
N = 1000; % Create a signal with N samples = 1 second
n = 0:N-1; % sample numbers
t = n*T; % sampling times over a one second duration.
x = cos(2*pi*3*t);

%plot the magnitude spectrum
X_mags = abs(fft(x));

subplot(2,1,1)
plot(x)
xlabel('Samples');
ylabel('Amplitude')
title('Time-Domain Signal');

num_disp_bins = 15;
subplot(2,1,2)
plot([0:num_disp_bins-1], X_mags(1:num_disp_bins));
hold on
plot([0:num_disp_bins-1], X_mags(1:num_disp_bins),'k.');
hold off
xlabel('Frequency Bins');
ylabel('Magnitude');
title('Frequency Content Magnitudes');

%Illustrate Basis functions
plot(n,x,'k')
xlabel('Samples');
ylabel('Amplitude')
for k = 0 : 20
plot(x,'kx')
hold on
cos_basis = cos(2*pi*k*n/N);
sin_basis = sin(2*pi*k*n/N);

plot(n,cos_basis,'r')
plot(n,sin_basis,'g')
title({['Signal being anlaysed (black) with basis functions'...
' that have ' num2str(k) ' cyles over '  ...
num2str(N) ' samples']...
['Cosine basis function shown in red, Sine in green']})
hold off
pause
end

```