代码:

  1. %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. %% Output Info about this m-file
  3. fprintf('\n***********************************************************\n');
  4. fprintf(' <DSP using MATLAB> Problem 5.15 \n\n');
  5.  
  6. banner();
  7. %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  8.  
  9. % ------------------------------------------------------------------------
  10. % 1 x(n) = [1, -2, 3, 1,-2,3, 1, -2, 3, 1, -2, 3,1,-2,3,1,-2,3]
  11. % N=18 N=2uv
  12. % x(n) = x(n+v)
  13. % ------------------------------------------------------------------------
  14.  
  15. nn1 = [0:17];
  16. xx1 = [1, -2, 3, 1, -2, 3, 1, -2, 3, 1, -2, 3, 1, -2, 3, 1, -2, 3];
  17. NN1 = length(xx1); % length is 18
  18.  
  19. %m = mod_1(nn1, NN1);
  20. %x = [xx1 zeros(1, 0)]; % padding zeros
  21. %n = [nn1 max(nn1)+1:max(nn1)+6];
  22. x = xx1;
  23. n = nn1;
  24.  
  25. figure('NumberTitle', 'off', 'Name', 'P5.15.1 x(n)')
  26. set(gcf,'Color','white');
  27. subplot(2,1,1); stem(nn1, xx1);
  28. xlabel('n'); ylabel('x(n)');
  29. title('x(n) ori sequence'); grid on;
  30. subplot(2,1,2); stem(n, x);
  31. xlabel('n'); ylabel('x(n)');
  32. title('x(n) padding 0 zeros'); grid on;
  33.  
  34. %% =============================================================================
  35. %% DTFT X(w) of xn sequence, w=[0:2pi],
  36. %% =============================================================================
  37. MM = 500;
  38. [Xw_DTFT, w] = dtft1(x, n, MM);
  39.  
  40. magXw_DTFT = abs(Xw_DTFT); angXw_DTFT = angle(Xw_DTFT)/pi;
  41. realXw_DTFT = real(Xw_DTFT); imagXw_DTFT = imag(Xw_DTFT);
  42.  
  43. %% --------------------------------------------------------------
  44. %% START X_DTFT's mag ang real imag
  45. %% --------------------------------------------------------------
  46. figure('NumberTitle', 'off', 'Name', 'P5.15.1 X(w) DTFT of x(n)');
  47. set(gcf,'Color','white');
  48. subplot(2,2,1); plot(w/pi,magXw_DTFT); grid on; % axis([-2,2,0,15]);
  49. title('Magnitude Part');
  50. xlabel('frequency in \pi units'); ylabel('Magnitude |X\_DTFT|');
  51. subplot(2,2,3); plot(w/pi, angXw_DTFT); grid on; % axis([-2,2,-1,1]);
  52. title('Angle Part');
  53. xlabel('frequency in \pi units'); ylabel('Rad \pi'); %axis([-200,200,0,2]);
  54.  
  55. subplot('2,2,2'); plot(w/pi, realXw_DTFT); grid on;
  56. title('Real Part');
  57. xlabel('frequency in \pi units'); ylabel('Real');
  58. subplot('2,2,4'); plot(w/pi, imagXw_DTFT); grid on;
  59. title('Imaginary Part');
  60. xlabel('frequency in \pi units'); ylabel('Imaginary');
  61. %% --------------------------------------------------------------
  62. %% END X_DTFT's mag ang real imag
  63. %% --------------------------------------------------------------
  64.  
  65. %% ------------------------------------------------------------------
  66. %% DFT(k) of xn sequence, k=[0:N-1]
  67. %% w=2pi*k/N k=Nw/(2pi)
  68. %% ------------------------------------------------------------------
  69. N1 = length(x);
  70. k1 = [0 : N1-1];
  71. %k2 = [-N : N-1];
  72. %k3 = [-N/2 : N/2];
  73. Xk_DFT = dft(x, N1); % DFT
  74. magXk_DFT = abs( [ Xk_DFT ] ); % DFT magnitude
  75. angXk_DFT = angle( [Xk_DFT] )/pi; % DFT angle
  76. realXk_DFT = real(Xk_DFT); imagXk_DFT = imag(Xk_DFT);
  77.  
  78. figure('NumberTitle', 'off', 'Name', 'P5.15.1 DFT(k) of x(n)')
  79. set(gcf,'Color','white');
  80. subplot(2,1,1); stem(k1, magXk_DFT); hold on; plot(N1*w/(2*pi), magXw_DTFT,'r--'); hold off;
  81. %axis([-N/2, N/2, -0.5, 50.5]);
  82. xlabel('k'); ylabel('magnitude(k)');
  83. title('DFT magnitude of x(n), N=18'); grid on;
  84. subplot(2,1,2); stem(k1, angXk_DFT); hold on; plot(N1*w/(2*pi), angXw_DTFT,'r--'); hold off;
  85. %axis([-N/2, N/2, -0.5, 50.5]);
  86. xlabel('k'); ylabel('angle(k)');
  87. title('DFT angle of x(n), N=18'); grid on;

  运行结果:

第2小题:

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

  1. 《DSP using MATLAB》Problem 7.15

    用Kaiser窗方法设计一个台阶状滤波器. 代码: %% +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  2. 《DSP using MATLAB》Problem 6.15

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

  3. 《DSP using MATLAB》Problem 4.15

    只会做前两个, 代码: %% ---------------------------------------------------------------------------- %% Outpu ...

  4. 《DSP using MATLAB》Problem 2.15

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

  5. 《DSP using MATLAB》Problem 8.15

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

  6. 《DSP using MATLAB》Problem 5.38

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

  7. 《DSP using MATLAB》Problem 5.31

    第3小题: 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Out ...

  8. 《DSP using MATLAB》Problem 5.22

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...

  9. 《DSP using MATLAB》Problem 5.21

    证明: 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

随机推荐

  1. PHP开发者的Linux学习之路

    谈起一个高效动态网站的构建,那就不得不提到LAMP,即Linux操作系统.Apache网络服务器.Mysql数据库.Perl.PHP或Python编程语言等开源产品所组成的网站架构框架,其最大的优势是 ...

  2. JDBC连接数据库:单线程、多线程、批处理插入数据的对比

    一.单线程(单条循环)插入50000条记录: 每执行一次就要访问一次数据库 import java.sql.Connection; import java.sql.DriverManager; imp ...

  3. svn服务器搭建及使用(一)

    这里郑重感谢分享作者的辛苦:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html Subversion是优秀的版本控制工 ...

  4. 每天CSS学习之transform

    transform是CSS3的一个属性,其作用是用来进行2D或3D变换. 一.2D变换 1. translate(x-offset , y-offset) translate的作用就是用作位置的移动. ...

  5. memset详解 设置无穷大INF

    memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); ...

  6. JavaScript+CSS+DIV实现表格变色示例

    <!DOCTYPE html> <html> <head> <title>colortable.html</title> <scrip ...

  7. Androi开发 ---Fragment片段布局案例

    效果图: 1.MainActivity.java package com.example.android_activity; import android.app.Activity; import a ...

  8. JavaWeb基础-Jsp基础语法

    jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...

  9. php +apache +mysql 配置笔记

    2013年11月5日 14:27:46 php +apache +mysql 配置笔记 mysql 正常安装 忽略. 1,配置笔记:安装apache 的成功标志是:安装完成之后,在浏览器输入http: ...

  10. Linux可重入函数和线程安全的区别与联系(转)

    *****可重入函数 函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入. 当程序运行到某一个函数的时候,可能因为硬件中断或者异常而使得在用户正在执行的代码暂时终端转而 ...