FFT变换数据不够2的次幂时咋解决。

yihuagongzi 2010-12-01 03:10:59
如题,我采集一周数据,比如1995个数据,不够2048个数据,那咋补零呢,

我采集数据为X[1995]={120,125,123,,,,,,,,,,,,121,120},把X[1996]-X[2048]都赋值为120吗?


另外如果我一周期采集为2050个点,我是否也把2051到4096都赋值为2050对应的数值吗?

...全文
3094 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemonlinger 2011-06-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 fancymouse 的回复:]

>用一个全部是正数的模板来测试一下,返回的 FFT 结果会是正负相间的
乃这模板真胡扯。原数据正数只保证FFT的常数系数是正数。正确的图像就应该是有负的,而且不是什么相间,应该是近似随机出现正负。
[/Quote]

“正确的图像就应该有负的。”
那怎么得到原图像的值呢,为什么补零后使用matlab的函数fft变换之后,再反变换能得到和原图像一样的值呢
yihuagongzi 2011-04-15
  • 打赏
  • 举报
回复
谢谢大家踊跃回复,经过这几个月的学习FFT,已经问题解决了,补0只不过在原来频率基础上进行频率、幅值的插值,对原频率的幅值没有影响,但是一定要找准原频率就可以了,还有FFT需要2的n次幂的数据,限制很多采集,建议用DFT,这样比较容易理解和准确。
cnmhx 2010-12-18
  • 打赏
  • 举报
回复
如果你的目的仅仅是数据压缩之类的,那在原始数据两端或任何一端填0即可。
但是假如你要对变换的数据进行专业分析,则这样做就有弊端。
zhoujk 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 karen99 的回复:]
,我们补其它数反回来就是其它的信号,他们其实都不是真正的原始信号,上面有同学说补镜象值,不知道效果怎样,但是在图象处理里,我试过平滑边界,效果好很多,也就是说做FFT千万不要做边界变化很大的信号,那样失真很大,因为周期延拓后高频成分很大。
[/Quote]
那我们把数据放在中间,两侧用0来补齐,岂不是更好?
cnmhx 2010-12-07
  • 打赏
  • 举报
回复
补够零呗!
如果你的数据具有特殊的边界条件,譬如周期的,或者对称的,可以在数据头尾相应处理。
SomethingWrong 2010-12-07
  • 打赏
  • 举报
回复
楼主是不是这个意思?
数据里连续采集的。一个周期的采样次数n,不是2的整数幂。
如果是这样的话可以考虑先作插值计算,把2050个数变成2048个数。
SomethingWrong 2010-12-07
  • 打赏
  • 举报
回复
楼主是不是这个意思?
数据里连续采集的。采样一个周期的采样次数n,不是2的整数幂。
如果是这样的话可以考虑先作插值计算,把2050个数变成2048个数。
nicklisir 2010-12-04
  • 打赏
  • 举报
回复
关注,我数学不好
zhoujk 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 karen99 的回复:]
这位同学提醒了我,如果直接补0会不会引入高频成分呢,是补零好还是补120也就是最后一个数值好呢
[/Quote]
按冈萨雷斯版的《数字图像处理》一书的说法,是补0,而且我做过IFFT,得到的结果和源结果相同。至于在 FFT 结果中的不同,就真的没法说了。如果你试了,请把结果给我说一下,OK?
FancyMouse 2010-12-03
  • 打赏
  • 举报
回复
>用一个全部是正数的模板来测试一下,返回的 FFT 结果会是正负相间的
乃这模板真胡扯。原数据正数只保证FFT的常数系数是正数。正确的图像就应该是有负的,而且不是什么相间,应该是近似随机出现正负。
karen99 2010-12-03
  • 打赏
  • 举报
回复
zhoujk,我又跟着你跑这里来了:)

根据我对付立叶变换的理解,我们对某一有限信号做FFT都是这个信号的周期延拓的付立叶变换,而我们只看其中的一个周期,反变换当然就是这个周期的信号了,不管补0还是其它.我们补0反回来就是0,我们补其它数反回来就是其它的信号,他们其实都不是真正的原始信号,上面有同学说补镜象值,不知道效果怎样,但是在图象处理里,我试过平滑边界,效果好很多,也就是说做FFT千万不要做边界变化很大的信号,那样失真很大,因为周期延拓后高频成分很大。

不知道我说清楚了没有:)

[Quote=引用 12 楼 zhoujk 的回复:]

引用 8 楼 karen99 的回复:
这位同学提醒了我,如果直接补0会不会引入高频成分呢,是补零好还是补120也就是最后一个数值好呢

按冈萨雷斯版的《数字图像处理》一书的说法,是补0,而且我做过IFFT,得到的结果和源结果相同。至于在 FFT 结果中的不同,就真的没法说了。如果你试了,请把结果给我说一下,OK?
[/Quote]
zhoujk 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fancymouse 的回复:]
>如果直接补0会不会引入高频成分呢
所以有一种做法是,拿最后一段数据镜像以后填充到后面,比如结尾是123,122,121,120,要填充3个数据,那就填充121,122,123。当然俺个人觉得这个没啥用。

>但是FFT正逆变换之后,原来负值都变为正值了
要么是实现渣了,要么有溢出问题
[/Quote]
用一个全部是正数的模板来测试一下,返回的 FFT 结果会是正负相间的,即 +-+-+-+-+-... 为了显示出正确的图像,一般采用的方法是乘以一个 +1-1+1-1 的模板。如果进行 iFFT 运算,则需要在运算运算后乘以这个模板,否则和源数据不符合。
FancyMouse 2010-12-02
  • 打赏
  • 举报
回复
>如果直接补0会不会引入高频成分呢
所以有一种做法是,拿最后一段数据镜像以后填充到后面,比如结尾是123,122,121,120,要填充3个数据,那就填充121,122,123。当然俺个人觉得这个没啥用。

>但是FFT正逆变换之后,原来负值都变为正值了
要么是实现渣了,要么有溢出问题
yihuagongzi 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 karen99 的回复:]
这位同学提醒了我,如果直接补0会不会引入高频成分呢,是补零好还是补120也就是最后一个数值好呢
[/Quote]

====================================================================
是呀,到底是该补0,还是补120呢,哪个能真实反映波形呢,

还有个问题,就是如果 初始数据有负值,但是FFT正逆变换之后,原来负值都变为正值了,这是怎么回事,
karen99 2010-12-01
  • 打赏
  • 举报
回复
这位同学提醒了我,如果直接补0会不会引入高频成分呢,是补零好还是补120也就是最后一个数值好呢
zhoujk 2010-12-01
  • 打赏
  • 举报
回复
不对,我看错了,是把 [1996]-[2048]都赋值为0
zhoujk 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 yihuagongzi 的回复:]
如题,我采集一周数据,比如1995个数据,不够2048个数据,那咋补零呢,

我采集数据为X[1995]={120,125,123,,,,,,,,,,,,121,120},把X[1996]-X[2048]都赋值为120吗?


另外如果我一周期采集为2050个点,我是否也把2051到4096都赋值为2050对应的数值吗?
[/Quote]
对啊,就这么做。你可以用逆运算来检查一下,这么做的话,返回的结果和修补后的输入是一样的。
yihuagongzi 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 litaoye 的回复:]
信号分析这块儿我不懂,我说的是多项式乘法的,不过应该差不多,你试试吧!


引用 3 楼 yihuagongzi 的回复:

引用 1 楼 litaoye 的回复:
把前面补0就可以了!


=================================
怎么个补法?说详细点好吗?

前面指什么?
[/Quote]
==================================================
还是不懂,希望高手来帮忙。
绿色夹克衫 2010-12-01
  • 打赏
  • 举报
回复
信号分析这块儿我不懂,我说的是多项式乘法的,不过应该差不多,你试试吧!

[Quote=引用 3 楼 yihuagongzi 的回复:]

引用 1 楼 litaoye 的回复:
把前面补0就可以了!


=================================
怎么个补法?说详细点好吗?

前面指什么?
[/Quote]
yihuagongzi 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 litaoye 的回复:]
把前面补0就可以了!
[/Quote]

=================================
怎么个补法?说详细点好吗?

前面指什么?
加载更多回复(1)

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧