makebrownian.sci

来自「小波分解源代码」· SCI 代码 · 共 41 行

SCI
41
字号
function fBr = MakeBrownian(n,H,par)
// MakeBrownian -- Create Fractional Brownian Signal
//  Usage
//    fBr = MakeBrownian(n,H,par)
//  Inputs
//    n       signal length
//    H       base of digits in expansion
//    par     optional, degree of extension in algorithm, default =8.
//  Outputs
//    fBr     (pseudo) Fractional Brownian signal
//
//  Description
//    Uses a Frequency Domain algorithm to get a pseudo Brownian Motion
//    The law is NOT normalized to give unit variance to unit increments.
//
//  Copyright Aldo I Maalouf

  [lhs,rhs]=argn();
	if rhs < 3,
		par = 8;
	end
	N = n .*par;

// generate the FT of a real white noise
	w    = WhiteNoise(zeros(1,N));
	whatt = mtlb_fft(w);

// formal fractional integral
	eta  = 2 * %pi * [0:(N/2) (-(N/2)+1):(-1)] ./ N;
	eta(1) = 1;
	bhat = (abs(eta) .^ (-2*H)) .* whatt;
	bhat(1) = 0.;
	fBr  = mtlb_ifft(bhat);

// extract a segment that is well away from the edges

	start = floor(par/2 .* n);
	stop  = start+n-1;
	fBr   = real(fBr(start:stop));
	endfunction

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?