第1小题

代码:

%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 5.34 \n\n'); banner();
%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % -------------------------------------------------------------------------------------
% X(k) is DFTs of real-valued sequence x(n)
% x(n)=A*cos(2*pi*l*n/N) n=[0:N-1]
%
% 1 x1(n) = 3cos(0.04*pi*n) n=[0:200-1]
% -------------------------------------------------------------------------------------
N = 200; l = 2;
n1 = [0:N-1];
x1 = 3*cos(2*pi*l*n1/100); figure('NumberTitle', 'off', 'Name', 'P5.34.1 x(n), N=200')
set(gcf,'Color','white');
stem(n1, x1);
xlabel('n'); ylabel('x(n)');
title('x(n)=3cos(0.04*pi*n)'); grid on; k1 = [0:N-1];
Xk_DFT = fft(x1, N);
N1 = length(Xk_DFT); % length 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.34.1 X(k), DFT of x(n) N=200')
set(gcf,'Color','white');
subplot(2,2,1); stem(k1, magXk_DFT);
xlabel('k'); ylabel('magnitude(k)');
title('magnitude DFT of x(n)'); grid on;
subplot(2,2,3); stem(k1, angXk_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('angle(k)');
title('angle DFT of x(n)'); grid on;
subplot(2,2,2); stem(k1, realXk_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of x(n)'); grid on;
subplot(2,2,4); stem(k1, imagXk_DFT);
%axis([-N/2, N/2, -0.5, 50.5]);
xlabel('k'); ylabel('imag (k)');
title('imag DFT of x(n)'); grid on; figure('NumberTitle', 'off', 'Name', 'P5.34.1 real X(k), N=200')
set(gcf,'Color','white');
stem(k1, realXk_DFT);
xlabel('k'); ylabel('real (k)');
title('real DFT of x(n)'); grid on;

  运行结果:

N=200个样点共包含4个周期:

序列的DFT

DFT的实部序列

由上图可知,有两条孤立谱线,位于k=L=4和k=N-L=200-4=196处,幅度值AN/2=3×200/2=300。

最新文章

  1. JavaScript常用字符串操作方法总结
  2. git commit 代码时提示: Warning: Your console font probably doesn‘t support Unicode.
  3. VHDL的参数写在一个vhd文件里
  4. Bowtie2
  5. Mybatis 学习-3
  6. des算法的C#实现
  7. EXCEL 操作
  8. 自定义Dictionary支持线程安全
  9. j2ee学习笔记 Filter过滤器
  10. IE的@cc_on条件编译
  11. HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误 #Reprinted#
  12. setTranslucent
  13. Spring-bean作用域scope详解
  14. Animate与transform的使用
  15. Python 猜数游戏
  16. Alienware R8外星人台式机安装双系统(WIN10+Ubuntu)的总结
  17. &lt;c:forEach&gt;可以默认的把以逗号分隔的字符串作为一个集合来遍历
  18. java类文件
  19. C#中的readonly跟const用法小结
  20. json包

热门文章

  1. Vue 全家桶
  2. 【原创】连接数据库MySQL,读取、显示、修改数据
  3. Springboot+MyBatis+mysql+jsp页面跳转详细示例
  4. 关于makefile的生成原理以及make相关命令的使用
  5. 进阶ES6 点滴认知
  6. LINQ(数据库操作增、删、改及并发管理)
  7. uiautomator2 获取APP Toast内容
  8. 1.横向滚动条,要设置两个div包裹. 2. 点击切换视频或者图片. overflow . overflow-x
  9. 解决 java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L的问题
  10. python day12 ——1.生成器2.生成器表达式 3.列表推导式