📄 zweibuer.m
字号:
%韦布尔(Weibull)分布杂波产生
clear all;close all;clc;
azi_num=2000; %雷达回波帧数,一帧表示一个重复周期
fr=1000; %脉冲重复频率(Hz)
lamda0=0.05; %波长
sigmav=0.7;
sigmaf=2*sigmav/lamda0;
rand('state',sum(100*clock)); %产生服从U(0,1)的随机序列
d1=rand(1,azi_num);
rand('state',7*sum(100*clock)+3);
d2=rand(1,azi_num);
xi=1*(sqrt(-2*log(d1)).*cos(2*pi*d2)); %正交且独立的高斯序列~N(0,1)
xq=2*sqrt(-2*log(d1)).*sin(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:azi_num+coe_num*2); %目的是去掉暂态响应
xxq=xxq(coe_num*2+1:azi_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=2.2; %尺度形状参数
sigmac=sqrt((q.^p)/2); %线形滤波后的方差
yyi=sigmac*yyi;
yyq=sigmac*yyq;
xdata=(yyi.*yyi+yyq.*yyq).^(1/p); %韦布尔分布杂波数据
figure,plot(xdata);title('韦布尔分布杂波时域波形');
%求概率密度函数的参数
num=100;
maxdat=max(abs(xdata));
mindat=min(abs(xdata));
%xpdf1=getpdf(abs(xdata),num,maxdat,mindat); %用直方图估计的概率密度函数
xaxis1=mindat:(maxdat-mindat)/num:maxdat-(maxdat-mindat)/num;
th_val=p*(xaxis1.^(p-1)).*exp(-xaxis1/q).^p./(q.^p); %概率密度函数理论值
figure,%plot(xaxis1,xpdf1); %做出仿真结果的概率密度函数曲线
hold,plot(xaxis1,th_val,':r'); %做出理论概率密度函数曲线
title('杂勃幅度分布');xlabel('幅度');ylabel('概率密度');
signal=xdata;
signal=signal-mean(xdata); %求功率谱密度,先去掉直流分量
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;
figure,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 + -