信号与系统实验三.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号与系统实验三课案

实验三、连续时间系统的频率响应 一、实验目的: 1 加深对连续时间系统频率响应理解; 2 掌握借助计算机计算任意连续时间系统频率响应的方法。 二、实验原理: 连续时间系统的频率响应可以直接通过所得表达式计算,也可以通过零极点图通过用几何的方法来计算,而且通过零极点图可以迅速地判断系统的滤波特性。 根据系统函数H(s)在s平面的零、极点分布可以绘制频响特性曲线,包括幅频特性 H(jw) 曲线和相频特性?(w)曲线。这种方法的原理如下:假定,系统函数H(s)的表达式为 当收敛域含虚轴时,取s = jw,也即在s平面中,s沿虚轴从- j∞移动到+ j∞时,得到: 容易看出,频率特性取决于零、极点的分布,即取决于Zj 、Pi 的位置,而式中K是系数,对于频率特性的研究无关紧要。分母中任一因子(jw- Pi )相当于由极点 p 引向虚轴上某点 jw的一个矢量;分子中任一因子(jw-Zj)相当于由零点Zj引至虚轴上某点 jw的一个矢量。 在右图示意画出由零点Zj和极点 Pi 与 jw点连接 构成的两个矢量,图中Nj、Mi 分别表示矢量的模,ψj、θi 表示矢量的辐角(矢量与正实轴的夹角,逆时针为正)。对于任意零点Zj 、极点Pi ,相应的复数因子(矢量)都可表示为: 于是,系统函数可以改写为 当ω延虚轴移动时,各复数因子(矢量)的模和辐角都随之改变,于是得出幅频特性曲线和相频特性曲线。这种方法称为s平面几何分析。通过零极点图进行计算的方法是: 1 在S平面上标出系统的零、极点位置; 2 选择S平面的坐标原点为起始点,沿虚轴向上移动,计算此时各极点和零点与该点的膜模和夹角; 3 将所有零点的模相乘,再除以各极点的模,得到对应频率处的幅频特性的值; 4 将所有零点的幅角相加,减去各极点的幅角,得到对应频率处的相角。 三、实验内容 用 C 语言编制相应的计算程序进行计算,要求程序具有零极点输入模块,可以手工输入不同数目的零极点。 计算频率从0~5频段的频谱,计算步长为0.1,分别计算上面两个系统的幅频特性和相频特性,将所得结果用表格列出,并画出相应的幅频特性曲线和相频特性曲线。 判断所给系统的滤波特性,??于带通滤波器,计算出3dB带宽的起始频点和结束频点;对于低通或高通滤波器,计算出3dB带宽的截止或开始的频率。 四、画出系统一和系统二的零极点图 系统一 系统二 五、程序流程图和程序代码 程序流程图如下: 创建txt文件,准备写入数据定义二维数组zeros[N][2],poles[N][2]定义函数int input_poles(float poles[][2]),并返回极点个数定义函数int input_zeros(float zeros[][2]),并返回零点个数定义变量number_of_zeros,number_of_poles,f,pha定义函数show_zeros_and_zeros(),并输出零极点定义函数double fupin(float w, int z, int p, float poles[][2], float zeros[][2]);输出幅频特性定义函数double xiangpin(float w, int z, int p, float poles[][2], float zeros[][2]);输出相频特性定义函数double phase(float x, float y);输入复数的实部和虚部,输出幅角主值定义函数double xiuzheng(double x);对相频特性进行修正,不在-180度——180度范围内的幅角进行修正调用input_poles()输入极点调用input_zeros()输入零点设置循环w=0步长为0.1,终止值为5循环调用fupin()计算幅频特性调用xiangpin()计算相频特性将幅频特性和相频特性数据输入到txt文件中重复循环关闭文件结束程序 程序代码如下: #include iostream #include math.h #include stdio.h #include fstream using namespace std; int input_poles(float poles[][2]); int input_zeros(float zeros[][2]); void show_zeros_and_zeros(int z, int p, float poles[][2], float zeros[][

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档