用matlab实现两个离散序列的卷积(不使用conv函数)
- 格式:docx
- 大小:68.60 KB
- 文档页数:2
作业2.用matlab实现离散序列的卷积.
N=14;
n=[1:N-1];
f=1/16;
signal1=5*sin(2*pi*n/8);
figure(1); subplot(3,1,1) stem(n,signal1);title( ' 信号1' );xlabel( 'n' );ylabel( axis([0 15 -6 6])
long_M=5;
signal2=ones(1,long_M); subplot(3,1,2)
stem(signal2);title( ' 信号2' );xlabel( 'n' );ylabel( axis([0 6 -2 2]);
grid on;
long_N=length(signal1); fk=zeros(0,long_N+long_M+10);
if (long_N>long_M)
for k=1:1:long_N+long_M-1
a=0;
if (k<=long_N)
for i=1:1:k
if (i>long_M)
fk(k)=a;
else fk(k)=a+signal2(i)*signal1(k-i+1); a=fk(k);
end
end
else
for i=1:1:k
if (k-long_N+i>long_M)
fk(k)=a;
else fk(k)=a+signal2(k-long_N+i)*signal1(long_N-i+1); a=fk(k);
end
end
end
end
end subplot(3,1,3) stem(fk);title( ' 卷积函数的实现' );xlabel( 'n' );ylabel(
'y(n)' );
'y(n)' );
幅度' );
axis([0 18 -20 20]); grid on;