
呵呵时域的
等于频域的直接相乘
我们先将他们傅里叶变化,相乘后反傅里叶变化就可以了
conv是离散信号的卷积,不是连续信号的卷积函数
>>
f=fourier(sin(t))fourier(cos(t))
f
=
ipi^2(dirac(w+1)-dirac(w-1))(dirac(w+1)+dirac(w-1))
>>
ifourier(f)
ans
=
ipi^2(-ifourier(dirac(w-1)^2,w,x)+ifourier(dirac(w+1)^2,w,x))
1、在电脑桌面上打开MATLAB。
2、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中。
3、首先,输入“edit conv”这个“conv”是我准备编辑的子函数的主函数名,每个人所需的主函数名都不一样,这里可以不要那么在意。然后就可以打开相应的主函数,这是可以看到主函数所在文件夹位置。如图所示,※记住这个位置。
4、然后进行子函数的编辑,首先新建一个新的m文件,然后在编辑框中输入所要的子函数,例如我就是输入了convnem的函数,这是conv的子函数。然后点击保存。
5、接下来,在“conv”所在文件位置,将位置记录下来,将子函数的文件保存到主函数所在的文件夹即可,然后在重新的将你所需的程序(含有子函数的)输入并且执行,这时你会发现原来提示的错误没有了,那么这时调用自己添加的子函数成功了。以后有相应的子函数都可以通过这样的方法进行添加子函数。
>> x=[3,11,7,0,-1,4,2];
>> h=[2,3,0,-5,2,1];
>> conv(x,h)
ans =
6 31 47 6 -51 -5 41 18 -22 -3 8 2
-4≤n≤7
就是相当于两个多项式相乘,展开以后再合并,之后的得到的系数就是conv得到的结果。c是系数。
(1x^2+2x+31)(1x+21)=1x^3+4x^2+7x+61;
deconv可以看成是相除得到的系数。q为系数,r为余数。
希望对你有帮助。
xn 长a ,hn长b ,卷积结果yn 长度为a+b-1
如果结果的序列yn 还要参与后续的运算,例如和xn相加,那么长度就不一致了,需要截断
一般的xn或者hn非零的序列很短,两端的值为零或者趋于零,例如高斯函数,delta函数,
卷积出来的序列两端也有很多的0值,或者很小的值,可以截断
conv(a,b,'same')返回和a序列一样长的序列取于原来结果的中间
分开写。conv_m不是内部函数,Matlab不认识。
clc;clear
nx=[0:20]
x=09^nx
ny=[-20:0]
y=08^(-ny)
z1=conv(x,nx)
nz1=conv(y,(-ny))
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)