证明:

代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 5.21 \n\n'); banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % ---------------------------------------------------------------------------------
%
% Parseval relation
% sum[abs(x(n))^2] = sum[abs(X(k))^2]/N
%
% ---------------------------------------------------------------------------------
n = [0:10];
x = [5, 4, 3, 2, 1, 0, 0, 1, 2, 3, 4]; % N=11 sequence
N = length(x); Exn = sum(abs(x).^2) m1 = -5; N1 = 12;
n1 = [0:N1-1]; m2 = 8; N2 = 15;
n2 = [0:N2-1]; % -----------------------------------------------------
% 1st way to get circular shift---time domain
% -----------------------------------------------------
y1_1 = cirshftt(x, m1, N1);
y2_1 = cirshftt(x, m2, N2); % --------------------------------------------------------
% 2rd way to get circular shift --- freq domain
% --------------------------------------------------------
y1_2 = cirshftf(x, m1, N1);
y2_2 = cirshftf(x, m2, N2); figure('NumberTitle', 'off', 'Name', 'P5.21.a x(n) and its cir shift')
set(gcf,'Color','white');
subplot(3,1,1); stem(n, x);
xlabel('n'); ylabel('x(n)');
title('x(n), N=11'); grid on;
subplot(3,1,2); stem(n1, y1_1);
xlabel('n'); ylabel('y(n)');
title('TIME domain circular shift x(n), m=-5, N=12'); grid on;
subplot(3,1,3); stem(n1, y1_2);
xlabel('n'); ylabel('y(n)');
title('FREQ domain circular shift x(n), m=-5, N=12'); grid on;
axis([0, N1, 0, 6]); figure('NumberTitle', 'off', 'Name', 'P5.21.b x(n) and its cir shift')
set(gcf,'Color','white');
subplot(3,1,1); stem(n, x);
xlabel('n'); ylabel('x(n)');
title('x(n), N=11'); grid on;
subplot(3,1,2); stem(n2, y2_1);
xlabel('n'); ylabel('y(n)');
title('TIME domain circular shift x(n), m=8, N=15'); grid on;
subplot(3,1,3); stem(n2, y2_2);
xlabel('n'); ylabel('y(n)');
title('FREQ domain circular shift x(n), m=8, N=15'); grid on;
axis([0, N2-1, 0, 6]); % ----------------------------------------------------
% DFT of sequence
% ---------------------------------------------------- Xk_DFT = dft(x, N);
k = n; 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); EXk = sum(magXk_DFT .^ 2)/N Y11k_DFT = dft(y1_1, N1);
k1 = n1; magY11k_DFT = abs( [ Y11k_DFT ] ); % DFT magnitude
angY11k_DFT = angle( [Y11k_DFT] )/pi; % DFT angle
realY11k_DFT = real(Y11k_DFT);
imagY11k_DFT = imag(Y11k_DFT); EY11k = sum(magY11k_DFT.^2)/N1 Y21k_DFT = dft(y2_1, N2);
k2 = n2; magY21k_DFT = abs( [ Y21k_DFT ] ); % DFT magnitude
angY21k_DFT = angle( [Y21k_DFT] )/pi; % DFT angle
realY21k_DFT = real(Y21k_DFT);
imagY21k_DFT = imag(Y21k_DFT); EY21k = sum(magY21k_DFT.^2)/N2 figure('NumberTitle', 'off', 'Name', 'P5.21 X(k), DFT of x(n)')
set(gcf,'Color','white');
subplot(2,2,1); stem(k, magXk_DFT);
xlabel('k'); ylabel('magnitude(k)');
title('magnitude DFT of x(n), N=11'); grid on;
subplot(2,2,3); stem(k, angXk_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('angle(k)');
title('angle DFT of x(n), N=11'); grid on;
subplot(2,2,2); stem(k, realXk_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of x(n), N=11'); grid on;
subplot(2,2,4); stem(k, imagXk_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('imag (k)');
title('imag DFT of x(n), N=11'); grid on; figure('NumberTitle', 'off', 'Name', 'P5.21 Y11(k), DFT of x((n+5))12')
set(gcf,'Color','white');
subplot(2,2,1); stem(k1, magY11k_DFT);
xlabel('k'); ylabel('magnitude(k)');
title('magnitude DFT of y11(n), N=12'); grid on;
subplot(2,2,3); stem(k1, angY11k_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('angle(k)');
title('angle DFT of y11(n), N=12'); grid on;
subplot(2,2,2); stem(k1, realY11k_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of y11(n), N=12'); grid on;
subplot(2,2,4); stem(k1, imagY11k_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('imag (k)');
title('imag DFT of y11(n), N=12'); grid on; figure('NumberTitle', 'off', 'Name', 'P5.21 Y21(k), DFT of x((n-8))15')
set(gcf,'Color','white');
subplot(2,2,1); stem(k2, magY21k_DFT);
xlabel('k'); ylabel('magnitude(k)');
title('magnitude DFT of y21(n), N=15'); grid on;
subplot(2,2,3); stem(k2, angY21k_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('angle(k)');
title('angle DFT of y21(n), N=15'); grid on;
subplot(2,2,2); stem(k2, realY21k_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of y21(n), N=15'); grid on;
subplot(2,2,4); stem(k2, imagY21k_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('imag (k)');
title('imag DFT of y21(n), N=15'); grid on;

  运行结果:

序列的圆周移位

原始序列x(n)的DFT

圆周移位序列1的DFT

圆周移位序列2的DFT

上图可知,时域的能量和频域的能量相等。

《DSP using MATLAB》Problem 5.21的更多相关文章

  1. 《DSP using MATLAB》Problem 6.21

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  2. 《DSP using MATLAB》Problem 4.21

    快到龙抬头,居然下雪了,天空飘起了雪花,温度下降了近20°. 代码: %% -------------------------------------------------------------- ...

  3. 《DSP using MATLAB》Problem 8.21

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  4. 《DSP using MATLAB》Problem 3.21

    模拟信号经过不同的采样率进行采样后,得到不同的数字角频率,如下: 三种Fs,采样后的信号的谱 重建模拟信号,这里只显示由第1种Fs=0.01采样后序列进行重建,采用zoh.foh和spline三种方法 ...

  5. 《DSP using MATLAB》Problem 7.27

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  6. 《DSP using MATLAB》Problem 7.26

    注意:高通的线性相位FIR滤波器,不能是第2类,所以其长度必须为奇数.这里取M=31,过渡带里采样值抄书上的. 代码: %% +++++++++++++++++++++++++++++++++++++ ...

  7. 《DSP using MATLAB》Problem 7.24

    又到清明时节,…… 注意:带阻滤波器不能用第2类线性相位滤波器实现,我们采用第1类,长度为基数,选M=61 代码: %% +++++++++++++++++++++++++++++++++++++++ ...

  8. 《DSP using MATLAB》Problem 7.23

    %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info a ...

  9. 《DSP using MATLAB》Problem 7.16

    使用一种固定窗函数法设计带通滤波器. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

随机推荐

  1. Win10系列:VC++ Direct3D模板介绍2

    (3)CreateDeviceResources函数 CreateDeviceResources函数默认添加在CubeRenderer.cpp源文件中,此函数用于创建着色器和立体图形顶点.接下来分别介 ...

  2. BIOS、BootLoader、uboot对比

    BIOS BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统".其实,它是一组固化到计算机内 ...

  3. oracle查看编码以及修改编码

    oracle的编码一直是个很重要的问题,以前也总结的写过,但都忘了,今天再在这写一下. 首先查看oracle数据库的编码 SQL>select * from nls_database_param ...

  4. Java面向对象的三大特性之一 多态

    多态: 子类重写父类方法 1)位置:子类和父类中有同名的方法 2)方法名相同,返回类型和修饰符相同,参数列表相同       方法体不同 多态的优势和应用场合 多态:同一个引用类型,使用不同的实例而执 ...

  5. Top k问题的讨论(三种方法的java实现及适用范围)

    在很多的笔试和面试中,喜欢考察Top K.下面从自身的经验给出三种实现方式及实用范围. 合并法 这种方法适用于几个数组有序的情况,来求Top k.时间复杂度为O(k*m).(m:为数组的个数).具体实 ...

  6. getchar getche getch的区别

    getchar 由宏实现:#define getchar() getc(stdin). getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘 ...

  7. python中各种遇到的函数

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(lis ...

  8. tf.nn.conv2d

    tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) input: 指需要做卷积的输入图像,它 ...

  9. 深入理解java虚拟机----java技术体系(一)

    1.java技术体系 举例: class文件格式:如下图所示,java源代码可以根据不同的编译器可以编译成不同的代码.即可以自定义语言规范比如beanshell,并编写代码; 然后自己编写java编译 ...

  10. centos7安装配置tomcat

    第一步:下载Tomcat8压缩包 进入 http://tomcat.apache.org/download-80.cgi 下载tar.gz压缩包 第二步:用ftp工具把压缩包上传到/home/data ...