bandwidth1.asv

来自「关于超宽带的一系列仿真包括高斯波形各阶导函数波形频谱以及采用高斯导函数的跳时超宽」· ASV 代码 · 共 66 行

ASV
66
字号
%
%FUNTION 1.2:"cp0101_bandwidth"
%
%evaluates the bandwidth of the input 'signal' with sample period 'dt'
%
%bandwidth is evaluated according to the given 'threshold'(in dB)
%'BW'is the bandeidth
%'f_high'is the higher limit
%'f_low'is the lower limit
%
threshold=-3;
width=1e-1;
points=1000;
f0=1e3;
dt=width/points;
signal=zeros(1,5*points);
signal(2*points:3*points-1)=ones(1,points);
mod=cos(2.*pi.*f0.*linspace(1,5*width,5*points));
signal=signal.*mod;
fs=1/dt;
N=length(signal);
T=N*dt;
df=1/T;
X=fft(signal);
X=X/N;
ds_E=abs(X).^2/(df^2);
ss_E=2.*ds_E(1:floor(N/2));
[Epeak,index]=max(ss_E);
f_peak=index*df;
Eth=Epeak*10^(threshold/10);
imax=index;
E0h=ss_E(index);
while (E0h>Eth)&(imax<=(N/2))
    imax=imax+1;
    E0h==ss_E(imax);
end
f_high=(imax-1)*df;
imin=index;
E0l=ss_E(index);
while (E0l>Eth)&(imin>1)&(index>1)
    imin=imin-1;
    E0l=ss_E(imin);
end
f_low=(min(index,imin)-1)*df;
BW=f_high-f_low;
fprintf('\nFrequency Bandwidth= %f [HZ]\nHigh Frequency= %f [HZ]\nLow Frequency= %f [HZ]\n',BW,f_high,f_low);
figure(2)
frequency=linspace(0,fs/2,length(ss_E));
PF=plot(frequency,ss_E);
set(PF,'LineWidth',[2]);
L1=line([f_high f_high],[min(ss_E) max(ss_E)]);
set(L1,'Color',[0 0 0],'LineStyle',':')
L1=line([f_low f_low],[min(ss_E) max(ss_E)]);
set(L1,'Color',[0 0 0],'LineStyle',':')
L1=line([f_low f_high],[Eth Eth]);
set(L1,'LineWidth',[2],'Color','red','LineStyle',':')
axis([0.8*f_low 1.2*f_high -0.1*Epeak 1.2*Epeak]);
AX=gca;
set(AX,'FontSize',12);
T=title('Frequency domain');
set(T,'FontSize',14);
X=xlabel('Frequency [HZ]');
set(X,'FontSize',14);
Y=ylabel('Single-Sided ESD [V^2s/HZ]]');
set(Y,'FontSize',14);

⌨️ 快捷键说明

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