主要内容

Gigasamples-per-Second相关器和峰值检波器

这个例子展示了如何实现一个高通量框架相关器和峰值检波器。该系统适用于激光雷达和mm-wave雷达等应用程序。

激光雷达和雷达系统通过发射脉冲,接收发送脉冲在数据流中,并使用信号处理技术来决定接收流脉冲的位置。当你设计这样一个系统,其中一个主要因素是脉冲宽度和脉冲持续时间。脉冲宽度的测量(以秒为单位)每个脉冲传输是多久。长脉冲更有活力,因此可以增加系统的范围。短脉冲不能旅行到,但他们可以实现更大的准确性在解决对象之间的距离。脉冲宽度决定了信号的带宽。例如,一个脉冲宽度信号带宽的2 ns结果500 MS / s。然后用来确定信号带宽的最小距离不同的对象可以得到解决。这个距离是范围模糊和=c / (2 * 2),在那里c是光速,B是信号带宽。

在高精度激光雷达系统中,脉冲宽度可以尽可能短4 ns。此宽度对应一个信号的带宽250 MS / s和范围的模糊性0.6米。这个计算不承担任何额外的信号处理,如脉冲压缩,提高准确性。以满足奈奎斯特速率,接收到的信号必须取样至少500 MS / s的速度。在实践中,系统通常oversample来提高性能。通常,fpga在500 MHz。处理数据和样本率大于最大时钟频率,设计使用框架处理,每操作一个向量的输入数据块每一个时钟周期。通过这种方式,处理平行和采样率较高而不增加时钟频率。

这个例子描述了相关性和峰值检测系统,使用一个250 MHz时钟和输入框的16个样本。这些参数使系统处理4 GS / s输入流采样过量的16倍。

波形生成和匹配滤波器的设计

广泛地说,激光雷达和雷达系统可以分为脉冲波形系统和连续波形系统。脉冲波形系统传输的数据,然后等待一段时间,而连续波形系统总是传送。在各种系统中,您可以应用不同的调制波形来增强不同范围和分辨率等特性。这个例子显示了一个没有信号调制脉冲激光激光雷达系统。

理想有一个矩形脉冲在时域,对应于一个sinc函数在频域。激光系统的物理性质意味着有一个过渡时期的峰值输出,紧随其后的是缓降期。这个输入模型通过使用高斯函数,然后生成一个零,并将脉冲流的流。

bt = 1;% 3 dB bandwidth-symbol时间sps = 16;% 16倍采样过量跨度= 1;% 1的象征脉冲= gaussdesign (bt,跨度,sps);%脉冲波形情节(脉冲,“啊——”);标题(单高斯脉冲的)

pulseLength = 17;%每个符号的样本数量N = pulseLength * 200;% 200的象征tx = 0 (N, 1);temp =质数(圆(.80 * N));%脉冲在几个分散的位置。偏移量是一个质数。位置= temp(45:45:结束);指数= 1:长度(位置)tx(位置(指数):位置(指数)+ pulseLength - 1) =脉冲;结束图绘制(tx);标题(输入脉冲信号的)

现在,添加噪声模拟通道和设计一个匹配滤波器,这是时间反演共轭的脉搏。测量噪声插入,确保计算是正确的。脉冲是对称的,相当于匹配滤波器。

信噪比= 3;pulseStream = awgn (tx信噪比10 * log10 (x(脉冲)),1);%在AWGN添加。图绘制(pulseStream);标题(输入脉冲信号与噪声的)= pulseStream - tx噪音;流(“计算信噪比是% 3.2 f \ n”10 * log10 (x(脉冲)/浸(噪声)));h = flipud(连词(脉冲));isequal (h,脉冲)
计算信噪比是3.02 ans =逻辑1

万博1manbetx仿真软件设计

示例模型的实现框架相关器和峰值检波器,利用输入波形和前一节的滤波器系数。的CorrelatorPeakDetector子系统有三个输出。平方匹配滤波器的输出显示了提高信噪比(信噪比)的相关器。检测到的输出是一个布尔值,这表明当检测到脉冲。有效的输出表明当输出数据是可用的。

vectorSize = 16;% #好< NASGU >windowLength = 19;模型=“CorrelationandPeakDetection”;load_system(模型)set_param(模型,“SimulationCommand”,“更新”)open_system(模型)

DUT由相关器或匹配滤波器使用离散冷杉过滤块和实现PeakDetector子系统。离散滤波器混淆与匹配滤波器的输入流系数并将结果传递给PeakDetector子系统。的PeakDetector使用一个窗口的方法来确定局部极大值。

模型=“CorrelationandPeakDetection / CorrelatorPeakDetector”;open_system(模型)

PeakDetector子系统形成一个滑动窗口的冷杉的结果,这是为每个元素(19 x1) (16 x1)的输入。整体矢量(34 x1)形式的每一个好子窗口。在VectorPeakPick子系统,VectorTappedDelay这个窗口并将其传递到子系统形式subtract_midpoint子系统,实现了峰值检测算法。峰值检测算法假定峰值出现在窗口中的所有值减去的中间值小于或等于0。为每个子系统重复这个计算16次检查每个好子窗口。

模型=“CorrelationandPeakDetection / CorrelatorPeakDetector / PeakDetector”;open_system(模型)

验证

接下来,运行仿真,并验证模型检测脉冲,你希望他们使用信息从波形的一代。

sim卡(“CorrelationandPeakDetection.slx”)xlocations =找到(发现= = 1);%找到位置的山峰被检测到。prevxlocation = 0;%检查多个点相同的峰值在下面的循环。addr = 1;locationsHDL = 0(长度(位置),1);2 = 1:1:长度(xlocations)%如果有多个点同样的高峰,选择一个。如果xlocations (ii) ~ = prevxlocation + 1 locationsHDL (addr) = xlocations (ii);addr = addr + 1;prevxlocation = xlocations (ii);结束结束latencyHDL =圆(意思是(locationsHDL -位置'));%的延迟是恒定的,样本之间的差异。locationsDetected = locationsHDL - latencyHDL% #好< NOPTS NASGU >
locationsDetected = 197 463 761 1069 1427 1733 2087 2422

观察大小的平方,匹配滤波器的输出大大提高了信噪比。

情节(dataOut);标题(输出信号与噪声过滤掉的)

HDL实现结果

从这个示例模型生成HDL代码,您必须HDL编码器™产品。高密度脂蛋白是生成的CorrelatorPeakDetector子系统和合成Xilinx®Vivado™针对Xilinx Zynq®-7000 SoC ZC706评估板。设计满足时间约束的400 MHz。表显示了帖子place-and-route资源利用的结果。

T =表(分类({“DSP”;附近地区的;“触发器”;“布莱姆。”}),分类({“288”;“9549”;“9092”;' 0 '}),“VariableNames”,{“资源”,“使用”})% #好< NOPTS >
T = 4 x2表资源使用_____ _____ DSP 288附近地区9549触发器9092 BRAM 0

采样率修改使用标量处理

你可以适应的模型来处理输入不同的采样率。例如,您可以处理一个输入25 MS / s采样过量10倍,因此,吞吐量为250 MS / s使用标量而不是框架的输入。DSP HDL工具箱™图书馆块之间自动切换帧和标量算法根据数据的维数的输入端口。在本例中,您可以选择过程框架或标量输入通过修改一个参数,vector_size。模型自动确定正确的维度框架或标量相应输入和处理数据。

vectorSize = 1;%标量处理sim卡(“CorrelationandPeakDetection.slx”)%的模拟运行。xlocations =找到(发现= = 1);%找到位置峰值检测。prevxlocation = 0;%检查多个点相同的峰值在下面的循环。addr = 1;locationsHDL = 0(长度(位置),1);2 = 1:1:长度(xlocations)%如果有多个相同的峰值点,选一个。如果xlocations (ii) ~ = prevxlocation + 1 locationsHDL (addr) = xlocations (ii);addr = addr + 1;prevxlocation = xlocations (ii);结束结束latencyHDL =圆(意思是(locationsHDL-locations '));%的延迟是恒定的,样本之间的差异。locationsDetected = locationsHDL-latencyHDL% #好< NOPTS >
locationsDetected = 197 463 761 1069 1427 1733 2087 2422