matlab中如何画出冲激函数
2个回答
展开全部
冲激函数即是delta函数,属于广义函数。直观的理解便是在x0点取值为1,在区间其余处取值为0。其可以直接生成,也可以视为阶梯函数的导数来生成。
在matlab中,如果是为了绘制出冲激函数的效果图,可以如下编写m文件:
function
x=impseq(n0,n1,n2)
n
=
n1:0.01:n2;
x
=
[(n-n0)==0];
%其中n0为delta=1处横坐标。
end
其中n0是取值为1的点,n1,n2是区间左右端点,你可以通过调节0.01使得函数不为0区域变窄。
除此之外,如果你仅仅要使用冲激函数,即按照其广义的定义,我建议还是解析进行比较好。毕竟广义函数不是一般意义上的函数,其存在性依赖于函数的弱收敛。而matlab只是一个数值模拟程序,这方面不是很适合。
在matlab中,如果是为了绘制出冲激函数的效果图,可以如下编写m文件:
function
x=impseq(n0,n1,n2)
n
=
n1:0.01:n2;
x
=
[(n-n0)==0];
%其中n0为delta=1处横坐标。
end
其中n0是取值为1的点,n1,n2是区间左右端点,你可以通过调节0.01使得函数不为0区域变窄。
除此之外,如果你仅仅要使用冲激函数,即按照其广义的定义,我建议还是解析进行比较好。毕竟广义函数不是一般意义上的函数,其存在性依赖于函数的弱收敛。而matlab只是一个数值模拟程序,这方面不是很适合。
展开全部
主程序如下:
n=[-5:5];
x1=impseq(0,-5,5);
subplot(2,2,1);stem(n,x1);title('单位取样序列');
xlabel('n');ylabel('x(n)');
在这之前,要定义一个函数,就是编辑一个.m文件,如下:
function[x,n]=impseq(n0,n1,n2)
if((n0
n2)|(n1>n2))
error('参数必须满足n1<=n0<=n2)
end
n=[n1:n2];
x=[(n-n0)==0];
注意.m文件名要与函数名一致,即使用impseq!
n=[-5:5];
x1=impseq(0,-5,5);
subplot(2,2,1);stem(n,x1);title('单位取样序列');
xlabel('n');ylabel('x(n)');
在这之前,要定义一个函数,就是编辑一个.m文件,如下:
function[x,n]=impseq(n0,n1,n2)
if((n0
n2)|(n1>n2))
error('参数必须满足n1<=n0<=n2)
end
n=[n1:n2];
x=[(n-n0)==0];
注意.m文件名要与函数名一致,即使用impseq!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询