代码:

  1. %% ------------------------------------------------------------------------
  2. %% Output Info about this m-file
  3. fprintf('\n***********************************************************\n');
  4. fprintf(' <DSP using MATLAB> Exameple 9.4 \n\n');
  5.  
  6. time_stamp = datestr(now, 31);
  7. [wkd1, wkd2] = weekday(today, 'long');
  8. fprintf(' Now is %20s, and it is %7s \n\n', time_stamp, wkd2);
  9. %% ------------------------------------------------------------------------
  10.  
  11. n = 0:256; k1 = 64; k2 = k1+32; m = 0:(k2-k1);
  12.  
  13. %% -----------------------------------------------------------------
  14. %% Plot
  15. %% -----------------------------------------------------------------
  16. Hf1 = figure('units', 'inches', 'position', [1, 1, 8, 6], ...
  17. 'paperunits', 'inches', 'paperposition', [0, 0, 6, 4], ...
  18. 'NumberTitle', 'off', 'Name', 'Exameple 9.4');
  19. set(gcf,'Color','white');
  20.  
  21. TF = 10;
  22. % (a) Original signal
  23. x = cos(pi*n); subplot(2, 2, 1);
  24. Ha = stem(m, x(m+k1+1), 'g', 'filled'); axis([-1, 33, -1.1, 1.1]); grid on;
  25. set(Ha, 'markersize', 2); xlabel('n'); ylabel('Amplitude');
  26. title('Original Sequence x(n)', 'fontsize', TF);
  27. set(gca, 'xtick', [0, 16, 32]);
  28. set(gca, 'ytick', [-1, 0, 1]);
  29.  
  30. % (b) Interpolation by D = 2
  31. I = 2; y = interp(x, I); subplot(2, 2, 2);
  32. Hb = stem(m, y(m+k1*I+1), 'c', 'filled'); axis([-1, 33, -1.1, 1.1]); grid on;
  33. set(Hb, 'markersize', 2); xlabel('n'); ylabel('Amplitude');
  34. title('Interpolated by I = 2', 'fontsize', TF);
  35. set(gca, 'xtick', [0, 16, 32]);
  36. set(gca, 'ytick', [-1, 0, 1]);
  37.  
  38. % (c) Interpolation by I = 4
  39. I = 4; y = interp(x, I); subplot(2, 2, 3);
  40. Hc = stem(m, y(m+k1*I+1), 'r', 'filled'); axis([-1, 33, -1.1, 1.1]); grid on;
  41. set(Hc, 'markersize', 2); xlabel('n'); ylabel('Amplitude');
  42. title('Interpolated by I = 4', 'fontsize', TF);
  43. set(gca, 'xtick', [0, 16, 32]);
  44. set(gca, 'ytick', [-1, 0, 1]);
  45.  
  46. % (d) Interpolation by I = 8
  47. I = 8; y = interp(x, I); subplot(2, 2, 4);
  48. Hd = stem(m, y(m+k1*I+1), 'm', 'filled'); axis([-1, 33, -1.1, 1.1]); grid on;
  49. set(Hd, 'markersize', 2); xlabel('n'); ylabel('Amplitude');
  50. title('Interpolated by I = 8', 'fontsize', TF);
  51. set(gca, 'xtick', [0, 16, 32]);
  52. set(gca, 'ytick', [-1, 0, 1]);

  运行结果:

从图看,I的所有三个数值下的插值序列是合适的,在更高的采样率上展示了原始正弦信号x(n)。I=8的例子里,

插值序列从形状上看不像是精确的正弦信号。这可能是由于低通滤波器和理想低通滤波器有差距而造成的。

《DSP using MATLAB》示例 Example 9.4的更多相关文章

  1. 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*a ...

  2. DSP using MATLAB 示例 Example3.19

    代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Discrete-time Signa ...

  3. DSP using MATLAB示例Example3.18

    代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Continuous-time Fou ...

  4. DSP using MATLAB 示例Example3.23

    代码: % Discrete-time Signal x1(n) : Ts = 0.0002 Ts = 0.0002; n = -25:1:25; nTs = n*Ts; x1 = exp(-1000 ...

  5. DSP using MATLAB 示例Example3.22

    代码: % Discrete-time Signal x2(n) Ts = 0.001; n = -5:1:5; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nT ...

  6. DSP using MATLAB 示例Example3.17

  7. DSP using MATLAB示例Example3.16

    代码: b = [0.0181, 0.0543, 0.0543, 0.0181]; % filter coefficient array b a = [1.0000, -1.7600, 1.1829, ...

  8. 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); figur ...

  9. DSP using MATLAB 示例 Example3.13

    上代码: w = [0:1:500]*pi/500; % freqency between 0 and +pi, [0,pi] axis divided into 501 points. H = ex ...

  10. DSP using MATLAB 示例 Example3.12

    用到的性质 代码: n = -5:10; x = sin(pi*n/2); k = -100:100; w = (pi/100)*k; % freqency between -pi and +pi , ...

随机推荐

  1. quartz动态job工具类 serviceh注入问题

    package com.heyi.yanglao.common.job.util; import cn.hutool.core.date.DateUtil; import lombok.extern. ...

  2. Webstorm: cannot find any declarations

    起因 在调整项目关系时,将根目录的.idea文件删除,导致了对相对路径的资源无法直接command + click进行跳转 尝试 1. 新建quick-link (无效) 2. invalidate ...

  3. (asp.net)百度浏览器Cookie的神奇bug

    HttpCookie cookie = new HttpCookie("version"); cookie.Value = "1.1"; cookie.Expi ...

  4. stdclass

    $item = new stdClass();      $item->goods_id = $item_goods->getID();      $item->goods_name ...

  5. Poi中getPhysicalNumberOfCells 与 getLastCellNum的差异

    getPhysicalNumberOfCells 与 getLastCellNum的区别 用org.apache.poi的包做excel导入,无意间发明若是excel文件中有空列,空列后面的数据全部读 ...

  6. (转)浅谈SQL Server 对于内存的管理

    简介 理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理. 二级存储(secondary storage) ...

  7. int数组的下标为n

    int 类型的数组 先定义int n = 5: 定义int a[n] = {0}; 编译怎么不通过啊?n必须为常量如果想实现你说的,应该用宏#define n 5int a[n]={0};这样就可以了 ...

  8. 值类型的TryParse

    值类型(Struct(如:DateTime).基本类型(如:double).枚举类型)的TryParse方法,通常可使用该方法将“字符串”转换为当前类型,并out出.比如:日期格式的字符串   转换为 ...

  9. 局部标签(gcc对c的扩展)

    每个语句内嵌表达式都是一个可以声明局部跳转标签的域.一个局部标签只是一个标识符:你可以使用通常的goto语句跳到它--但是只能在它所属的域内这么做.一个局部标签的申明如下:__label__ labe ...

  10. day33 Python与金融量化分析(三)

    第三部分 实现简单的量化框架 框架内容: 开始时间.结束时间.现金.持仓数据 获取历史数据 交易函数 计算并绘制收益曲线 回测主体框架 计算各项指标 用户待写代码:初始化.每日处理函数 第四部分 在线 ...