function[x,n]=delta(n0,n1,n2) n=[n1:n2]; x=[(n-n0)==0]; %定义函数1 function[x,n]=step(n0,n1,n2) n=[n1:n2]; x=[(n-n0)>=0]; %定义函数2 [x1,n]=delta(3,1,10); [x2,n]=step(-2,1,10); [x3,n]=delta(-3,1,10); [x4,n]=step(2,1,10); subplot(2,3,1);stem(n,(x1+x2));title('f1(t)');grid on subplot(2,3,2);stem(n,(x3+x4));title('f2(t)');grid on; subplot(2,3,3);stem(n,(x1+x2)+(x3+x4));title('f1+f2');grid on; subplot(2,3,4);stem(n,(x1+x2)-(x3+x4));title('f1-f2');grid on; subplot(2,3,5);stem(n,(x1+x2).*(x3+x4));title('f1*f2');grid on;
时间: 2024-04-04 22:29:53 浏览: 18
这是一个 MATLAB 代码,用于绘制两个函数的加减乘组合,其中 delta(n0,n1,n2) 和 step(n0,n1,n2) 是定义的函数,用于生成离散时间下的单位脉冲和单位阶跃信号。代码中首先调用 delta 和 step 函数生成了四个信号,然后利用 subplot 和 stem 函数将这四个信号的加减乘结果绘制在一个图像窗口中,分别为 f1(t)、f2(t)、f1+f2、f1-f2 和 f1*f2。
相关问题
function s=exp2(x) s=0; for n=1:x s=s+n; end
这段代码的作用是计算 $1+2+3+\cdots+x$ 的和,其中 $x$ 是输入的参数。可以将其看作是一个简单的累加器,每次循环将当前的计数器值加上循环计数器 $n$ 的值,最终得到累加和 $s$。需要注意的是,该代码中没有考虑输入参数 $x$ 的非法情况(如 $x$ 为负数或者不是整数),因此在实际使用中需要进行相应的检查和处理。
MATLAB序列相加函数命令sigadd()x1=[1,2,3,4]; n1=[0:3]; x2=[3,4,2,1,3,2]; n2=[-2:3]; [y,n]=sigadd(x1,n1,x2,n2); stem(n,y);
以下是MATLAB序列相加函数命令sigadd()的演示代码:
```matlab
% 引用[1]中的离散序列
clear n=-2:10;
x=[1:7,6:-1:1];
[x1,n1]=sigfliplr(x,n);
x1=0.2*x1;
[x2,n2]=sigmult(x,n,x,n+3);
x2=0.3*x2;
[y,n]=sigadd(x1,n1+5,x2,n2);
% 序列相加函数命令sigadd()
function [y,n]=sigadd(x1,n1,x2,n2)
n=min(min(n1),min(n2)):max(max(n1),max(n2));
y1=zeros(1,length(n));
y2=y1;
y1(find((n>=min(n1))&(n<=max(n1)==1)))=x1;
y2(find((n>=min(n2))&(n<=max(n2)==1)))=x2;
y=y1+y2;
end
% 演示代码
x1=[1,2,3,4];
n1=[0:3];
x2=[3,4,2,1,3,2];
n2=[-2:3];
[y,n]=sigadd(x1,n1,x2,n2);
stem(n,y);
```
运行以上代码,将得到一个序列相加的图像。