需要帮助。我想增加的方位角扫描雷达波束形成代码-180 + 180,但不能找到一种方法你能帮我更改代码

6视图(30天)
clc
清晰的
% %扫描雷达使用统一的矩形数组
%这个例子模拟一个定期扫描相控阵雷达
%预定义的监视区域。使用的是900 -矩形数组元素
%的单站雷达。介绍了推导出雷达的步骤
%根据规格参数。合成后收到
%脉冲,探测和评估范围。最后,多普勒
%估计是用来获取每个目标的速度。
% 2010 - 2017版权MathWorks公司。
% %雷达定义
%首先我们创建一个相控阵雷达。我们最重用的子系统
%建立在示例< docid: phased_examples.example-ex97528254 >。读者
%鼓励探索的细节
% < //www.tatmou.com/discovery/radar-system-design.html雷达
通过这个例子%系统设计>。一个主要的区别是,我们使用一个
% 30-by-30均匀矩形阵列(URA所言)代替原来的单一
%天线。
% %
%现有雷达设计符合下列规范。
pd = 0.9;%的概率检测
pfa = 1 e-6;%的概率假警报
max_range = 5000;%最大明确的范围
tgt_rcs = 1;%需要目标雷达截面
int_pulsenum = 10;%的脉冲积分
% %
%装载雷达系统和检索系统参数。
负载BasicMonostaticRadarExampleData;
fc = radiator.OperatingFrequency;%的操作频率(赫兹)
v = radiator.PropagationSpeed;%波传播速度(米/秒)
λ= v / fc;%波长(m)
fs = waveform.SampleRate;%采样频率(赫兹)
脉冲重复频率= waveform.PRF;%脉冲重复频率(赫兹)
% %
%,我们定义了一个30-by-30均匀矩形数组。
ura所言= phased.URA (“元素”、天线、
“大小”(50 50),“ElementSpacing”,(λ/ 2,λ/ 2));
%配置天线元素,这样他们只向前传播
ura.Element。BackBaffled = true;
%可视化响应模式。
模式(ura所言,足球俱乐部,“PropagationSpeed”physconst (“光速”),
“类型”,“powerdb”);
% %
%将数组与散热器和收藏家。
散热器。传感器= ura所言;
收集器。传感器= ura所言;
%,我们需要设置WeightsInputPort属性为true来启用它
%接受传输波束形成的权值
散热器。WeightsInputPort = true;
% %
现在我们需要重新计算传输功率百分比。最初的传播
%根据单个天线功率计算。900 -元素数组,
%每个元素所需的能量要少得多。
%计算阵列增益
arraygain = phased.ArrayGain (“SensorArray”ura所言,“PropagationSpeed”,v);
ag) = arraygain (fc (0, 0));
%使用雷达方程计算峰值功率
snr_min = albersheim (pd、pfa int_pulsenum)
peak_power = radareqpow(λ,max_range、snr_min waveform.PulseWidth,
RCS的tgt_rcs,“获得”发射机。获得+ ag)
% %
%的新峰值功率是0.0065瓦。
%设置峰值功率的发射机
发射机。PeakPower = peak_power;
% %
%,我们还需要设计相控阵扫描表的规定。来
%简化的示例中,我们只在方位维搜索。我们要求
%的雷达搜索从45度到-45度方位。的
%重新审视时间应小于1秒,这意味着雷达
% 1秒内重新审视相同的方位角。
initialAz = 45 r;endAz = -45;
无效的表达式。检查丢失的乘法操作符,缺失或不平衡的分隔符,或其他语法错误。构造矩阵,用括号代替括号。

connector.internal.fevalMatlab误差

connector.internal.fevalJSON误差
volumnAz = initialAz - endAz;
% %
%确定所需数量的扫描,我们需要知道波束宽度
%的阵列响应。我们使用一个经验公式来估算3-dB
%波束宽度。
%
% $ $ G = \压裂{4 \π}{\θ^ 2}$ $
%
% G数组获得美元和\θ是美元3-dB波束宽度。
%计算3-dB波束宽度
θ= radtodeg(√4 *π/ db2pow (ag))))
% %
%的3-dB波束宽度是6.77度。允许一些光束重叠
%的空间,我们选择扫描步骤6度。
scanstep = 6;
scangrid = initialAz + scanstep / 2: scanstep: endAz;
numscans =长度(scangrid);
pulsenum = int_pulsenum * numscans;
%计算重新审视时间
revisitTime = pulsenum /脉冲重复频率
% %
%结果重新审视时间是0.005秒,远低于规定的
% 1秒的上限。
% %目标定义
%我们想从两个non-fluctuating目标模拟脉冲返回,
%在0度仰角。第一个目标是接近的
%的雷达,而第二个目标是远离雷达。
tgtpos = [[3532.63;200;0],[2020.66;300;0],[2500.64;100;0],[1600.66;250;0]];
tgtvel = [[-100;50;0],[60;80;0],[40;70;0],[50;60;0]];
tgtmotion = phased.Platform (“InitialPosition”tgtpos,“速度”,tgtvel);
tgtrcs = (1.6 - 2.2 3.5 - 3.7);
目标= phased.RadarTarget (“MeanRCS”tgtrcs,“OperatingFrequency”、fc);
%计算范围、角度和速度的目标
[tgtrng, tgtang] = rangeangle (tgtmotion.InitialPosition,
sensormotion.InitialPosition);
numtargets =长度(target.MeanRCS) + 1
% %脉冲合成
%现在所有子系统的定义,我们可以进行模拟
%接收信号。总模拟时间对应于一个通过
%通过监测区域。由于反射的信号
%接收到一个数组中,我们使用一个beamformer指向指导
%方向获得合并后的信号。
%为传输波束形成创建指导向量
steeringvec = phased.SteeringVector (“SensorArray”ura所言,
“PropagationSpeed”,v);
%接收beamformer创建
beamformer = phased.PhaseShiftBeamformer (“SensorArray”ura所言,
“OperatingFrequency”足球俱乐部,“PropagationSpeed”v,
“DirectionSource”,输入端口的);
%定义每个目标的传播渠道
频道= phased.FreeSpace (
“SampleRate”fs,
“TwoWayPropagation”,真的,
“OperatingFrequency”、fc);
fast_time_grid = unigrid (0,1 / fs, 1 /脉冲重复频率,“()”);
%预先分配数组来提高处理速度
rxpulses = 0(元素个数(fast_time_grid) pulsenum);
m = 1: pulsenum
%更新传感器和目标位置
[sensorpos, sensorvel] = sensormotion(1 /脉冲重复频率);
[tgtpos, tgtvel] = tgtmotion(1 /脉冲重复频率)
%计算目标角度所看到的传感器
[tgtrng, tgtang] = rangeangle (tgtpos sensorpos)
%计算当前扫描角转向向量
地板scanid = ((m - 1) / int_pulsenum) + 1;
sv = steeringvec (fc, scangrid (scanid));
w =连词(sv);
%形式传输光束的扫描角度和模拟传播
脉冲=波形();
[txsig, txstatus] =发射机(脉冲);
txsig =散热器(txsig tgtang w);
txsig =通道(txsig sensorpos、tgtpos sensorvel, tgtvel);
%反射脉冲的目标
tgtsig =目标(txsig);
% Beamform目标返回收到的传感器
rxsig =收集器(tgtsig tgtang);
rxsig =接收机(rxsig ~ (txstatus > 0));
rxpulses (:, m) = beamformer (rxsig, [scangrid (scanid); 0]);
结束
% %匹配滤波器
%处理接收到的信号,我们首先通过一个匹配
%过滤器,然后为每个扫描集成所有脉冲角。
%匹配滤波
matchingcoeff = getMatchedFilter(波形);
matchedfilter = phased.MatchedFilter (
“系数”matchingcoeff,
“GainOutputPort”,真正的);
[mf_pulses, mfgain] = matchedfilter (rxpulses);
[],mf_pulses =重塑(mf_pulses int_pulsenum, numscans);
matchingdelay =大小(matchingcoeff, 1) 1;
sz_mfpulses =大小(mf_pulses);
mf_pulses = [mf_pulses (matchingdelay + 1:结束)0 (matchingdelay)];
mf_pulses =重塑(mf_pulses sz_mfpulses);
%脉冲集成
int_pulses = pulsint (mf_pulses,“非相干”);
int_pulses =挤压(int_pulses);
%可视化
r = v * fast_time_grid / 2;
X = r ' * cosd (scangrid);Y = r ' *信德(scangrid);
clf;
pcolor (X, Y, pow2db (abs (int_pulses)。^ 2));
平等的紧
阴影插值函数
文本(-800 0“数组”);
文本((max (r) + 10) * cosd (initialAz), (max (r) + 10) *信德(initialAz),
[num2str (initialAz)“阿^”]);
文本((max (r) + 10) * cosd (endAz), (max (r) + 10) *信德(endAz),
[num2str (endAz)“阿^”]);
文本((max (r) + 10) * cosd (0) (max (r) + 10) *信德(0)[num2str (0)“阿^”]);
colorbar;
% %
%的扫描图,我们可以清楚地看到两座山峰。关闭的
% 0度左右方位,远程方位在10度左右。
% %检测和评估范围
%获得目标参数的准确估计,我们申请
%的阈值检测扫描地图上。首先我们需要弥补
%的信号功率损耗由于运用时变增益范围
%接收信号。
range_gates = v * fast_time_grid / 2;
tvg = phased.TimeVaryingGain (
“RangeLoss”2 * fspl (range_gatesλ),
“ReferenceLoss”2 * fspl (max (range_gates),λ));
tvg_pulses = tvg (mf_pulses);
%脉冲集成
int_pulses = pulsint (tvg_pulses,“非相干”);
int_pulses =挤压(int_pulses);
%计算检测阈值
%采样率是设计系统的噪声带宽的两倍
noise_bw = receiver.SampleRate / 2;
npower = noisepow (noise_bw
receiver.NoiseFigure receiver.ReferenceTemperature);
阈值= - * db2pow (npwgnthresh (pfa、int_pulsenum“非相干”));
%增加阈值的匹配滤波器处理增益
阈值=阈值* db2pow (mfgain);
% %
%我们现在可视化检测过程。为了更好地代表了数据,我们
%只有情节范围超出50个样本。
N = 51;
clf;
冲浪(X (N:,:), Y (N:最终,),
pow2db (abs (int_pulses (N:最终,))^ 2));
持有;
网格(X (N:,:), Y (N:最终,),
pow2db(阈值*的(大小(X (N:最终,)))),“FaceAlpha”,0.8);
视图(0,56);
% %
%有两个峰值明显高于检测阈值,对应
%我们前面定义的两个目标。我们可以找到的位置
%的山峰和估计每个目标的距离和角度。
[~,peakInd] = findpeaks (int_pulses (:),“MinPeakHeight”返回值(阈值));
[rngInd, angInd] = ind2sub(大小(int_pulses), peakInd);
est_range = range_gates (rngInd)%估计范围
est_angle = scangrid (angInd)%估计方向
% %多普勒估计
%,我们想估计每个目标的多普勒速度。有关详细信息,
%多普勒估计,参考的例子
% < docid: phased_examples.example-ex25617143 >。
m = numtargets: 1:1
[p f] =周期图(mf_pulses (rngInd (m),:, angInd (m)),[], 256年,脉冲重复频率,
“权力”,“中心”);
speed_vec = dop2speed (f,λ)/ 2;
spectrum_data = p / max (p);
[~,dop_detect1] = findpeaks (pow2db (spectrum_data),“MinPeakHeight”5);
sp (m) = speed_vec (dop_detect1)%估计多普勒速度
结束
% %
%最后,我们估计的参数检测的目标。
%的下面是一个比较估计和真正的参数值。
% %
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%(真正的)目标参数估计
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%范围(m)方位(度)速度(米/秒)
%的目标1:3625.00 (3622.08)12.00 (12.76)86.01 (86.49)
%的目标2:2025.00 (2020.66)0.00 (0.00)-59.68 (-60.00)
% %总结
%在这个例子中,我们展示了如何模拟扫描相控阵雷达
%预定义的监视区域。我们演示了如何设计
%扫描进度。传统beamformer被用来处理
%获得多通道信号。范围、角度和多普勒信息
%的每个目标提取反射的脉冲。这个信息
%可以用于进一步的高分辨率direction-of-arrival等任务
%的估计,或目标跟踪。

答案(0)

下载188bet金宝搏


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!