matlab 不用conv求卷积随便定义两个序列,假设为n1,n2,想实现两个序列卷积,翻折,移位,相乘是自己写的函数,前面都没问题,就是在for循环两个序列相乘得到新的序列,将新的序列求和,将和赋值到一
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/17 01:32:09
![matlab 不用conv求卷积随便定义两个序列,假设为n1,n2,想实现两个序列卷积,翻折,移位,相乘是自己写的函数,前面都没问题,就是在for循环两个序列相乘得到新的序列,将新的序列求和,将和赋值到一](/uploads/image/z/5166075-3-5.jpg?t=matlab+%E4%B8%8D%E7%94%A8conv%E6%B1%82%E5%8D%B7%E7%A7%AF%E9%9A%8F%E4%BE%BF%E5%AE%9A%E4%B9%89%E4%B8%A4%E4%B8%AA%E5%BA%8F%E5%88%97%2C%E5%81%87%E8%AE%BE%E4%B8%BAn1%2Cn2%2C%E6%83%B3%E5%AE%9E%E7%8E%B0%E4%B8%A4%E4%B8%AA%E5%BA%8F%E5%88%97%E5%8D%B7%E7%A7%AF%2C%E7%BF%BB%E6%8A%98%2C%E7%A7%BB%E4%BD%8D%2C%E7%9B%B8%E4%B9%98%E6%98%AF%E8%87%AA%E5%B7%B1%E5%86%99%E7%9A%84%E5%87%BD%E6%95%B0%2C%E5%89%8D%E9%9D%A2%E9%83%BD%E6%B2%A1%E9%97%AE%E9%A2%98%2C%E5%B0%B1%E6%98%AF%E5%9C%A8for%E5%BE%AA%E7%8E%AF%E4%B8%A4%E4%B8%AA%E5%BA%8F%E5%88%97%E7%9B%B8%E4%B9%98%E5%BE%97%E5%88%B0%E6%96%B0%E7%9A%84%E5%BA%8F%E5%88%97%2C%E5%B0%86%E6%96%B0%E7%9A%84%E5%BA%8F%E5%88%97%E6%B1%82%E5%92%8C%2C%E5%B0%86%E5%92%8C%E8%B5%8B%E5%80%BC%E5%88%B0%E4%B8%80)
matlab 不用conv求卷积随便定义两个序列,假设为n1,n2,想实现两个序列卷积,翻折,移位,相乘是自己写的函数,前面都没问题,就是在for循环两个序列相乘得到新的序列,将新的序列求和,将和赋值到一
matlab 不用conv求卷积
随便定义两个序列,假设为n1,n2,想实现两个序列卷积,翻折,移位,相乘是自己写的函数,前面都没问题,就是在for循环两个序列相乘得到新的序列,将新的序列求和,将和赋值到一个数组中,把数组画出来,求指教
n1=0:2;
x1=[1,2,3];
subplot 321;stem(n1,x1);title('x1');
n2=0:2;
x2=[3,4,5];
subplot 322;stem(n2,x2);title('x2');
k3=length(n1)+length(n2);
a=[];
for i=1:1:k3
[n3,n4]=fan(x2,n2);
subplot 323;stem(n4,n3);title('翻折');
[k1,k2]=sigshift(x2,n2,i);
subplot 324;stem(k2,k1);title('移位');
[n5,n6]=sigmult(x1,n1,k1,k2);
%subplot 325;stem(n6,n5);title('相乘');
a=sum(n5);
end
subplot 325;stem(k3,a);
matlab 不用conv求卷积随便定义两个序列,假设为n1,n2,想实现两个序列卷积,翻折,移位,相乘是自己写的函数,前面都没问题,就是在for循环两个序列相乘得到新的序列,将新的序列求和,将和赋值到一
自己写个卷积的函数行不行?输入的x和y都是行向量:
function jj=juanji(x,y)
M=length(x);
N=length(y);
x=[x,zeros(1,N-1)];
y=[y,zeros(1,M-1)];
sum = 0;
for m=1:M+N-1
for n=1:m
sum = sum + x(n)*y(m+1-n);
end
jj(m)=sum;
sum=0;
end