24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2282  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

hqyzt

木虫 (小有名气)

[求助] 色散关系 一维傅里叶变换 1D-fft 数据解读已有2人参与

第一幅图中的任意一条直线代表一个前沿波。第二幅图表示色散关系。我的最终目的是获得每一条波对应的色散关系。
我的做法是:我采用getdata,对图像建立坐标,然后获取了波(x,y)的值对图中任意一个前沿波进行一维傅里叶变换,得到若干个频率,振幅,相位等数据点。
而问题是,频率,振幅和相位所对应的数据点如何能够转换成该前沿波的色散关系,也就是波数与角频率之间的关系?若不能,那么问题出在哪?需要补充哪些条件后,才能知晓。

附上参考文献的做法:
After a background subtraction, the front line is tracked down by an intensity threshold criterion and subjected to a one-dimensional Fourier transform. To resolve the continuous spectrum correctly, a Hamming window is applied before the fast Fourier transform. For the determination of the dispersion relation, an exponential function A(k,t)= A0(k)exp{n(k)t} is fitted to the time evolution of the lowest 30 modes, yielding a growth rate n(k) for each of these modes.

色散关系 一维傅里叶变换 1D-fft 数据解读
2.jpg


色散关系 一维傅里叶变换 1D-fft 数据解读-1
3.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengyongyb

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
hqyzt: 金币+50, ★★★很有帮助, 感谢 2014-04-25 15:41:25
你对图中任意一个前沿波(比如ti 时刻的)进行一维傅里叶变换,相当于把t时刻的A(x)--->A(k), 得到的不是频率,而是波数,当然了,是t时刻的, 记作A(k,ti);
你把图中每一个前时刻的前沿波都进行这样的一维傅里叶变换,得到每个时刻的A(k,ti);

每个k, 对A(k,ti) 作时间傅里叶变换,就得到
A(k,w) ,
w是频率;
每个k, A(k,w) 显然是w的函数,但是一般很尖锐,认为其中使 A(k,w)最大的那个w附近A(k,w)不为0, 其他地方为0;这个w我们记为wk,
每个k对应的wk显然是不一样的,对应画出来就是色散图了
4楼2014-04-25 13:01:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengyongyb

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
hqyzt: 金币+10, ★★★很有帮助, 感谢 2014-04-26 07:54:58
引用回帖:
5楼: Originally posted by hqyzt at 2014-04-25 15:38:22
1. 第一个一维傅里叶变换,是傅里叶正变换还是负变换?用什么软件可以实现呢?...


你不是做过吗?
等距取2N个点,然后快速傅里叶变换啊,这个用matlab可以,也可以自己编一个fortran程序啊,代码可以直接在网上下
8楼2014-04-25 20:47:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengyongyb

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
hqyzt: 金币+10, ★★★很有帮助, 感谢 2014-04-26 07:55:04
引用回帖:
5楼: Originally posted by hqyzt at 2014-04-25 15:38:22
1. 第一个一维傅里叶变换,是傅里叶正变换还是负变换?用什么软件可以实现呢?...

注意每条线取点时采用的间距都要相等,这样出来的k单位才一样啊
9楼2014-04-25 20:50:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengyongyb

金虫 (正式写手)

引用回帖:
7楼: Originally posted by hqyzt at 2014-04-25 17:06:10
每个k, 对A(k,ti) 作时间傅里叶变换. 这是什么意思?抱歉,我才疏学浅,实在没看懂。...

你每条线作fft不是都会出来一组{A(k)}嘛,其中 k=1,2,.....,2N-1, 2N,
对时间的fft这样做:
每个k都做一次, 比如,k=8情况,我把每条线fft变换出的A(8)都拿出来,如果有2M条线,不就有2M个A(8)值嘛,相当于t=0s的A(8)值,t=6s的A(8)值,t=12s的A(8)值,。。。。。t=6*2M秒的A(8)值,2M个A(8)值分别对应2M个时刻点,直接fft就行啦啊
10楼2014-04-25 21:05:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengyongyb

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
hqyzt: 金币+30, ★★★★★最佳答案, 感谢 2014-04-29 10:23:45
引用回帖:
11楼: Originally posted by hqyzt at 2014-04-26 07:54:41
谢谢您的帮助。采用matlab里面的fft程序,对A(x)进行了傅里叶变换,用abs命令读取出了幅度,但波数k 如何获取呢?请指教...

这个啊,k=0, 1, 2, 3, 4, .......啊,单位你和标准形式对比得到:
标准:A(xj)=A(K)exp[iK xj]对k求和,  xj=j*Dx, 这里Dx为取点间隔, K为要求的量;
matlab:A(xj)=A(k)exp[i2Pi k xj/N]对k求和, xj=j;
两种形式是一样的,只是量的单位不同,所以形式不同,[]里的相等有:
K xj=2Pi k xj/N
K j*Dx=2Pi k j/N
K =2Pi k /DxN

时间是找频率也可类似的来
最好找本傅里叶变换的数看看吧
12楼2014-04-26 15:07:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hqyzt 的主题更新
信息提示
请填处理意见