主要内容

流和加速系统仿真

相控阵系统工具箱™可以用来模拟一个端到端的相控阵系统,生成一个传输波形,模拟目标返回,然后处理接收到的信号来检测目标。这是示例所示模拟测试信号对雷达接收机波形设计改善现有系统的性能范围。这个例子展示了如何在流模式模拟这样一个系统,这样你就可以运行仿真很长一段时间,观察系统动力学。

仿真设置

首先,建立了雷达系统的一些基本参数。整个雷达系统的所示类似波形设计改善现有系统的性能范围的例子。

fs = 6 e6;bw = 3 e6;c = 3 e8;fc = 10 e9;脉冲重复频率= 18750;num_pulse_int = 10;[波形,发射机,散热器,收集器,接收器,sensormotion,目标,tgtmotion、通道matchedfilter, tvg阈值]=helperRadarStreamExampleSystemSetup (fs, bw,脉冲重复频率,fc, c);

系统仿真

接下来,运行仿真100脉冲。在这个仿真,使用四个time-scopes观察信号在不同阶段。前三个范围显示传输信号,接收信号,和post-matched-filter gain-adjusted 10脉冲信号。虽然传输信号是高功率脉冲序列,范围2显示了一个弱得多接收信号由于传播损耗。这个信号不能检测到使用预设阈值检测。即使匹配滤波,获得补偿,它仍然是具有挑战性的检测这三个目标。

%预fast_time_grid = 0:1 / fs: 1 / prf-1 / fs;num_pulse_samples =元素个数(fast_time_grid);rx_pulses =复杂(0 (num_pulse_samples num_pulse_int));mf_pulses =复杂(0 (num_pulse_samples num_pulse_int));detect_pulse = 0 (num_pulse_samples, 1);%模拟循环m = 1:10 * num_pulse_int%更新传感器和目标位置[sensorpos, sensorvel] = sensormotion(1 /脉冲重复频率);[tgtpos, tgtvel] = tgtmotion(1 /脉冲重复频率);%计算目标角度所看到的传感器[tgtrng, tgtang] = rangeangle (tgtpos sensorpos);%模拟脉冲的传播方向目标脉冲=波形();[脉搏,txstatus] =发射机(脉冲);txsig =散热器(脉搏、tgtang);txsig =通道(txsig sensorpos、tgtpos sensorvel, tgtvel);%反射脉冲的目标tgtsig =目标(txsig);%接收目标返回传感器rxsig =收集器(tgtsig tgtang);nn = mod (m - 1, num_pulse_int) + 1;rx_pulses (:, nn) =接收机(rxsig ~ (txstatus > 0));%检测处理mf_pulses (:, nn) = matchedfilter (rx_pulses (:, nn));mf_pulses (:, nn) = tvg (mf_pulses (:, nn));%执行脉冲集成每num_pulse_int脉冲如果nn = = num_pulse_int detect_pulse = pulsint (mf_pulses,“非相干”);结束helperRadarStreamDisplay(脉冲、abs (rx_pulses (:, nn)),abs (mf_pulses (:, nn)), detect_pulse,返回值(阈值)*的(num_pulse_samples,1));结束

使用代码生成提高仿真速度

由于雷达系统需要深加工,仿真速度是一个重要的问题。运行100个脉冲后检查你的代码,你可能想要运行1000次脉冲。当您运行仿真在MATLAB®解释模式中,您可以使用:测量运行时间

抽搐;helperRadarStreamRun;time_interpreted = toc
time_interpreted = 8.3159

如果仿真太慢了,你可以使用MATLAB加速编码器™。MATLAB编制MATLAB编码器可以生成代码导致显著提高处理速度。在这个例子中,MATLAB编码器生成一个helperRadarStreamRun_mex函数从helperRadarStreamRun函数。

codegenhelperRadarStreamRun.m
代码生成成功。

墨西哥人版本被调用时,仿真速度提高。

抽搐;helperRadarStreamRun_mex;time_compiled = toc
time_compiled = 1.9333

加速改进取决于几个因素,如机器CPU速度和可用内存,但通常是增加3 - 4倍。注意,使用范围的可视化数据不是由MATLAB加速编码器和仍由MATLAB翻译。如果不关键的可视化仿真,然后你可以删除它们进一步提高速度。

下面是几个权衡考虑采用这种方法时:

  1. 生成的代码的可视化能力相比非常有限的可用MATLAB。如果你需要保持的可视化模拟,使用coder.extrinsic技巧;但这减缓了模拟。

  2. 生成的代码不允许动态变化的变量类型和大小而原始的MATLAB代码。生成的代码通常是特定变量类型和尺寸优化;因此,任何一个变量类型和大小的变化,可以引起的,例如,通过脉冲重复频率的改变,需要重新编译。

  3. 仿真速度效益更重要的MATLAB仿真时间长。如果在几秒钟MATLAB仿真完成,你不会明显增加,从最初的MATLAB仿真生成的代码。就像前面提到过的子弹,常常需要重新编译代码,当参数变化。因此,它可能会更好,首先使用MATLAB仿真来确定合适的参数值,然后使用生成的代码运行模拟。

总结

这个例子展示了如何执行流的雷达系统模拟模式。它还展示了如何使用代码生成加速仿真。使用生成的代码之间的权衡和MATLAB代码了。