代码:

%% ------------------------------------------------------------------------
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Exameple 9.5 \n\n'); time_stamp = datestr(now, 31);
[wkd1, wkd2] = weekday(today, 'long');
fprintf(' Now is %20s, and it is %7s \n\n', time_stamp, wkd2);
%% ------------------------------------------------------------------------ n = 0:256; x = cos(pi*n); w = [0:100]*pi/100; %% -----------------------------------------------------------------
%% Plot
%% -----------------------------------------------------------------
Hf1 = figure('units', 'inches', 'position', [1, 1, 8, 6], ...
'paperunits', 'inches', 'paperposition', [0, 0, 6, 4], ...
'NumberTitle', 'off', 'Name', 'Exameple 9.5');
set(gcf,'Color','white'); TF = 10;
% (a) Interpolation by I = 2, L = 4
I = 2; [y, h] = interp(x, I); H = freqz(h, 1, w); H = abs(H);
subplot(2, 2, 1);
plot(w/pi, H); axis([0, 1, 0, I+0.1]); grid on;
xlabel('\omega in \pi units'); ylabel('Magnitude');
title('I = 2, L = 4', 'fontsize', TF);
set(gca, 'xtick', [0, 0.5, 1]);
set(gca, 'ytick', [0:1:I]); % (b) Interpolation by I = 4, L = 4
I = 4; [y, h] = interp(x, I); H = freqz(h, 1, w); H = abs(H);
subplot(2, 2, 2);
plot(w/pi, H); axis([0, 1, 0, I+0.2]); grid on;
xlabel('\omega in \pi units'); ylabel('Magnitude');
title('I = 4, L = 4', 'fontsize', TF);
set(gca, 'xtick', [0, 0.25, 1]);
set(gca, 'ytick', [0:1:I]); % (c) Interpolation by I = 8, L = 4
I = 8; [y, h] = interp(x, I); H = freqz(h, 1, w); H = abs(H);
subplot(2, 2, 3);
plot(w/pi, H); axis([0, 1, 0, I+0.4]); grid on;
xlabel('\omega in \pi units'); ylabel('Magnitude');
title('I = 8, L = 4', 'fontsize', TF);
set(gca, 'xtick', [0, 0.125, 1]);
set(gca, 'ytick', [0:2:I]); % (d) Interpolation by I = 8, L = 10
I = 8; [y, h] = interp(x, I, 10); H = freqz(h, 1, w); H = abs(H);
subplot(2, 2, 4);
plot(w/pi, H); axis([0, 1, 0, I+0.4]); grid on;
xlabel('\omega in \pi units'); ylabel('Magnitude');
title('I = 8, L = 10', 'fontsize', TF);
set(gca, 'xtick', [0, 0.125, 1]);
set(gca, 'ytick', [0:2:I]);

  运行结果:

前三张图L=4,和想象的一样,滤波器是低通性质,其通带边界近似在π/I附近,并且幅度谱最大增益为I。另外注意到滤波器的过渡带和缓,

因此和理想滤波器相差较大。最后一张,L=10,和想象一样,过渡带比较陡。

任何超过L=10的情况都会导致滤波器不稳定,因此在设计过程中是必须避免的。

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

  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. Linux命令详解-cal

    cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历."阳历"又名"太阳历",系以地球绕行太阳一周为一年,为西方各国所通用,故 ...

  2. nginx和php-fpm的启停和配置

    一.nginx的启停 (1) 启动nginx /etc/init.d/nginx start (2) 停止nginx /etc/init.d/nginx stop (3) 重启nginx /etc/i ...

  3. 三大平衡树(Treap + Splay + SBT)总结+模板

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  4. HDU 4681 STRING dp+暴力。

    题意:不说了很好懂. 这题这么水= =...当时竟然没有勇气暴力搜一下.昨天(好吧前天.)比赛的时候胃疼,看到这题想了一个办法就是对每一个出现最短的C串前后连接然后对这个串求最长公共子序列.其实优化一 ...

  5. restframework api(基础2)

    一 socket简介 1 最简单的socket #################server import socket ip_port = ('127.0.0.1',9997) sk = sock ...

  6. Ansible 小手册系列 十八(Lookup 插件)

    file:获取文件内容 --- - hosts: all vars: contents: "{{ lookup('file', '/etc/foo.txt') }}" tasks: ...

  7. influxdb和boltDB简介——MVCC+B+树,Go写成,Bolt类似于LMDB,这个被认为是在现代kye/value存储中最好的,influxdb后端存储有LevelDB换成了BoltDB

    influxdb influxdb是最新的一个时间序列数据库,最新一两年才产生,但已经拥有极高的人气.influxdb 是用Go写的,0.9版本的influxdb对于之前会有很大的改变,后端存储有Le ...

  8. 005PHP基础知识——数据类型(二)

    <?php /** * 布尔型判断一种状态是否成立. * 布尔型 TRUE FALSE * 为布尔假型的类型: * 1. FALSE * 2. 0 * 3. 0.0 * 4. 空字符串为假 * ...

  9. 【51nod-1138】连续整数的和

    本来想着用尺取的思想,不过会超时.利用等差数列S = na+n*n(n-1)/2,得a = (2*S-n*(n-1))/(2*n),然后遍历n,只要满足a是整数就可以,这样复杂度从O(S)变成了O(s ...

  10. CentOS7 修改默认时区为 北京时间

    首先同步时间 yum install -y ntpdate ntpdate -u cn.pool.ntp.org 然后设置中国时区(北京时间) timedatectl set-timezone Asi ...