《DSP using MATLAB》示例Example5.6

Posted 沧海一粟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《DSP using MATLAB》示例Example5.6相关的知识,希望对你有一定的参考价值。

代码:

x = [1, 1, 1, 1]; N = 4; 
X_DFT = dft(x,N);                                      % DFT of x(n)

magX_DFT = abs(X_DFT), phaX_DFT = angle(X_DFT)*180/pi; realX_DFT = real(X_DFT); imagX_DFT = imag(X_DFT);
angX_DFT = angle(X_DFT);

n = 0:(N - 1);
k = 0:1000; w = (pi/500)*k;                            % [0,2pi] axis divided into 501 points.
%k = 0:500; w = (pi/500)*k;                            % [0,pi] axis divided into 501 points.
X_DTFT = x * (exp(-j*pi/500)) .^ (n\'*k);               % DTFT of x(n)

magX_DTFT = abs(X_DTFT); angX_DTFT = angle(X_DTFT); realX_DTFT = real(X_DTFT); imagX_DTFT = imag(X_DTFT);

figure(\'NumberTitle\', \'off\', \'Name\', \'Exameple5.6 x sequence\')
set(gcf,\'Color\',\'white\'); 
stem(n,x); title(\'x sequence\'); axis([0,4,-0.5,1.5]);
xlabel(\'n\'); ylabel(\'x(n)\'); grid on;


%% --------------------------------------------------------------
%%        START X_DTFT\'s  mag ang real imag
%% --------------------------------------------------------------
figure(\'NumberTitle\', \'off\', \'Name\', \'X_DTFT its Magnitude and Angle, Real and Imaginary Part\');
set(gcf,\'Color\',\'white\'); 
subplot(2,2,1); plot(w/pi,magX_DTFT); grid on;  % axis([-2,2,0,15]); 
title(\'Magnitude Part\');
xlabel(\'frequency in \\pi units\'); ylabel(\'Magnitude  |X\\_DTFT|\'); 
subplot(2,2,3); plot(w/pi, angX_DTFT*180/pi); grid on;  % axis([-2,2,-1,1]);
title(\'Angle Part\');
xlabel(\'frequency in \\pi units\'); ylabel(\'Degrees\'); %axis([-200,200,0,2]);

subplot(\'2,2,2\'); plot(w/pi, realX_DTFT); grid on;
title(\'Real Part\');
xlabel(\'frequency in \\pi units\'); ylabel(\'Real\');
subplot(\'2,2,4\'); plot(w/pi, imagX_DTFT); grid on;
title(\'Imaginary Part\');
xlabel(\'frequency in \\pi units\'); ylabel(\'Imaginary\');
%% --------------------------------------------------------------
%%        END X_DTFT\'s  mag ang real imag
%% --------------------------------------------------------------


%% --------------------------------------------------------------
%%        START X_DFT\'s  mag ang real imag
%% --------------------------------------------------------------
figure(\'NumberTitle\', \'off\', \'Name\', \'Example5.6 X_DFT its Magnitude and Angle\');
set(gcf,\'Color\',\'white\'); 
subplot(2,1,1); stem(n,magX_DFT); hold on; plot(2*w/pi,magX_DTFT,\'--\'); hold off;
grid on;   axis([-0.5,4.2,-1,5]); 
title(\'Magnitude Part of the DFT: N = 4\');
xlabel(\'k\'); ylabel(\'Magnitude  |X\\_DFT|\'); 
subplot(2,1,2); stem(n, phaX_DFT); hold on; plot(2*w/pi,angX_DTFT*180/pi,\'--\'); hold off;
grid on;   axis([-0.5,4.2,-200,200]);
title(\'Angle Part of the DFT: N = 4\');
xlabel(\'k\'); ylabel(\'Degrees\'); %axis([-200,200,0,2]);

%subplot(\'2,2,2\'); stem(n, realX_DFT); grid on;
%title(\'Real Part\');
%xlabel(\'frequency in \\pi units\'); ylabel(\'Real\');
%subplot(\'2,2,4\'); stem(n, imagX_DFT); grid on;
%title(\'Imaginary Part\');
%xlabel(\'frequency in \\pi units\'); ylabel(\'Imaginary\');
%% --------------------------------------------------------------
%%        END X_DFT\'s  mag ang real imag
%% --------------------------------------------------------------

  运行结果:

 

以上是关于《DSP using MATLAB》示例Example5.6的主要内容,如果未能解决你的问题,请参考以下文章

《DSP using MATLAB》示例Example 6.20

《DSP using MATLAB》示例Example5.17

《DSP using MATLAB》示例Example5.18

《DSP using MATLAB》示例Example5.21

DSP using MATLAB 示例Example3.17

《DSP using MATLAB》示例Example 8.8