傅里叶变换的循环卷积不等于两个傅里叶变换乘法?gydF4y2Ba

39视图(30天)gydF4y2Ba
范家谦阮gydF4y2Ba
范家谦阮gydF4y2Ba 2023年6月15日15:31gydF4y2Ba
评论道:gydF4y2Ba 范家谦阮gydF4y2Ba2023年6月17日21:01gydF4y2Ba
在傅里叶理论中,无论离散或连续傅里叶变换,我们有一个重要的属性gydF4y2Ba 所以,圆形的傅里叶变换的卷积gydF4y2Ba fgydF4y2Ba 和gydF4y2Ba ggydF4y2Ba 应该等于乘法的傅里叶变换gydF4y2Ba fgydF4y2Ba 和gydF4y2Ba ggydF4y2Ba 。虽然我是严格从MATLAB教程,我不能证明这个属性。我做错了什么?你能给我解释一下吗?gydF4y2Ba
N = 32;gydF4y2Ba%数量的网格点gydF4y2Ba
L = 1;gydF4y2Ba%的问题领域gydF4y2Ba
h = L / N;gydF4y2Ba% 1细胞大小= x (2) - (1)gydF4y2Ba
x = 0: h: L-h;gydF4y2Ba%的网格点gydF4y2Ba
规模= 2 *π/ L;gydF4y2Ba%规模整数个波数为波数域[0,1]gydF4y2Ba
ξ= fftshift (- N / 2: N / 2 - 1) *规模;gydF4y2Ba%波数gydF4y2Ba
f = exp (cos(2 *π* x));gydF4y2Ba%函数1gydF4y2Ba
g = exp (sin(2 *π* x));gydF4y2Ba%功能2gydF4y2Ba
dfdx =传输线(1 j *。* fft (f));gydF4y2Ba% f使用fft的导数gydF4y2Ba
dgdx =传输线(1 j *。* fft (g));gydF4y2Ba% g使用fft的导数gydF4y2Ba
关闭gydF4y2Ba所有gydF4y2Ba
图(位置= [100、100、800、300])gydF4y2Ba
%衍生品是完全正确的,因此xi的定义就可以了。gydF4y2Ba
次要情节(1、3、1)gydF4y2Ba
情节(x, dfdx,gydF4y2Ba“k -”gydF4y2Bax - 2 *π* f。*罪(2 *π* x),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba、标题(gydF4y2Ba“df / dx美元”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
次要情节(1、3、2)gydF4y2Ba
情节(x, dgdx,gydF4y2Ba“k -”gydF4y2Bax 2 *π* g。* cos(2 *π* x),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba、标题(gydF4y2Ba“dg / dx美元”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
%计算循环卷积后MATLAB文档:gydF4y2Ba
% https://uk.mathworks.com/help/signal/ug/linear-and-circular-convolution.htmlgydF4y2Ba
fpad = [f, 0(1,长度(g) 1)];gydF4y2Ba
gpad = (g, 0(1,长度(f) 1)];gydF4y2Ba
ccirc =传输线(fft (fpad)。* fft (gpad));gydF4y2Ba
f_cconv_g = ccirc (1: N);gydF4y2Ba
次要情节(1、3、3)gydF4y2Ba
情节(x, f_cconv_g,线宽= 2),网格gydF4y2Ba在gydF4y2Ba、标题(gydF4y2Ba“f \ ast g美元”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
f_lconv_g = conv (f, g);gydF4y2Ba
%比较线性卷积和循环卷积(后gydF4y2Ba
% MATLAB文档)- - - >结果很好,所以没有问题!gydF4y2Ba
规范(ccirc f_lconv_g,gydF4y2Ba“正”gydF4y2Ba)gydF4y2Ba%比较好gydF4y2Ba
ans = 1.7764 e-14gydF4y2Ba
%我的问题是这里!gydF4y2Ba
f_cconv_g_fft = fft (f_cconv_g);gydF4y2Ba
fhat_time_ghat = fft (f)。* fft (g);gydF4y2Ba
%在数学上,我们知道fft (f-convolute-g)应该等于fft (f)gydF4y2Ba
%,* fft (g)。但这不是验证。gydF4y2Ba
图(位置= [500、500、800、300])gydF4y2Ba
次要情节(1、2、1),gydF4y2Ba
情节(x,真实(f_cconv_g_fft),gydF4y2Ba“k -”gydF4y2Ba,x,真正的(fhat_time_ghat),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba
标题(gydF4y2Ba" $ \ mathrm{你}[\ widehat {f ast g} \] $”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
次要情节(1、2、2)gydF4y2Ba
情节(x,图像放大(f_cconv_g_fft),gydF4y2Ba“k -”gydF4y2Ba,x,图像放大(fhat_time_ghat),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba
标题(gydF4y2Ba" $ \ mathrm {Im} [\ widehat {f ast g} \] $”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
1评论gydF4y2Ba
约翰D 'ErricogydF4y2Ba
约翰D 'ErricogydF4y2Ba 2023年6月15日十七25gydF4y2Ba
你也发布了这个相同的问题回答另一个问题。我删除了这个答案,因为这是没有任何答案。gydF4y2Ba

登录置评。gydF4y2Ba

接受的答案gydF4y2Ba

保罗gydF4y2Ba
保罗gydF4y2Ba 2023年6月15日21:21gydF4y2Ba
编辑:gydF4y2Ba保罗gydF4y2Ba 2023年6月15日21:22gydF4y2Ba
嗨,速度gydF4y2Ba
考虑下面的环形和线性卷积的区别。gydF4y2Ba
N = 32;gydF4y2Ba%数量的网格点gydF4y2Ba
L = 1;gydF4y2Ba%的问题领域gydF4y2Ba
h = L / N;gydF4y2Ba% 1细胞大小= x (2) - (1)gydF4y2Ba
x = 0: h: L-h;gydF4y2Ba%的网格点gydF4y2Ba
f = exp (cos(2 *π* x));gydF4y2Ba%函数1gydF4y2Ba
g = exp (sin(2 *π* x));gydF4y2Ba%功能2gydF4y2Ba
补零输入用于计算fft线性卷积,对其持续时间,两个有限时间信号。gydF4y2Ba
f和g的线性卷积的持续时间gydF4y2Ba
D =元素个数(f) +元素个数(g) - 1;gydF4y2Ba
%这段代码工作gydF4y2Ba
% fpad = [f, 0(1,长度(g) 1)];gydF4y2Ba
% gpad = (g, 0(1,长度(f) 1)];gydF4y2Ba
%,但我更喜欢gydF4y2Ba
fpad = [f, 0 (1 D -元素个数(f)));gydF4y2Ba
gpad = (g, 0 (1 D -元素个数(g)));gydF4y2Ba
现在,因为填充,传输线计算下一个是真正从n = 0到n = D 1 D元素的线性卷积f和g,必须这样基于相比conv接下来(f, g)。gydF4y2Ba
% ccirc =传输线(fft (fpad)。* fft (gpad));gydF4y2Ba
clinear =传输线(fft (fpad)。* fft (gpad));gydF4y2Ba
% f_cconv_g = ccirc (1: N);gydF4y2Ba
f_lconv_g = conv (f, g);gydF4y2Ba
%比较线性时域卷积计算和线性卷积gydF4y2Ba
通过在频域零填充%计算。比较完整的gydF4y2Ba
%序列,而不仅仅是第N个元素。gydF4y2Ba
%规范(ccirc f_lconv_g,“正”)%比较好gydF4y2Ba
规范(clinear f_lconv_g,gydF4y2Ba“正”gydF4y2Ba)gydF4y2Ba%比较好gydF4y2Ba
ans = 1.7764 e-14gydF4y2Ba
%我的问题是这里!gydF4y2Ba
% f_cconv_g_fft = fft (f_cconv_g);gydF4y2Ba
没有补零,fft的产物的f和g的f和g的循环卷积gydF4y2Ba
fhat_time_ghat = fft (f)。* fft (g);gydF4y2Ba
或者我们可以计算出循环卷积gydF4y2Ba cconvgydF4y2Ba f和g,然后用fft的结果gydF4y2Ba
f_cconv_g_fft = fft (cconv (f, g,元素个数(f)));gydF4y2Ba
显示平等gydF4y2Ba
规范(f_cconv_g_fft fhat_time_ghat,gydF4y2Ba“正”gydF4y2Ba)gydF4y2Ba
ans = 4.1388 e-14gydF4y2Ba
图(位置= [500、500、800、300])gydF4y2Ba
次要情节(1、2、1)gydF4y2Ba
情节(x,真实(f_cconv_g_fft),gydF4y2Ba“k -”gydF4y2Ba,x,真正的(fhat_time_ghat),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba
标题(gydF4y2Ba" $ \ mathrm{你}[\ widehat {f ast g} \] $”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
次要情节(1、2、2)gydF4y2Ba
情节(x,图像放大(f_cconv_g_fft),gydF4y2Ba“k -”gydF4y2Ba,x,图像放大(fhat_time_ghat),gydF4y2Ba“——”gydF4y2Ba线宽= 2),网格gydF4y2Ba在gydF4y2Ba
标题(gydF4y2Ba" $ \ mathrm {Im} [\ widehat {f ast g} \] $”gydF4y2Ba翻译=gydF4y2Ba“乳胶”gydF4y2Ba)gydF4y2Ba
总之,与f和g信号长度为N的:gydF4y2Ba
的产品在fft的f和g的fft线性卷积的f和g(只要填充足够长)gydF4y2Ba
fft的产物的f和g的金融交易税N-circular f和g的卷积gydF4y2Ba
5个评论gydF4y2Ba
范家谦阮gydF4y2Ba
范家谦阮gydF4y2Ba 2023年6月17日21:01gydF4y2Ba
你好保罗:对不起我迟到了昨天回应——我超级忙。我想做的是什么gydF4y2Ba 在傅里叶空间中执行循环卷积gydF4y2Ba 。最初,我以为使用gydF4y2Ba
传输线(fft (fhat)。* fft(山路))gydF4y2Ba
是不可能,因为fhat山路已经在傅里叶空间。然而,结果可能一样,数学证明是相同的。然而,正如您指出gydF4y2Ba @Matt JgydF4y2Ba 使用这两种方法提供优秀的解决方案。我试着gydF4y2Ba @Matt JgydF4y2Ba 显示代码,做魅力。谢谢你的超级支持。万博1manbetxgydF4y2Ba

登录置评。gydF4y2Ba

更多的答案(0)gydF4y2Ba

社区寻宝gydF4y2Ba

找到宝藏在MATLAB中央,发现社区如何帮助你!gydF4y2Ba

开始狩猎!gydF4y2Ba