# Figure 7.3

## GUIDE: Mathematics of the Discrete Fourier Transform (DFT) - Julius O. Smith III. Figure 7.3

It appears that you are using AdBlocking software. The cost of running this website is covered by advertisements. If you like it please feel free to a small amount of money to secure the future of this website. NOTE: THIS DOCUMENT IS OBSOLETE, PLEASE CHECK THE NEW VERSION: "Mathematics of the Discrete Fourier Transform (DFT), with Audio Applications --- Second Edition", by Julius O. Smith III, W3K Publishing, 2007, ISBN 978-0-9745607-4-8. - Copyright © 2017-09-28 by Julius O. Smith III - Center for Computer Research in Music and Acoustics (CCRMA), Stanford University

<< Previous page  TOC  INDEX  Next page >>

## Figure 7.3

Below is the Matlab for Fig. 7.3:

```% Parameters (sampling rate = 1)
N = 16;               % DFT length
k = N/4;              % bin where DFT filter is centered
wk = 2*pi*k/N;        % normalized radian center-frequency for DFT_k()
wStep = 2*pi/N;
w = [0:wStep:2*pi - wStep]; % DFT frequency grid

interp = 10;
N2 = interp*N;            % Denser grid showing “arbitrary” frequencies
w2Step = 2*pi/N2;
w2 = [0:w2Step:2pi - w2Step]; % Extra dense frequency grid
X = (1 - exp(j(w2-wk)N)) ./ (1 - exp(j(w2-wk)));
% slightly offset to avoid divide by zero at wk
X(1+k*interp) = N;   % Fix divide-by-zero point (overwrite “NaN”)

% Plot spectral magnitude
clf;
magX = abs(X);
magXd = magX(1:interp:N2); % DFT frequencies only
subplot(2,1,1);
plot(w2,magX,‘-’); hold on; grid;
plot(w,magXd,’*‘);         % Show DFT sample points
title(‘DFT Amplitude Response at k=N/4’);
xlabel(‘Normalized Radian Frequency (radians per sample)’);
ylabel(‘Magnitude (Linear)’);
text(-1,20,‘a)’);

% Same thing on a dB scale
magXdb = 20*log10(magX);       % Spectral magnitude in dB
% Since the zeros go to minus infinity, clip at -60 dB:
magXdb = max(magXdb,-60ones(1,N2));
magXddb = magXdb(1:interp:N2); % DFT frequencies only
subplot(2,1,2);
hold off; plot(w2,magXdb,‘-’); hold on; plot(w,magXddb,’’); grid;
xlabel(‘Normalized Radian Frequency (radians per sample)’);
ylabel(‘Magnitude (dB)’);
text(-1,40,‘b)’);
print -deps ‘https://ccrma.stanford.edu/~jos//eps/dftfilter.eps';
hold off;```

<< Previous page  TOC  INDEX  Next page >>

© 1998-2019 – Nicola Asuni - Tecnick.com - All rights reserved.
about - disclaimer - privacy