24小时热门版块排行榜    

查看: 1771  |  回复: 7

hzy0919

铜虫 (小有名气)

[交流] 【求助】S(Q)--G(r)转换问题 已有2人参与

本人用分子动力学方法计算出G(r),现在想转换为S(Q)。
自己编写个傅立叶变换程序,得到的S(Q)中主峰前部分不正确,这样就观测不到预峰了。
下面是转换图像和部分程序,请高手指点。



Matlab 程序片段
for q=1:1:size(data_cal,1)/4
    n=n+1;
    pp=spline(x_cal,(y_cal-1).*x_cal.*sin(x_cal.*q/2));
    int_pp=fnint(pp);
    re=ppval(int_pp,1);
    sq(n)=1.+re./(q/2)*4*pi*rou0;
    R(n)=q/2;
end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)


hzy0919(金币+1):谢谢参与
hzy0919(金币+1): 2010-05-24 08:11:09
主峰前面的小峰,不是你算错了,而是在傅立叶变换的时候生成的一些不该有的小峰,这些小峰是与你的G(r)有强行的截断有关的,这是傅立叶变换方法求结构因子的一个固有的问题,你需要用数据处理方法消掉这些峰,或者说明它的来源。
2楼2010-05-24 07:50:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hzy0919

铜虫 (小有名气)

引用回帖:
Originally posted by hzy0919 at 2010-05-23 10:20:53:
本人用分子动力学方法计算出G(r),现在想转换为S(Q)。
自己编写个傅立叶变换程序,得到的S(Q)中主峰前部分不正确,这样就观测不到预峰了。
下面是转换图像和部分程序,请高手指点。
[img]http://pic.muchong.com ...

查了一下,这个有些地方称为“鬼峰”,说的加一个指数因子exp(-aQ^2),试了一下不行,不知道问题出在哪里?
请高人指点
3楼2010-05-24 08:12:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★
cadick(金币+2): 2010-05-26 23:56:31
问题好像就是源自我们的G(r)在是强行截断的,而且数值总是有波动,而不是像理论上那样光滑而且收敛到1,这样傅氏变换后,结构因子的小波数部分就不正确了。所以这是方法上的一个固有的问题,相当于实验上的系统误差一样,是不能消除的,不是你的错误。最好是数据处理把它消掉,加指数因子等作法我觉得不完全合适,因为那个因子毕竟在原理上是不存在的,这样好像又引入了另外的误差。
4楼2010-05-24 10:37:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

正月圆月

金虫 (小有名气)


hzy0919(金币+1):谢谢参与
送鲜花一朵
楼主能把你的程序发给我一份吗,现在急着用结构因子,可是不会编程序。发我邮箱 aaxixilele2008@163.com 万分感谢!
5楼2012-01-01 22:23:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

uboat

银虫 (初入文坛)


hzy0919(金币+1):谢谢参与
送鲜花一朵
能把程序也发我我参考一下吗,我现在也在算这个参数,一头雾水。谢谢了。uboat2001cn@yahoo.com.cn

[ Last edited by uboat on 2012-2-15 at 19:07 ]
6楼2012-02-15 19:06:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liyuwei

木虫 (知名作家)


hzy0919(金币+1):谢谢参与
程序也送我一份吧!非常感谢,邮箱:wodehaoxiongdigege@126.com
7楼2012-02-24 14:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

解子林

新虫 (小有名气)


hzy0919(金币+1): 谢谢参与
请求楼主将程序也法我一份,万分感谢,本人邮箱490447962@qq.com
8楼2014-07-25 15:37:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hzy0919 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见