Figure 7.3

GUIDE: Mathematics of the Discrete Fourier Transform (DFT). 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.

<< 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 ‘http://www-ccrma.stanford.edu/~jos/eps/dftfilter.eps'; hold off;

<< Previous page  TOC  INDEX  Next page >>

 

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