create_powerlaw_samples.m

来自「基于Matlab的地震数据处理显示和测井数据显示于处理的小程序」· M 代码 · 共 41 行

M
41
字号
function mat=create_powerlaw_samples(nsamp,ntr,power_exponent,seed)% Create a matrix whose columns represent time series whose power spectrua % are proportional to frequency^power_exponent%% Written by: E. R.: October 25, 2005% Last updated: November 27, 2005: streamlined code%%          mat=create_powerlaw_samples(nsamp,ntr,power_exponent,seed)% INPUT% nsamp    number of samples to create for each matrix column (number %          of rows of matrix)% ntr      number of columns of matrix% power_exponent exponent such that the power spectrum is proportional to %          frequency^power_exponent% seed     seed of random-number generator (e.g. 99999)% OUTPUT% mat      matrix whose columns are random time series satisfying a power law%% EXAMPLE%          mat=create_powerlaw_samples(1001,10,2,11111);%          s_spectrum(mat,{'scale','dB'})randn('state',seed);temp=randn(nsamp,ntr);temp1=fft(temp);%	Create factors to multiply "white" spectrum"f=(0:nsamp)';f=min(f(1:end-1),f(end:-1:2));f(2:end)=f(2:end).^(0.5*power_exponent);f(1)=eps;for ii=1:ntr   temp1(:,ii)=temp1(:,ii).*f;endmat=real(ifft(temp1));for ii=1:ntr   mat(:,ii)=mat(:,ii)*norm(temp(:,ii))/norm(mat(:,ii));end

⌨️ 快捷键说明

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