24小时热门版块排行榜    

查看: 1176  |  回复: 6
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 yjjyjjhh 的 10 个金币

yjjyjjhh

银虫 (小有名气)

[交流] 利用FT和DFT计算卷积

我在将cos变换转成卷积形式的积分,因为:(1)采用对数坐标采样适合我后续的工作;(2)转换后余弦项的傅里叶变换有解析表达式。
但在一些区间上,计算结果和matlab命令conv的计算结果不太一致。求大佬帮我指点指点。

由于涉及公式,具体思路和结果放到图片里了。

感谢!金币有限,谢意无限!



图片无法上传。。。。。只能用网盘了

链接: https://pan.baidu.com/s/1zE0XMWYLrsBsP8upQHrA-Q 提取码: arav

链接: https://pan.baidu.com/s/1meCLiNqfNvWf6td0TKtXVQ 提取码: ygem
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名


小木虫: 金币+0.5, 给个红包,谢谢回帖
conv(a,b)=ifft(fft(a1).*fft (b1)),a和b要先补0到a和b的两者长度之和-1的长度,即补0的结果为a1和b1,再计算fft。如果想用2的整数次幂计算fft,还要多补0,计算结果丢弃掉多余的点

发自小木虫Android客户端
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
2楼2021-12-18 09:31:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yjjyjjhh

银虫 (小有名气)

引用回帖:
2楼: Originally posted by qqinly at 2021-12-18 09:31:12
conv(a,b)=ifft(fft(a1).*fft (b1)),a和b要先补0到a和b的两者长度之和-1的长度,即补0的结果为a1和b1,再计算fft。如果想用2的整数次幂计算fft,还要多补0,计算结果丢弃掉多余的点

...

你好。麻烦问一下,计算结果丢掉多余的点是指什么?比如a和b的原来数据点都为N0,补零到2*N0。需要丢到哪些点?另外,若a的傅里叶变换有解析解,有什么需要注意的地方?谢谢
3楼2021-12-18 17:22:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by yjjyjjhh at 2021-12-18 17:22:49
你好。麻烦问一下,计算结果丢掉多余的点是指什么?比如a和b的原来数据点都为N0,补零到2*N0。需要丢到哪些点?另外,若a的傅里叶变换有解析解,有什么需要注意的地方?谢谢...

我是说,如果你用2的整数次幂的点数计算fft和ifft,而你滑动计算出来的卷积结果小于这个点数的话,最后ifft计算出来的结果只保留前面一段和卷积长度一样的点。另外,卷积的结果的长度是两组数长度之和减1。
这个就是公式推导出来的卷积和fft的等价关系。
不清楚的就用matlab跑几个数验证一下。

发自小木虫Android客户端
学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
4楼2021-12-18 19:42:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yjjyjjhh

银虫 (小有名气)

引用回帖:
4楼: Originally posted by qqinly at 2021-12-18 19:42:00
我是说,如果你用2的整数次幂的点数计算fft和ifft,而你滑动计算出来的卷积结果小于这个点数的话,最后ifft计算出来的结果只保留前面一段和卷积长度一样的点。另外,卷积的结果的长度是两组数长度之和减1。
这个就 ...

非常感谢耐心解答!我理解这个了。
我运算结果要移位后才能与conv计算结果在中间一定区间吻合,而在区间两端差异很大(链接2中的图),我以为您说的和这个有关。。这里面有两个问题我不知道为什么:(1)为什么要移位?(2)为什么只在一定区间吻合?
非常感谢!
若是方便,可以加我的QQ:610005697指导一下吗?若不嫌弃,可以有偿。非常感谢!!!
5楼2021-12-19 14:36:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
yjjyjjhh: 金币+10 2021-12-20 16:20:38
引用回帖:
5楼: Originally posted by yjjyjjhh at 2021-12-19 14:36:09
非常感谢耐心解答!我理解这个了。
我运算结果要移位后才能与conv计算结果在中间一定区间吻合,而在区间两端差异很大(链接2中的图),我以为您说的和这个有关。。这里面有两个问题我不知道为什么:(1)为什么要 ...

如果数据只有几千个点,直接一次卷积conv或用FFT/IFFT就搞定了,如果数据点数较多,是分段FFT/IFFT的话,分段取的数据,每段数据的前后要多取数据长度-1那么长的数据点再进行FFT/IFFT。
另外,看数据是否吻合,你还是再画两幅相减以后的图吧。
私聊给你联系方式

» 本帖已获得的红花(最新10朵)

学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
6楼2021-12-19 22:19:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yjjyjjhh

银虫 (小有名气)

送红花一朵
引用回帖:
6楼: Originally posted by qqinly at 2021-12-19 22:19:30
如果数据只有几千个点,直接一次卷积conv或用FFT/IFFT就搞定了,如果数据点数较多,是分段FFT/IFFT的话,分段取的数据,每段数据的前后要多取数据长度-1那么长的数据点再进行FFT/IFFT。
另外,看数据是否吻合,你 ...

您好,已私信。非常感谢!
7楼2021-12-20 16:21:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yjjyjjhh 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见