📄 parameter_classical.m
字号:
function[f_i,c_i,theta_i]=Parameter_Classical(Method_type,N_i,Variance,fmax,phase)
sigma=sqrt(Variance);
if strcmp(Method_type,'MED')==1
n=(1:N_i)';
f_i=fmax/(2*N_i)*(2*n-1);
c_i=2*sigma/sqrt(pi)*(asin(n/N_i)-asin((n-1)/N_i)).^0.5;
elseif strcmp(Method_type,'MEA')==1
n=(1:N_i)';
f_i=fmax*sin(pi*n/(2*N_i));
c_i=sigma*sqrt(2/N_i)*ones(size(n));
elseif strcmp(Method_type,'MCM')==1
n=rand(N_i,1);
f_i=fmax*sin(pi*n/2);
c_i=sigma*sqrt(2/N_i)*ones(size(n));
elseif strcmp(Method_type,'MSEM')==1
n=(1:N_i)';
f_i=fmax/(2*N_i)*(2*n-1);
T=1/(2*fmax/N_i);
M=5e3;
t=linspace(0,T,M);
Jo=besselj(0,2*pi*fmax*t);
c_i=zeros(size(f_i));
for k=1:length(f_i)
c_i(k)=2*sigma*sqrt(1/T*(trapz(t,Jo.*cos(2*pi*f_i(k)*t))));
end
elseif strcmp(Method_type,'MEDS')==1
n=(1:N_i)';
f_i=fmax*sin(pi*(n-0.5)/(2*N_i));
c_i=sigma*sqrt(2/N_i)*ones(size(n));
elseif strcmp(Method_type,'jakes')==1
n=1:N_i-1;
f_i=fmax*[[cos(pi*n/(2*N_i-1)) 1]',[cos(pi*n/(2*N_i-1)) 1]'];
c_i=2*sigma/sqrt(N_i-1/2)*[[sin(pi*n/(N_i-1)) 1/2]',[cos(pi*n/(N_i-1)) 1/2]'];
theta_i=zeros(size(f_i));
phase='none';
else
error('Method is unknown')
end
if strcmp(phase,'rand')==1
theta_i=rand(N_i,1)*2*pi;
elseif strcmp(phase,'permuted')==1
n=(1:N_i)';
U=rand(size(n));
[x,k]=sort(U);
theta_i=2*pi*n(k)/(N_i+1);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -