function [X]=plot_dtft(x,n) % Plot Discrete-Time Fourier Transform of a sequence % 摘自“數位訊號處理—使用Matlab”, 余兆棠 陳順智 譯(Ingle and Proakis 原著),滄海圖書 % Example: %>> h=[1/3 1/3 1/3]; n=[0 1 2]; % 3-point running averager %>> [X]=plot_dtft(h,n); w=-2*pi: pi/100:2*pi; % -2*pi ~ 2*pi 間取401點 k= -200:200; % k= (100/pi)*w % X=x*(exp(-j*pi/100)).^(n'*k); 或 X=x*exp(-j*(pi/100)*n'*k); X=x*exp(-j*n'*w); % 以上兩種寫法亦可 magX = abs(X); angX = angle(X); figure; subplot(2,1,1); plot(w/pi,magX);grid; xlabel('frequency in pi units'); ylabel('|X|'); title('Magnitude Part') subplot(2,1,2); plot(w/pi,angX);grid xlabel('frequency in pi units'); ylabel('radians');title('Angle Part')