⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsgenf.m

📁 The EM Wave MATLAB Library consists of a collection of MATLAB programs related to electromagnetic wa
💻 M
字号:
function [f,df,x]=rsgenf(N,rL,h,kl,ku,Nf,sdim,seed);
%rsgenf generates bandlimited random rough surfaces using the 
%   Wierstrass-Mandelbrot function.
%
%   [f,df,x]=rsgenf(N,rL,h,kl,ku,Nf,sdim,seed)
%
%   INPUT:
%
%   N=total number of sample points
%   rL=rough surface length
%   h=rms height
%   kl=lower wavenumber cutoff
%   ku=upper wavenumber cutoff
%   Nf=number of tones
%   sdim=fractal dimension (1 <= s < 2)
%	 seed=seed of random number generator
%
%   OUTPUT:
%
%   f=rough surface profile
%   df=df/dx
%   x=sample points on the surface
%
% -- Part of the Electromagnetic Wave MATLAB Library (EWML) --
%    <http://www.emwave.com/>

% Original: C. O. Ao, 2000.

randn('seed',seed);
Phi=2*pi*randn(Nf,1);
b=(ku/kl)^(1/(Nf-1));
Cn=sqrt(2*(1-b^(2*(sdim-2)))/(1-b^(2*(sdim-2)*Nf)));

dx=rL/N;
x=[-N/2+1:1:N/2]*dx;

f=sin(kl*x+Phi(1));
for n=1:Nf-1
	f=f+b^((sdim-2)*n)*sin(kl*b^n*x+Phi(n+1));
end
f=f*h*Cn;

n=2:N-1;
df1=(f(n+1)-f(n-1))/(2*dx);
df=[(f(2)-f(N))/(2*dx),df1,(f(1)-f(N-1))/(2*dx)];

⌨️ 快捷键说明

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