目录

1 概要

2. S域传输函数特性分析示例

3. pzmap(), pzplot() and zplane()

4. Z域传输函数特性分析示例

4.1 格型IIR陷波滤波器例

4.2 离散传输函数表示:tf() vs filt()

4.3 zplane()生成的零极点图

4.4 freqz()和fvtool()

4.5 Tf2zp() vs tf2zpk()

5. 小结


1 概要

本文介绍基于matlab对给定传输函数进行特性分析的实验。

连续系统通常用S域传输函数来表示,与之对应的则是离散系统通常用Z域传输函数来表示。

2. S域传输函数特性分析示例

S域传输函数用于表示连续系统。

问题:给定一个S域传输函数,试给出它的零极点和频域响应。

clc;
clear all;
close all;
num = [2 3 1];
den = [1 2 0 2 3 4];
TRANF=tf(num,den)
[zeros poles gain]=tf2zp(num,den);disp('Poles of transfer function are:');
disp(poles);
disp('Zeros of transfer function are:');
disp(zeros);
disp('Gain of transfer function are:');
disp(gain);figure; pzmap(TRANF); title('pole-zero map by pzmap()');
figure; pzplot(TRANF); title('pole-zero map by pzplot()');
figure; freqs(num, den); title('Frequency response by freqs()');

tf()函数的功能:基于给定的分子(numerator)表达式和分母(denominator)表达式生成一个传输函数object,显示它的值的话会非常nice地显示出传输函数分式表示形式,非常直观。

tf2zp()函数的功能: 基于给定的分子(numerator)表达式和分母(denominator)计算其零点、极点和直流增益。如上所示运行后会打印出零极点即直流增益结果。

freqs()用于产生对应该传输函数的频域响应。

pzmap()和pzplot()用于生成pole-zero图。在缺省条件下,两者生成的图相同。

但是pzmap()和pzplot()是有区别的。

3. pzmap(), pzplot() and zplane()

pzmap and pzplot 都是Control System Toolbox中的函数,两者都既可以用于连续系统传输函数分析,也可以用于离散系统传输函数分析。区别在于pzplot可以返回一个handle to the plot object,基于这个handle用户可以进行更多的画图选项控制。It is explicit in the documentation of pzmap: "For additional options for customizing the appearance of the pole-zero plot,  use pzplot.".

以下是一个利用pzplot的选项控制功能画图的示例。

% For demonstration of customization functionality of pzplot
Ts = 1;
HZ = tf(num, den, Ts, 'variable', 'z^-1');figure;
pzplot(HZ); title('pole-zero map by pzplot() with customization');
h = findobj(gca, 'type', 'line');
set(h, 'markersize', 9)
text(real(roots(num)) - 0.1, imag(roots(num)) + 0.1, 'Zero')
text(real(roots(den)) - 0.1, imag(roots(den)) + 0.1, 'Pole')
axis equal

这个图上的信息就比上面的缺省条件下生成的图要丰富得多。

此外,zplane()函数属于Signal Processing Toolbox,提供的功能与pzmap()和pzplot()相似,但是使用语法不一样。而且zplane只能用于discrete系统传输函数的分析。后面离散系统的分析我们会用到zplane().

[1] https://www.mathworks.com/matlabcentral/answers/509011-pzmap-vs-pzplot-vs-zplane

[2] MATLAB: What is the difference between pzmap and pzplot? - Stack Overflow

4. Z域传输函数特性分析示例

离散系统的传输函数用Z域传输函数表示。

4.1 格型IIR陷波滤波器例

以下是一个格型IIR陷波滤波器的特性分析示例。其传输函数和结构图如下所示:

% Discrete system zero-pole analysis
alpha = 0.9962;
beta  = 0.8763;
num = ((1+alpha)/2)*[1 -2*beta 1]
den = [1 -beta*(1+alpha) alpha]
ZtranF = tf(num,den,1)
ZtranF1 = filt(num,den,1)
[zeros poles gain]=tf2zp(num,den);
[zeros1 poles1 gain1]=tf2zpk(num,den); % What is the difference between tf2zp and tf2zpkdisp('Poles of transfer function are:');
disp(poles);
disp('Zeros of transfer function are:');
disp(zeros);
disp('Gain of transfer function are:');
disp(gain);
figure; zplane(num,den); title('zero-pole-plot by zplane()'); % zplane() For discrete system.figure; freqz(num, den); title('Frequency response by freqz() with default setting');
figure; freqz(num, den,500,25e6); title('Frequency response by freqz(), with n=500');
fvtool(num,den,'Fs',25e6,'Color','white'); title('notch\_flt magnitude response by fvtool()');figure; impz(num,den);  title('Impulse response by freqz()');

4.2 离散传输函数表示:tf() vs filt()

从结果来看,tf()和filt()有微妙差别,如下图所示:

首先,需要注意的是,tf()必须将Ts设置为某个正值才表示是分析离散的Z域传输函数。tf生成的传输函数与连续系统的传输函数的表示习惯相同,用z的正指数表示,而filt()生成的则是离散系统的表示习惯,用z的负指数项表示。没有本质区别,但是可能用的filt()更好吧。

4.3 zplane()生成的零极点图

如前所述,离散系统的零极点图可以用zplane()生成。但是也同样可以pzmap()和pzplot()生成,表示效果略有差异。

4.4 freqz()和fvtool()

freqz()和fvtool()都可以用来生成频域响应。

但是以下三条语句却产生了不同的结果。

很显然,3张图中所显示的陷波频点的衰减各不相同。可能是设置不同所导致的差别,有待进一步调查分析。

4.5 Tf2zp() vs tf2zpk()

tf2zp (Signal Processing Toolbox) (northwestern.edu)

Note You should use tf2zp when working with positive powers (s2 + s + 1), such as in continuous-time transfer functions. A similar function, tf2zpk, is more useful when working with transfer functions expressed in inverse powers (1 + z-1 + z-2), which is how transfer functions are usually expressed in DSP.

tf2zpk (Signal Processing Toolbox) (northwestern.edu)

Note You should use tf2zpk when working with transfer functions expressed in inverse powers (1 + z-1 + z-2), which is how transfer functions are usually expressed in DSP. A similar function, tf2zp, is more useful for working with positive powers (s2 + s + 1), such as in continuous-time transfer functions.

另外几个相关的函数:sos2zp, ss2zptf2sostf2sstf2zpzp2tf

5. 小结

仓促而就。Matlab提供了非常丰富的传输函数相关的函数和工具,值得慢慢挖掘。当然python中scipy库也有相对应的函数工具库,以后有时间再来学习整理。

基于matlab的传输函数特性分析相关推荐

  1. 基于matlab的光学薄膜特性分析,基于matlab的光学薄膜特性分析

    <基于matlab的光学薄膜特性分析>由会员分享,可在线阅读,更多相关<基于matlab的光学薄膜特性分析(17页珍藏版)>请在金锄头文库上搜索. 1.目录1 技术指标 .12 ...

  2. 基于matlab的光学薄膜特性分析,基于matlab的光学薄膜特性分析.doc

    目录 1 技术指标1 2 基本原理1 2.1 单层光学薄膜1 2.2 多层光学薄膜及矩阵理论2 3 基于matlab的光学薄膜特性分析4 4 结论9 5 参考文献9 6 附录:基于matlab的光学薄 ...

  3. 《MATLAB 神经网络43个案例分析》:第43章 神经网络高效编程技巧——基于MATLAB R2012b新版本特性的探讨

    <MATLAB 神经网络43个案例分析>:第43章 神经网络高效编程技巧--基于MATLAB R2012b新版本特性的探讨 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 ...

  4. 基于matlab 的语音信号分析和处理,基于matlab_的语音信号分析和处理

    基于matlab_的语音信号分析和处理 1 基于MATLAB 的语音信号分析和处理 福建师范大学协和学院 信息技术系 电子信息科学与技术专 124122006028 王祯飞 指导老师 黄小芬[摘要]本 ...

  5. matlab有仿真小灯泡吗,基于Matlab电力变压器励磁涌流的分析和仿真

    基于Matlab电力变压器励磁涌流的分析和仿真 宁 德 师 范 学 院 毕 业 论 文 (设 计) 专 业 指导教师 学 生 学 号 题 目 目 录 1 变压器空载合闸励磁涌流产生机理1 1.1 变压 ...

  6. 子空间迭代法 matlab,基于MATLAB的一类迭代分析

    一般的计算方法教程如文献[1-5]都会介绍三种常见的迭代法,即Jacobi方法.Gauss-Seidel方法和SOR迭代.由于Gauss-Seidel方法充分利用了迭代过程的新信息[1,2],一般来说 ...

  7. 基于matlab的齿轮,基于matlab的故障齿轮分析.doc

    基于matlab的故障齿轮分析 基于matlab的故障齿轮分析 摘要 这篇文献,研究了齿轮箱中轮齿裂纹对齿轮振动的响应,及轮齿裂纹对啮合刚度的影响.并在matlab基础上分析了齿轮的裂纹故障.断齿故障 ...

  8. ncm 汇集 matlab,ncm-solutions 压缩包中的文件主要是基于matlab的数值计算以及分析功能学习的很好的例程 266万源代码下载- www.pudn.com...

    文件名称: ncm-solutions下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 1650 KB 上传时间: 2016-11-01 下载次数: 0 提 ...

  9. matlab 215卷积码,基于matlab的卷积码的分析与应用

    基于matlab的卷积码的分析与应用 基于MATLAB 的卷积码的分析与应用东北大学本科毕业设计(论文) 毕业设计(论文)任务 书 -I- 毕业设计(论文)任务书 毕业设计(论文)题目: 基于 MAT ...

最新文章

  1. oracle minus 与sqlserver except
  2. Python编程语言学习:在for循环中如何同时使用2个变量或者3个变量
  3. python底层源码_Python每天一分钟:解析python底层类的实现原理——竟然是type()
  4. js中cookie的操作
  5. restful是什么php,什么是RESTful?
  6. Redis中的数据迁移
  7. wait()和sleep()
  8. android 原生调用js,js调用原生
  9. python爬虫 django搜索修改更新数据_python应用:Django中更新多个对象数据与删除对象的方法...
  10. 左右法则 来解析指针问题
  11. mysql 单标递归_MYSQL递归树查询的实现
  12. linux查看内存是ddr3,linux查看具体内存信息
  13. 2021年度训练联盟热身训练赛第二场 ABCDGJ
  14. 【手游】手游行业专业相关知识储备
  15. 计算机应用基础制作新春贺卡图片,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书...
  16. 计算机应用演技,最近快手最火的句子 生活还是需要一点演技的
  17. 书籍折页是什么效果_问题:WPS里页面设置中的拼页,书籍折页,反向书籍折页分别是什么意思?打印出来的效果是什么样的? 要双面打印...
  18. python4delphi和tesserocr库安装配置
  19. 刷脸支付免费领取保险全额赔付保安全
  20. 安装xmanager linux系统,xmanager linux版

热门文章

  1. android 锁屏壁纸 保存,小米手机锁屏画报壁纸怎么保存?
  2. 知乎轮子哥有多牛!初中写游戏,大学写编译器,毕业拿微软Offer
  3. Typora+PicGo+腾讯云COS实现图片上传功能
  4. 西北乱跑娃 -- pandas数据清洗及转换
  5. 初学者如何熟练的做出满意的一款游戏特效?
  6. python 排序算法:插入排序
  7. nginx 301 302重定向跳转配置 (一般都做301,对seo好)
  8. 迈卡名车茂与仓鼠易购——李雷:保持热爱 深耕行业
  9. 经典老歌-杜德伟《彩虹》
  10. 影视制作剪辑,小白也能看懂