首页天道酬勤频域的卷积等于时域,matlab时域图

频域的卷积等于时域,matlab时域图

张世龙 05-13 02:11 75次浏览

时域卷积定理:

wiki:f { fg }=f { f } f { g } f\{ f * g\}=f\{ f\}\cdotf\{ g\} f { f } f { g } }

百度: f1(t ) f1 )) f_1(t ) leftrightarrowf_1(Omega ) f1(t)、F2 (t ) F2 () f )2(t ) ) ) omega

维客: f { f g }=

F { f } ∗ F { f } F\{f \cdot g\}=F\{f\} * F\{f\} F{f⋅g}=F{f}∗F{f} 或者 f ∗ g = F − 1 { F { f } ⋅ F { g } } f*g=F^{-1}\{F\{f\} \cdot F\{g\}\} f∗g=F−1{F{f}⋅F{g}}
百度: f 1 ( t ) ↔ F 1 ( ω ) f_1(t)\leftrightarrow F_1(\omega) f1​(t)↔F1​(ω), f 2 ( t ) ↔ F 2 ( ω ) f_2(t)\leftrightarrow F_2(\omega) f2​(t)↔F2​(ω): F [ f 1 ( t ) ⋅ f 2 ( t ) ] = 1 2 π F 1 ( ω ) ∗ F 2 ( ω ) F[f_1(t)\cdot f_2(t)]=\frac{1}{2\pi}F_1(\omega) * F_2(\omega) F[f1​(t)⋅f2​(t)]=2π1​F1​(ω)∗F2​(ω)

总体上很相似但是在频域卷积定理上百度百科多除了一个 2 π 2\pi 2π,原因未知。接下来使用matlab验证卷积定理,当前网上都是矩阵验证且使用了IFFT,并不能实实在在的观察到卷积定理,而且在真正项目编码实现的时候既然使用到卷积定理,那大部分是不想用IFFT了。
时域卷积定理:

x1=[1 2 3 4 5];x2=[2 3 4 5 6];yx1=fft(x1);yx2=fft(x2);xx=cconv(x1, x2, 5); fftxx=fftshift(fft(xx));test=fftshift(yx1).* fftshift(yx2);


频域卷积定理:

x1=[1 2 3 4 5];x2=[2 3 4 5 6];yx1=fft(x1);yx2=fft(x2);xx=x1.*x2;fftxx=fftshift(fft(xx));fftxx=fftxx*5;test = ifftshift( cconv( fftshift(yx1), fftshift(yx2),5 ) );


以上:

频域卷积定理验证时的结果形式和WIKI上的是一致的,百度百科上的可能需要该函数或者其他的一些操作。在网上很多验证失败的根本原因是函数使用不正确,要想得到验证,每一个变量fft后都需要做一次fftshift,因为fft后频率是[0,fs/2] +[-fs/2,0]的形式,而shift后则变成[-fs/2,fs/2]。其次,卷积不可直接使用conv或者conv2等线性卷积(即我们经常使用的一种卷积方式,详见matlab的conv文档),直接使用的是cconv圆周卷积,原因是:fft本身是一个无限操作,圆周卷积也可以变成一种无限操作。在频域卷积定理中,卷积之后需要乘以x1或者x2的长度(或者圆周卷积后除以x2长度,好像是圆周卷积做了x2长度个周期),x1和x2的长度肯定是相同的,因为两个之间的操作是点乘。线性卷积和循环卷积可以互换。
傅里叶变换对,傅里叶卷积定理公式 常用信号的卷积公式,信号与系统卷积怎么求