📄 weibull.m
字号:
clear all;
close all
num=4000;
fr=1000;
lamda0=0.05;
sigmav=1.0;
sigmaf=2*sigmav/lamda0;
randn('state',sum(100*clock));
d1=randn(1,num);
rand('state',7*sum(100*clock)+3);
d2=randn(1,num);
xi=2*sqrt(-2*log(d1)).*cos(2*pi*d2);
xq=2*sqrt(-2*log(d1)).*cos(2*pi*d2);
coe_num=12; %用傅里叶级数展开法求滤波器系数
for n=0:coe_num;
coeff(n+1)=2*sigmaf*sqrt(pi)*exp(-4*sigmaf^2*pi^2*n^2/fr^2)/fr;
end
for n=1:2*coe_num+1
if n<=coe_num+1
b(n)=1/2*coeff(coe_num+2-n);
else
b(n)=1/2*coeff(n-coe_num);
end
end
xxi=conv(b,xi);
xxq=conv(b,xq);
xxi=xxi(coe_num*2+1:num+coe_num*2);
xxq=xxq(coe_num*2+1:num+coe_num*2);
xisigmac=std(xxi);
ximuc=mean(xxi);
yyi=(xxi-ximuc)/xisigmac;
xqsigmac=std(xxq);
xqmuc=mean(xxq);
yyq=(xxq-xqmuc)/xqsigmac;
p=1.5;
q=3;
sigmac=sqrt((q.^p)/2);
yyi=sigmac*yyi;
yyq=sigmac*yyq;
ydati=((yyi.^2+yyq.^2).^(1/p-0.5)).*yyi;
ydatq=((yyi.^2+yyq.^2).^(1/p-0.5)).*yyq;
xdata=ydati+j*ydatq;
figure(1),
subplot(2,1,1),
plot(real(xdata));
title('weibull分布杂波时域波形(实部)')
subplot(2,1,2),
plot(imag(xdata));
title('weibull分布杂波时域波形(虚部)')
num=100;
maxdat=max(abs(xdata));
mindat=min(abs(xdata));
NN=hist(abs(xdata),num);
xpdf1=num*NN/((sum(NN))*(maxdat-mindat));
xaxis1=mindat:(maxdat-mindat)/num:maxdat-(maxdat-mindat)/num;
th_va1=p*(xaxis1.^(p-1)).*exp(-(xaxis1/q).^p)./(q.^p);
figure(2),
plot(xaxis1,xpdf1);
hold ;plot(xaxis1,th_va1,':r');
title('杂波的幅度分布');
xlabel('杂波的幅度')
ylabel('概率密度')
signal=xdata;
signal=signal-mean(signal);
figure(3),
M=256;
psd_dat=pburg(real(signal),16,M,fr);
psd_dat=psd_dat/(max(psd_dat));
freqx=0:0.5*M;
freqx=freqx*fr/M;
plot(freqx,psd_dat);
title('杂波功率谱密度');
xlabel('频率/Hz')
ylabel('功率谱密度')
powerf=exp(-freqx.^2/(2*sigmaf.^2));
hold
plot(freqx,powerf,':r');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -