连续时间系统卷积的数值计算实验报告.docx

连续时间系统卷积的数值计算实验报告.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告 实验名称:连续时间系统卷积的数值计算 一、实验目的: 1、加深对卷积概念及原理的理解; 2、掌握借助计算机计算任意信号卷积的方法。 二、实验原理: 卷积积分不仅可以通过直接积分或查表的方法来求解,还可以用积分的数值计算方法来求解。在线性系统的分析过程中,有时会遇到复杂的激励信号,或者有时只是一组测试数据或曲线,冲激响应也可能出现同样的情况。显然,此时直接计算积分或查表都有困难,而采用近似的数值计算方法可以解决这个问题,求得卷积积分。 1、卷积的定义 卷积积分可以表示为 2卷积计算的几何算法 卷积积分的计算从几何上可以分为四个步骤:翻转→平移→相乘→叠加。 3卷积积分的应用 卷积积分是信号与系统时域分析的基本手段,主要用于求系统零状态响应,它避开了经典分析方法中求解微分方程时需要求系统初始值的问题。 设一个线性零状态系统,已知系统的单位冲激响应为h(t),当系统的激励信号为e(t)时,系统的零状态响应为 由于计算机技术的发展,通过编程的方法来计算卷积积分已经不再是冗繁的工作,并可以获得足够的精度。因此,信号的时域卷积分析法在系统分析中得到了广泛的应用。 卷积积分的数值运算实际上可以用信号的分段求和来实现,即: 如果我们只求当t = nΔt (n为正整数,nΔt 记为t )时r(t)的值,则由上式可以得到: 当Δt 足够小时,r(t )就是e(t)和h(t)卷积积分的数值近似,由上面的公式可以得到卷积数值计算的方法如下: 1 将信号取值离散化,即以 Ts 为周期,对信号取值,得到一系列宽度间隔 为 Ts 的矩形脉冲原信号的离散取值点,用所得离散取值点矩形脉冲来表示原来的连续时间信号; 2 将进行卷积的两个信号序列之一反转,与另一信号相乘,并求积分,所得为 t=0 时的卷积积分的值。以 Ts 为单位左右移动反转的信号,与另一信号相乘求积分,求的t0和t0时卷积积分的值; 3 将所得卷积积分值与对应的t 标在图上,连成一条光滑的曲线,即为所求卷积积分的曲线。 三、实验内容 已知进行卷积的两个信号分别为: 令Ts=0.1,用数值计算法计算 用C语言编制相应的计算程序进行计算。 将所得结果用表格列出,并画出相应的曲线。 四、实验原理图示 卷积 五、程序流程图和程序代码如下: #includestdio.h float f1t(float); float f2t(float); float Jieguo(float *a1, float *a2,char m); struct juanji { float t; float jieguo; }; float Ts; main() { float F2[41],t,m,F1[41]; struct juanji Shuchu[100]; 定义函数f1t、f2t、Jieguo 定义结构体juanji 定义变量Ts、t、m、i、j、Nom 定义数组F1、F2、Shuchu 定义文件指针fp,创建“实验一.txt” 输入时间间隔Ts 将函数f1t离散化取值存于F1 将函数f2t离散化取值存于F2 将F2翻转 Nom=0,t=-2,i=0 t=2 是 否 Shuchu[i].jieguo=Jieguo(F1,(F2+40-i),i+1); Shuchu[i].jieguo=Jieguo((F1+i-40),F2,81-i); Nom++,t=t+Ts,i++ 直到i=81 在屏幕和实验一.txt中输出“最终结果为:” i=0 在屏幕输出Shuchu[i].jieguo 在txt中输出Shuchu[i].jieguo 直到i=Nom unsigned char Nom,i,j; FILE *fp; fp=fopen(D:\\实验一.txt,w); printf(请输入时间间隔:\n); scanf(%f,Ts); for(i=0,t=-2;i41;t=t+Ts) { F1[i]= f1t(t); i++; } for(i=0,t=0;i41;t=t+Ts) { F2[i]= f2t(t); i++; } j=i; for(i=0,j--;ij;i++,j--) { m=F2[i]; F2[i]=F2[j]; F2[j]=m; } Nom=0; for(t=-2,i=0;i81;t=t+Ts,i++) { Shuchu[i].t=t; if(t=2) Shuchu[i].jieguo=Jieguo(F1,(F2+40-i),i+1); else Shuchu[i].jieguo=Jieguo((F1+i-40)

文档评论(0)

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

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

1亿VIP精品文档

相关文档