用MATLAB编程,完成以下任务,f1(t)=sin(t),f2(t)=u(t),f3(t)=u(t)-u(t-4), 证明卷积满足:f1(t)*[f2(t)+f3(t)]=f1(t)*f2(t)+f1(t)*f3(t)
时间: 2023-08-07 11:05:56 浏览: 91
以下是MATLAB代码实现上述任务并证明卷积满足分配律:
```
syms t;
f1 = sin(t);
f2 = heaviside(t);
f3 = heaviside(t) - heaviside(t-4);
% 计算卷积
conv1 = conv(f1, f2 + f3);
conv2 = conv(f1, f2) + conv(f1, f3);
% 绘制图形
subplot(3, 1, 1);
fplot(f1, [-pi, pi]);
title('f1(t) = sin(t)');
subplot(3, 1, 2);
fplot(f2 + f3, [-1, 5]);
title('f2(t) + f3(t)');
subplot(3, 1, 3);
t_conv = linspace(-pi, 2*pi, length(conv1));
plot(t_conv, conv1, 'b', t_conv, conv2, 'r--');
legend('f1(t) * (f2(t)+f3(t))', 'f1(t) * f2(t) + f1(t) * f3(t)');
title('Convolution: f1(t) * (f2(t)+f3(t)) vs f1(t) * f2(t) + f1(t) * f3(t)');
% 证明分配律
if isequal(conv1, conv2)
fprintf('The convolution satisfies the distributive law!\n');
else
fprintf('The convolution does not satisfy the distributive law!\n');
end
```
这段代码会生成三个子图,分别绘制 f1(t)、f2(t)+f3(t) 和卷积函数 f1(t)*(f2(t)+f3(t)) 和 f1(t)*f2(t) + f1(t)*f3(t) 的图形。最后,根据卷积函数是否满足分配律输出相应的结果。
在这个例子中,我们先定义了三个函数 f1(t)、f2(t) 和 f3(t),并使用 conv() 函数计算了它们的卷积。接着,我们绘制了这三个函数的图形,以便更好地理解它们的性质。最后,我们使用 isequal() 函数比较了卷积函数 f1(t)*(f2(t)+f3(t)) 和 f1(t)*f2(t) + f1(t)*f3(t) 是否相等,从而证明了卷积满足分配律。
阅读全文