卷积的运算
连续时间系统卷积的数值计算
140224 班 余婧 学号 14021082
一、 实验原理
计算两个函数的卷积
卷积积分的数值运算实际上可以用信号的分段求和来实现,即:
如果我们只求当 t = n∆ t1 1是r ( t )的值,则由上式可以得到:
当∆t 1足够小时,r(t2)就是e(t)和f(t)卷积积分的数值近似值由上面的公式可 以得到卷积数值计算的方法如下:
(1)将信号取值离散化,即以 为周期,对信号取值,得到一系列宽度间隔为
的矩形脉冲原信号的离散取值点,用所得离散取值点矩形脉冲来表示原来的连续时
间信号;
(2)将进行卷积的两个信号序列之一反转,与另一信号相乘,并求积分,所得为
t=0时的卷积积分的值。以 为单位左右移动反转的信号,与另一信号相乘求积
分,求的t0时卷积积分的值;
(3)将所得卷积积分值与对应的 t 标在图上,连成一条光滑的曲线,即为所求卷
积积分的曲线。
1
二、处理流程图
三、C 程序代码
#include"stdio.h"
float u(float t)
{
if(t>=0)
return(1);
else 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)));
}
int main()
{
double i,j ,ans=0;
FILE *fp;
fp=fopen("juanji.xls","w+");
int n=0;
double delta=0.100000;
for(i=-2;i
{
ans=0;
for(j=0;j
ans=ans+f2(j)*f1(i-j)*delta;
printf("t=%.1f,r(t)=%.2f\n",i,ans);
fprintf(fp,"%3.1f\t%4.2f\n",i,ans);
}
}
四、运行结果
-2
-1.9
-1.8
-1.7
-1.6
-1.5
-1.4
-1.3
-1.2
-1.1
-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2 0 0.01 0.03 0.06 0.1 0.15 0.21 0.28 0.36 0.45 0.55 0.66 0.78 0.91 1.05 1.2 1.36 1.53 1.71
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8 2.47 2.64 2.8 2.95 3.09 3.22 3.34 3.45 3.55 3.64 3.72 3.79 3.85 3.9 3.94 3.97 3.99 4 4 3.99 3.97 3.94 3.9 3.85 3.79 3.72 3.64 3.55 3.45 3.34 3.22 3.09 2.95 2.8 2.64 2.47 2.29 2.1 1.9 1.71 1.53 1.36 1.2 1.05 0.91 0.78 0.66
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6 0.28 0.21 0.15 0.1 0.06 0.03 0.01 0 0
信号与系统
上机实验报告一
五、卷积曲线
六、感想与总结
卷积是信号与系统时域分析的基本手段,主要用于求解系统的零状态响 应。经过这次上机实验,我对信号的卷积运算有了更深刻的理解。卷机的计算 可以分为四个步骤:反褶、平移、相乘和叠加。在计算机上,通过我们用C 语言编程、利用积分的定义计算就能够得到有足够精度的卷积结果,并作出直观的图像,为我们进行时域分析提供了方便。