Algorithm 如何在matlab中规范化wfbm生成的信号?
我正在使用matlab函数生成扩散粒子在物理状态下的一维点状数据:亚扩散、超扩散和正常扩散 我遇到的问题是时间标准化/方差很奇怪 例如,对于Hurst参数等于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;
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);