《DSP using MATLAB》Problem 5.14

Posted ky027wh-sx

tags:

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

技术分享图片

        说明:这两个小题的数学证明过程都不会,欢迎博友赐教。

        直接上代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%            Output Info about this m-file
fprintf(‘
***********************************************************
‘);
fprintf(‘        <DSP using MATLAB> Problem 5.14 

‘);

banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

% ------------------------------------------------------------------------
%              1  x(n) = [1, 2, 3, 1,2,3, 1, 2, 3, 1, 2, 3]   N=12  v=3
%                   x(n) = x(n+v)  N=4v                                  
% ------------------------------------------------------------------------
 
nn1 = [0:11];
xx1 = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];
NN1 = length(xx1);                                % length is 12


%m = mod_1(nn1, NN1);
%x = [xx1 zeros(1, 0)];                        % padding zeros
%n = [nn1 max(nn1)+1:max(nn1)+6];
x = xx1;
n = nn1;

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘P5.14.1 x(n)‘)
set(gcf,‘Color‘,‘white‘); 
subplot(2,1,1); stem(nn1, xx1);
xlabel(‘n‘); ylabel(‘x(n)‘);
title(‘x(n) ori sequence‘);  grid on;
subplot(2,1,2); stem(n, x);
xlabel(‘n‘); ylabel(‘x(n)‘);
title(‘x(n) padding 0 zeros‘);  grid on;


%% =============================================================================
%%                 DTFT X(w) of xn sequence, w=[0:2pi], 
%% =============================================================================
MM = 500;
[Xw_DTFT, w] = dtft1(x, n, MM);

 magXw_DTFT = abs(Xw_DTFT);   angXw_DTFT = angle(Xw_DTFT)/pi; 
realXw_DTFT = real(Xw_DTFT); imagXw_DTFT = imag(Xw_DTFT);


%% --------------------------------------------------------------
%%        START X_DTFT‘s  mag ang real imag
%% --------------------------------------------------------------
figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘P5.14.1 X(w) DTFT of x(n)‘);
set(gcf,‘Color‘,‘white‘); 
subplot(2,2,1); plot(w/pi,magXw_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, angXw_DTFT); grid on;  % axis([-2,2,-1,1]);
title(‘Angle Part‘);
xlabel(‘frequency in pi units‘); ylabel(‘Rad pi‘); %axis([-200,200,0,2]);

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


%% ------------------------------------------------------------------
%%                 DFT(k) of xn sequence, k=[0:N-1]
%%                      w=2pi*k/N       k=Nw/(2pi)
%% ------------------------------------------------------------------
N1 = length(x);
k1 = [0 : N1-1];
%k2 = [-N : N-1];
%k3 = [-N/2 : N/2];
Xk_DFT = dft(x, N1);                                         % DFT
    magXk_DFT = abs( [ Xk_DFT ] );                          % DFT magnitude
    angXk_DFT = angle( [Xk_DFT] )/pi;                       % DFT angle
   realXk_DFT = real(Xk_DFT); imagXk_DFT = imag(Xk_DFT);

figure(‘NumberTitle‘, ‘off‘, ‘Name‘, ‘P5.14.1 DFT(k) of x(n)‘)
set(gcf,‘Color‘,‘white‘); 
subplot(2,1,1); stem(k1, magXk_DFT); hold on; plot(N1*w/(2*pi), magXw_DTFT,‘r--‘); hold off;
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel(‘k‘); ylabel(‘magnitude(k)‘);
title(‘DFT magnitude of x(n), N=12‘);  grid on;
subplot(2,1,2); stem(k1, angXk_DFT);  hold on; plot(N1*w/(2*pi), angXw_DTFT,‘r--‘); hold off;
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel(‘k‘); ylabel(‘angle(k)‘);
title(‘DFT angle of x(n), N=12‘);  grid on;

  运行结果:

       原始序列长度为N=12,是4的倍数,这里v=3。

技术分享图片

技术分享图片

技术分享图片

           从图看出,k为4的倍数时,X(k)为非零值。

           第2小题类似,这里直接上图:

技术分享图片

技术分享图片

技术分享图片

 

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

《DSP using MATLAB》Problem 5.7

《DSP using MATLAB》Problem 6.7

《DSP using MATLAB》Problem 6.8

《DSP using MATLAB》Problem 3.12

《DSP using MATLAB》Problem 4.17

《DSP using MATLAB》Problem 3.5