x=[1 2 3 2]
h=[1 1 1]
N=length(x)+length(h)-1 %L= 两个序列长度之和-1,
x=[x,zeros(1,N-length(x))]%将两个序列的长度补0至长度为L
h=[h,zeros(1,N-length(h))]
n=[0:1:N-1]
h=h(mod(-n,N)+1) %反转h(n)
H=zeros(N,N)
for n=1:1:N
H(n,:)=cirshiftd(h,n-1,N) %调用位移函数袜辩,循环移位
end
y=x*H'%x与h进行循环移位生成的矩阵H的转置矩阵相乘,等于x(m)和h(n—m)相乘之告银缺后相搏者加,完成圆周卷积。
%画出序列
n0=[0:1:N-1]
stem(n0,y)
title('圆周卷积')
xlabel('(n)')
x1=input('x1=')x2=input('x2=')
M=length(x1)
N=length(x2)
n=M+N-1
a= 0 : N-1
y2(a+1)=x2(N-a)
for n=1 : M+N-1
k=-N+n:1:-1+n
subplot(3,1,2)
stem(k,y2)
title('x2(n-m)')axis([-16,16,0,24])
%以上部分是实现翻转闭棚并移位,在设计中是将序列x2进行翻弊旅转和移位。
y=conv(x1,x2)
t=1:1:n
h(t)=y(t)
subplot(3,1,3)
t=0:n-1
stem(t,h)
title('线轿卜则性卷积y(n)')
axis([-16,16,0,24])
pause(1)
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)