代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 5.22 \n\n'); banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % -------------------------------------------------------------------
% 512-point DFT of a real-valued sequence x(n)
%
% -------------------------------------------------------------------
k = [0:511];
Xk_DFT = [zeros(1, 512)]; Xk_DFT(0+1) = 20; Xk_DFT(5+1) = 20+j*30; Xk_DFT(32+1) = -10+j*15; Xk_DFT(152+1) = 17+j*23;
Xk_DFT(256+1) = 30; Xk_DFT(360+1) = 17-j*23; Xk_DFT(480+1) = -10-j*15; Xk_DFT(507+1) = 20-j*30; N = length(Xk_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); EXk = sum(abs(Xk_DFT).^2)/N x = real(idft(Xk_DFT, N));
n = [0:N-1]; figure('NumberTitle', 'off', 'Name', 'P5.22 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=512'); 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=512'); grid on;
subplot(2,2,2); stem(k, realXk_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of x(n), N=512'); 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=512'); grid on; figure('NumberTitle', 'off', 'Name', 'P5.22 x(n)')
set(gcf,'Color','white');
%subplot(3,1,1);
stem(n, x);
xlabel('n'); ylabel('x(n)');
title('x(n), N=512'); grid on;

  运行结果:

把alpha beta, k1、k2、k3求出来后,得知512点DFT有8个点不为零,如下图

进行IDFT,得到时间域序列x(n)

时间信号的能量

最新文章

  1. android 自定义View Caused by: java.lang.ClassNotFoundException: Didn&#39;t find class
  2. PHP5.4开启zend opcache缓存
  3. 基于MINA构建简单高性能的NIO应用
  4. CentOS下搭建NFS服务器总结
  5. 禁用mac Command w
  6. .net学习笔记---HttpHandle与HttpModule
  7. 编译php时出现xsl错误的解决方法
  8. centos6.5安装图形界面,windows远程linux图形界面
  9. Android小记之--ClickableSpan
  10. CentOS下yum使用代理的设置
  11. 执行指定iframe页面的脚本
  12. SQL注入简单介绍
  13. git上传到版本库报错:Pull is not possible because you have unmerged files(已解决)
  14. Luogu P3181 [HAOI2016]找相同字符 广义$SAM$
  15. 创建和使用动态链接库(转)vs2008 vs2010
  16. Qt 布局管理
  17. DRF的解析器和渲染器
  18. ORA-03001,GATHER_TABLE_STATS数据库自动收集统计信息报错
  19. HPUX and AIX SSH 互信
  20. 实现类似printf这样的函数

热门文章

  1. javascript 跑马灯
  2. Java的Properties类使用
  3. Java反射《三》获取属性
  4. python 学习 map /reduce
  5. shell脚本中出现图形化界面
  6. docker 将正在运行的容器打包为镜像
  7. PC/FORTH 判定
  8. vue-2-计算属性和观察者
  9. react与vue的对比
  10. base64加密解密c++代码