用matlab实现两个离散序列的卷积(不使用conv函数)

用matlab实现两个离散序列的卷积(不使用conv函数)
用matlab实现两个离散序列的卷积(不使用conv函数)

作业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;

相关主题
相关文档
最新文档