MATLAB程序翻译

MATLAB程序翻译,第1张

%′圆周卷积′主程序

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12235015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存