z信号处理的过程中,常常要是用到多种运算法则:
例如:求解x(n)=x(3-n)+x(n)x(n-2)
在这个案例中有许多的计算法则。
例如我们求解x=[1 2 3 4 5 6 7 6 5 4 3 2 1]。
matlab代码如下所示:
移位代码:
function [y,n]=LST_2_2_b_sigshift(x,m,n0)
n=m+n0;
y=x;%序列的数值大小是不变的,但是位置发生了改变
反转代码:
function [y,n]=LST_2_2_b_sigfold(x,n)
y=fliplr(x);
n=-fliplr(n);%反转函数fliplr
相乘代码:
function [y,n]=LST_2_2_b_sigmult(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;
求解:
n=-2:10;
x=[1:7,6:-1:1];
[x11,n11]=LST_2_2_b_sigfold(x,n);
[x12,n12]=LST_2_2_b_sigshift(x11,n11,3);
[x33,n33]=LST_2_2_b_sigshift(x,n,2);
[x23,n23]=LST_2_2_b_sigmult(x,n,x33,n33);
[y,m]=LST_2_2_a(x12,n12,x23,n23);
stem(m,y);
xlabel(\'n\');
ylabel(\'x(n)\');
请发表评论