24小时热门版块排行榜    

查看: 3691  |  回复: 3

zyj8119

木虫 (著名写手)

[交流] 【转帖】(分形)布朗运动的Matlab生成代码 已有3人参与

本人是研究分形理论的,看到论坛上有人求助如何生成布朗运动,特贡献出一段代码。

生成(分形)布朗运动的近似方法主要有随机中点位移法(RMD),快速付立叶换(FFT),后者精度很高且性能好。我所写代码是paxson论文中的S语言代码翻译过来的,希望对大家有所帮助。

***********************刚才传txt文件说附件内容非法,只好贴在下面***************************
CODE:
function similar_sequence = generator_FFT(n,H)   
%--------------------------------------------------------------------------  
% GENERATOR_FFT Use fast fourier transform to generate normalized FGN   
%     and FBM. Then use Norrs method to generate normalized  
%     similar_sequence. Finally, the average of similar_sequence was set to   
%     1 through normaliztion. 
%     
%     Note:   
%     1. The input argument n is the number of point of sequence. It must |   
%     be even. H is the objective similarity you want. 
%     2. The output argument similar_sequence is a similar_sequence with 
%     average equal to 1. The FGN and FBM are normalized FGN and FBM   
%     respectively.   
%     3. This routine is a matlab version of paxson's R routine. For more   
%     details, see "Fast, approximate synthesis of fractional Gaussian   
%     noise for generating self-similar network traffic
%--------------------------------------------------------------------------  

%--------------------------------------------------------------------------   
%  
%    generator_FFT   
%    Edit by Chu Chen, 07/07/2007
%    Should you have any suggestion for improving the code, please contact:  
%    [email]chuch@scut.edu.cn[/email].
%--------------------------------------------------------------------------

if mod(n,2) ~= 0 
    error('The input argument "n" must be even');
else   
    % Returns a Fourier-generated sample path of a "self similar" process   
    % Consisting of n points(n should be even) and Hurst paramenter H   
    n = n/2;   
    lambda = [1:n]*pi/n;  

    % Approxiamte ideal power spectrum.  
    f = FGNspectrum(lambda,H);
  
    % Adjust for estimating power spectrum via periodogram   
    f = f.*exprnd(1,1,n); 
  
    % Construct corresponding complex numbers with randm phase  
    alpha = 2*pi.*unifrnd(0,1,1,n);
    a = sqrt(f).*cos(alpha);   
    b = sqrt(f).*sin(alpha);
    z = complex(a,b); 
  
    % Last element should have zero phase
    z(n) = abs(z(n));
  
    % Expand z to correspond to a Fourier transform of a real-valued signal.   
    zprime = [0,z,conj(fliplr(z(1:n-1)))]; 
  
    % Inverse FFT gives sample path.
    FGN = real(ifft(zprime));   
      
    % Standardize FGN and create FBM.   
    FGN = (FGN-mean(FGN))/std(FGN);
    FBM = cumsum(FGN);   

    % Use Norrs method to generate normalized similar_sequence
    similar_sequence = FGN;   
      
    % M = 30;   
    % a = 5;   
    % similar_sequence = M + sqrt(a*M)*similar_sequence;   
    % similar_sequence = max(0,similar_sequence);  
    % similar_sequence = similar_sequence*2*n/sum(similar_sequence);   
end;   
%----------------------------subfunction1----------------------------------  
function f = FGNspectrum(lambda,H) 
% Returns an approximation of the power spectrum of FGN at the given   
% frequencies lambda and the given Hurst parameter H.   
f = 2*sin(pi*H)*gamma(2*H+1).*(1-cos(lambda)).*(lambda.^(-2*H-1) + FGNest(lambda,H));  
  
%----------------------------subfunction2----------------------------------  
function est = FGNest(lambda,H)  
% Returns the estimate for B(lambda,H).  
d = -2*H-1;   
dprime = -2*H;   
a1 = 2*1*pi+lambda;   
b1 = 2*1*pi-lambda;   
a2 = 2*2*pi+lambda; `  
b2 = 2*2*pi-lambda;   
a3 = 2*3*pi+lambda;   
b3 = 2*3*pi-lambda;  
a4 = 2*4*pi+lambda;   
b4 = 2*4*pi-lambda;  
est = a1.^d + b1.^d + a2.^d + b2.^d + a3.^d + b3.^d + (a3.^dprime+b3.^dprime+a4.^dprime+b4.^dprime)/(8*pi*H)

[ Last edited by zyj8119 on 2010-10-17 at 16:02 ]
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peichengyan

新虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖
这个可不可以在matlab 中直接用啊
2楼2011-05-07 10:20:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风之飘渺

木虫 (小有名气)

好用么
风之飘渺
3楼2011-05-07 10:50:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

福尔摩静

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
请问楼主 H是赫斯特指数吗?
4楼2017-12-19 10:11:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 HFw0lei2R37i 2026-08-14 7/350 2026-08-15 00:40 by 4wMiSEwB6436
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-15 00:16 by 4wMiSEwB6436
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +23 医学老男孩 2026-08-13 49/2450 2026-08-14 20:02 by zhaifei
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +6 Tide man 2026-08-14 7/350 2026-08-14 18:36 by 正能量1斤
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[基金申请] 好奇怪的filecode +6 布布和一二 2026-08-08 7/350 2026-08-14 13:38 by Equinoxhua
[论文投稿] 职称评审,求友友推荐见刊最快的期刊 +5 工厂打螺丝 2026-08-08 5/250 2026-08-14 11:03 by 玖戈弋
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
信息提示
请填处理意见