《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
%% --------------------------------------------------------------

  运行结果:

时间: 2024-11-05 16:02:51

《DSP using MATLAB》示例Example5.6的相关文章

DSP using MATLAB 示例Example3.21

代码: % Discrete-time Signal x1(n) % Ts = 0.0002; n = -25:1:25; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nTs)); Ts = 0.001; n = -5:1:5; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nTs)); % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = x * sinc(Fs*

DSP using MATLAB示例Example3.18

代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Continuous-time Fourier Transform Wmax = 2*pi*2000; K = 500; k = 0:1:K; % index array k for frequencies W = k*Wmax/K; % freqency between 0 and +pi, [0,pi] axis divided i

DSP using MATLAB 示例 Example3.19

代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Discrete-time Signal Ts = 0.0002; n = -25:1:25; x = exp(-1000*abs(n*Ts)); % Discrete-time Fourier Transform %Wmax = 2*pi*2000; K = 500; k = 0:1:K; w = pi*k/K; % index ar

DSP using MATLAB 示例 Example3.15

上代码: subplot(1,1,1); b = 1; a = [1, -0.8]; n = [0:100]; x = cos(0.05*pi*n); y = filter(b,a,x); figure('NumberTitle', 'off', 'Name', 'Input and Output sequence'); set(gcf,'Color','white'); subplot(2,1,1); stem(n,x); title('Input sequence'); xlabel('n'

DSP using MATlAB 示例Example2.10

上代码 % noise sequence 1 x = [3, 11, 7, 0, -1, 4, 2]; nx = [-3:3]; % given signal x(n) [y,ny] = sigshift(x,nx,2); % obtain x(n-2) set(gcf,'Color','white') subplot(2,1,1);stem(nx,x); title('sequence x(n)'); xlabel('n');ylabel('x(n)'); grid on subplot(2,

DSP using MATLAB 示例Example3.17

DSP using MATLAB示例Example3.6

代码: n = [-5:5]; x = (-0.9).^n; % x(n) = k = -200:200; w = (pi/100)*k; % [0,pi] axis divided into 101 points. X = x * (exp(-j*pi/100)) .^ (n'*k); magX = abs(X); angX = angle(X); realX = real(X); imagX = imag(X); set(gcf,'Color','white'); subplot(2,2,1

DSP using MATLAB 示例Example2.12

代码: b = [1]; a = [1, -0.9]; n = [-5:50]; h = impz(b,a,n); set(gcf,'Color','white'); %subplot(2,1,1); stem(n,h); title('Impulse Response'); xlabel('n'); ylabel('h(n)'); grid on; x = stepseq(0, -5, 50) - stepseq(10, -5, 50) y = filter(b, a, x); figure;

DSP using MATLAB 示例Example2.4

n = [0:10]; x = stepseq(0,0,10) - stepseq(10,0,10); [xe,xo,m] = evenodd(x,n); set(gcf,'Color',[1,1,1]) % 改变坐标外围背景颜色 stem(n,x); title('Rectangular Pulse'); xlabel('n'); ylabel('x(n)') ; axis([-10,10,0,1.2]) grid on figure set(gcf,'Color',[1,1,1]) stem

DSP using MATLAB 示例Example3.9

用到的性质 上代码: n = 0:100; x = cos(pi*n/2); k = -100:100; w = (pi/100)*k; % freqency between -pi and +pi , [0,pi] axis divided into 101 points. X = x * (exp(-j*pi/100)) .^ (n'*k); % DTFT of x % signal multiplied y = exp(j*pi*n/4) .* x; % signal multiplied