Algorithm 如何在matlab中规范化wfbm生成的信号?

Algorithm 如何在matlab中规范化wfbm生成的信号?,algorithm,matlab,simulation,physics,wavelet,Algorithm,Matlab,Simulation,Physics,Wavelet,我正在使用matlab函数生成扩散粒子在物理状态下的一维点状数据:亚扩散、超扩散和正常扩散 我遇到的问题是时间标准化/方差很奇怪 例如,对于Hurst参数等于0.5(规则布朗运动),我得到的标准偏差不是单位(1): 由于上述原因,我不确定如何重新规范我为3种扩散情况(亚、超、正常)创建的所有3条轨迹 我为长度M的N点状粒子生成了轨迹: M=500; N=200; nd = zeros(M,N); sub = zeros(M,N); sup = zeros(M,N); Hsub = 0.25;

我正在使用matlab函数生成扩散粒子在物理状态下的一维点状数据:亚扩散、超扩散和正常扩散

我遇到的问题是时间标准化/方差很奇怪

例如,对于Hurst参数等于
0.5
(规则布朗运动),我得到的标准偏差不是单位(
1
):

由于上述原因,我不确定如何重新规范我为3种扩散情况(亚、超、正常)创建的所有3条轨迹


我为长度
M
N
点状粒子生成了轨迹:

M=500;
N=200;
nd  = zeros(M,N);
sub = zeros(M,N);
sup = zeros(M,N);
Hsub = 0.25;
Hsup = 0.75;

for j=1:N
    nd(:,j)  = wfbm(0.5, M, 15, 'db10');
    sub(:,j) = wfbm(Hsub,M, 10, 'db10');
    sup(:,j) = wfbm(Hsup,M, 10, 'db10');
end

以下是函数如何在matlab中实现并生成信号,但我不确定如何修改它以获得适当的布朗运动:

tmp = conv(randn(1,len+nbmax),ckbeta);
tmp = cumsum(tmp);
CA  = wkeep(tmp,len,'c');
for j=0:nblev-1
    CD  = 2^(j/2)*4^(-s)*2^(-j*s)*randn(1,len);
    len = 2*len-nbmax;
    CA  = idwt(CA,CD,fs1,gs1,len);
end
fBm  = wkeep(CA,L,'c');
fBm  = fBm-fBm(1);
我试图从理论上理解它,理论上说可以控制fBm的变化:

是上面快照中的引文7

tmp = conv(randn(1,len+nbmax),ckbeta);
tmp = cumsum(tmp);
CA  = wkeep(tmp,len,'c');
for j=0:nblev-1
    CD  = 2^(j/2)*4^(-s)*2^(-j*s)*randn(1,len);
    len = 2*len-nbmax;
    CA  = idwt(CA,CD,fs1,gs1,len);
end
fBm  = wkeep(CA,L,'c');
fBm  = fBm-fBm(1);