时域中的离散信号和系统

来源:互联网 发布:java经典编程300例 编辑:程序博客网 时间:2024/06/02 02:49

单位脉冲序列的m文件:

function [x,n] = impseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('参数必须满足 n1 <= n0 <= n2')
end
n = [n1:n2];
x = [(n-n0) == 0];

调用例如:

[x,n] = impseq(2,0,5); %表示从0开始共6个点,第二个点为1。

stem(n,x);


单位阶跃序列的m文件:

function [x,n] = stepseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('参数必须满足 n1 <= n0 <= n2')
end
n = [n1:n2];
x = [(n-n0) >= 0];

调用:

[x,n] = stepseq(2,0,5);

stem(n,x);


另外我在测试的时候发现了这样的报错:Cannot find an exact (case-sensitive) match for...。这种情况好像是因为出现了大小写不同。

把文件名(包括.m)和函数名一律改为小写即可。


matlab中可以用y = conv(x,h)来计算两个有限长度序列的卷积。该函数无法得知位置信息,默认x和h位置向量都是从零开始。可以根据需要扩展。

这里注意,matlab默认序列从零开始,即为0:N-1。但是变量的下标(即括号中的序号)倒是从1开始的,即为1:N。

卷积的输出序列长度区间为n = 0:length(x)+length(y)-1。


说到卷积,则相关函数也是卷积的形式,例如x和y的互相关表示为y(m)和x(-m)的卷积,x的自相关表示为x(m)和x(-m)的卷积。

注意相关函数也是随n变化的。如果x和y的互相关在n0处有峰值,说明y和x移位n0后相似。


LTI系统可以用差分方程来描述。但差分方程不一定描述LTI系统,必须满足所谓的松弛条件。

matlab解差分方程可以用y = filter(b,a,x)来实现。b是x那边的系数向量,a是y那边的系数向量,x是输入序列。

此外,可以用[h,n] = impz(b,a,N)来求解h(n)。






0 0
原创粉丝点击