实验一、连续时间系统卷积的数值计算
一、实验目的
1 加深对卷积概念及原理的理解。
2 掌握借助计算机计算任意信号卷积的方法。
二、实验原理
1 卷积的定义
卷积积分可以表示为
2 卷积计算的几何算法
卷积积分的计算从几何上可分为四个步骤:翻转→平移→相乘→叠加。
3 卷积积分的应用
卷积积分是信号与系统时域分析的基本手段,主要用于求系统零状态响应,它避开了经典分析方法中求解微分方程时需要求系统初始值的问题。 设一个线性零状态系统,已知系统的单位冲激响应为h(t),当系统的激励信号为e(t)时,系统的零状态响应为
由于计算机技术的发展,通过编程的方法来计算卷积积分已经不再是冗繁的工作,并可以获得足够的精度。因此,信号的时域卷积分析法在系统分析中得到了广泛的应用。 卷积积分的数值运算实际上可以用信号的分段求和来实现,即:
如果我们只求当 1 t = nΔt (n为正整数, 1 nΔt 记为2 t )时r(t)的值,则由上 式可以得到:
当 1 Δt 足够小时,r (t2) 就是e(t)和h(t)卷积积分的数值近似,由上面的公式可以得到卷积数值计算的方法如下:
1)将信号取值离散化,即以Ts 为周期,对信号取值,得到一系列宽度间隔为Ts 的矩形脉冲原信号的离散取值点,用所得离散取值点矩形脉冲来表示原来的连续时间信号;
2)将进行卷积的两个信号序列之一反转,与另一信号相乘,并求积分,所得为t=0 时的卷积积分的值。以Ts 为单位左右移动反转的信号,与另一信号相乘求积分,求的t<0 和t>0 时卷积积分的值;
3)将所得卷积积分值与对应的t 标在图上,连成一条光滑的曲线,即为所求卷积积分的曲线。
三、实验内容
已知进行卷积的两个信号分别为:
令Ts=0.1,用数值计算法计算f1(t)*f2(t) 用C语言编制相应的计算程序进行计算。
将所得结果用表格列出,并画出相应的曲线。
四、实验程序源代码、流程图
#include float u(float t) { while(t>=0) return(1); while(t<0) return(0); }float f1(float t) { return(u(t+2)-u(t-2)); }
float f2(float t) { return(t*(u(t)-u(t-2))+(4-t)*(u(t-2)-u(t-4))); }
main() {
FILE *fp; float t,i,j,result=0; for(i=-2;i<=6;i=i+0.1) { result=0; for(j=-2;j<=2;j=j+0.1) result+=f1(j)*f2(i-j)*0.1; printf(\"%.1f\%.2f\\ fp=fopen(\"d:\\\\juanji.txt\ fprintf(fp,\"%.2f\\ } printf(\"\\n\"); }
五、运行结果与数据处理
用excel制表,数据列表如下: t -2 -1.9 -1.8 -1.7 r(t) 0 0.01 0.03 0.06 t -1 -0.9 -0.8 -0.7 r(t) 0.55 0.66 0.78 0.91 t 0 0.1 0.2 0.3 r(t) 2.1 2.29 2.47 2. t 1 1.1 1.2 1.3 r(t) 3.55 3. 3.72 3.79 t 2 2.1 2.2 2.3 r(t) 4 3.99 3.97 3.94 -1.6 0.1 -0.6 1.05 0.4 2.8 1.4 3.85 2.4 3.9 -1.5 0.15 -0.5 1.2 0.5 2.95 1.5 3.9 2.5 3.85 -1.4 0.21 -0.4 1.36 0.6 3.09 1.6 3.94 2.6 3.79 -1.3 0.28 -0.3 1.53 0.7 3.22 1.7 3.97 2.7 3.72 -1.2 0.36 -0.2 1.71 0.8 3.34 1.8 3.99 2.8 3. -1.1 0.45 -0.1 1.9 0.9 3.45 1.9 4 2.9 3.55 t 3 3.1 3.2 3.3 r(t) 3.45 3.34 3.22 3.09 t 4 4.1 4.2 4.3 r(t) 1.9 1.71 1.53 1.36 t 5 5.1 5.2 5.3 r(t) 0.45 0.36 0.28 0.21 利用matlab对数据进行仿真绘制: 3.4 2.95 4.4 1.2 5.4 0.15 3.5 2.8 4.5 1.05 5.5 0.1 3.6 2. 4.6 0.91 5.6 0.06 3.7 2.47 4.7 0.78 5.7 0.03 3.8 2.29 4.8 0.66 5.8 0.01 3.9 2.1 4.9 0.55 5.9 0