matlab 怎样用conv()函数求 sin(t)和cos(t)的卷积

matlab 怎样用conv()函数求 sin(t)和cos(t)的卷积,第1张

呵呵时域的

卷积

等于频域的直接相乘

我们先将他们傅里叶变化,相乘后反傅里叶变化就可以了

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))

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

原文地址:https://54852.com/langs/13493799.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存