基于FPGA的SNR噪声分析

    对于移相波束形成的抗噪声性能分析,我们主要通过对系统在不同的SNR信噪比下进行仿真分析。这里FPGA的几个主要仿真参数:入射角为5度,FFT变换长度为256,将FPGA系统分别在没有噪声,SNR为-10db,SNR为0db,SNR为10db三种情况对比没有噪声下的仿真结果。

    通过仿真,我们可以得到如下的仿真结果:

基于FPGA的SNR噪声分析_第1张图片

图1 不同SNR下波束形成仿真结果

    图1的仿真结果中,o_boxes为没有噪声的波束形成,o_boxes10为信噪比为10db下的波束形成输出,o_boxes0为信噪比为0db下的波束形成输出,o_boxes_10为信噪比为-10db下的波束形成输出。从上面的仿真结果可以看到,当噪声不断增加的时候,输出的波束形成具有明显的噪声干扰。

    上图是入射角为5度的时候仿真。为了进一步对比噪声对角度计算的精度影响,将上面的仿真图放大,可以看到如下的仿真结果图。

基于FPGA的SNR噪声分析_第2张图片

图2不同SNR下波束形成放大后的仿真结果

    从图2的仿真结果可以看到,我们以不带噪声的输出作为标准的角度值,当SNR为10db的时候,误差在0.02度左右,当SNR为0db的时候,误差在0.04度左右,当SNR为-10db的时候,误差在0.07度左右。

    从上面的仿真结果可以看到,随着噪声功率的增加,移相波束形成得到的角度计算值误差越大,对比本文前面章节的MATLAB仿真结果可知,最后计算的角度存在一定的误差。

    计算结论基本能够反映实际的噪声影响,和MATLAB的理论仿真结果误差是因为在FPGA设计过程中,每一个模块都需要截取位宽以及量化处理,因此会存在较大的误差。当做乘法运算的时候,数据的位宽会翻倍的增加,如果不进行位宽的截取,则会大大增加FPGA内部的资源占用,因此一般情况下,每次做完乘法运算,往往需要进行位宽的截取,截取位宽导致的误差取决于位宽截取的大小,位宽截取越多,则误差越大,位宽截取越少,则误差越小。

    另外一方面,由于在FPGA内部采用的计算方法是定点计算方法,这会引入量化噪声,由量化噪声导致的误差称为量化误差量化误差是指量化结果和被量化模拟量的差值,显然量化级数越多,量化的相对误差越小。量化级数指的是将最大值均等的级数,每一个均值的大小称为一个量化单位。

·基于FPGA的角度分辨率分析

    通过输入不同入射角的信号,分别分析入射角的理论值和实际计算值的误差。这里,分别设置入射角为5度和15度,SNR信噪比为10db,FFT傅里叶变换的长度设置为256,然后进行仿真,仿真结果如下所示:

基于FPGA的SNR噪声分析_第3张图片

图3 入射角为5度的仿真结果

图3中第一个波形为理想状态下的入射角,第二个图为通过移相波束形成后的角度计算值,为了更精确的分析角度计算的精度,我们将输出波形进行局部的放大,得到如下的仿真结果图。 

基于FPGA的SNR噪声分析_第4张图片

图4 入射角为5度的仿真结果(局部放大)

    从图4的仿真结果可知,当入射角为5度的时候,其误差在0.02度左右,这说明系统可以很好的达到测定目标方向的目标,其误差在0.4%左右。

    为了更进一步的分析基于FPGA的移相波束形成的角度分辨率,我们将入射角设置为15度,其余参数和上面的参数相同,得到如下的仿真结果:

基于FPGA的SNR噪声分析_第5张图片

图5 入射角为15度的仿真结果

    和图3的仿真结果类似,图5中第一个波形为理想状态下的入射角,第二个图为通过移相波束形成后的角度计算值,然后我们将输出波形进行局部的放大,得到如下的仿真结果图。 

基于FPGA的SNR噪声分析_第6张图片

图6 入射角为15度的仿真结果(局部放大)

    从图6的仿真结果可知,当入射角为15度的时候,其误差在0.07度左右,虽然误差角度大于入射角为5度的计算结果,但其误差百分比为0.467%,基本和上面的仿真结果一直。

    通过上面两种入射角情况下的输入信号计算结果的对比,最后得到的误差结果基本和MATLAB的误差结果一直。

    仿真得到的0.4%左右的误差,主要来自三个方面的影响。

    第一,噪声的干扰,由于仿真的时候引入了SNR=10db的噪声,因此,最后的输出结果会存在一定的误差。

    第二,由于FPGA和位宽截取和量化噪声导致结论的误差,这个原因和上一节介绍的原因类似。

    第三,FPGA系统内部时钟及部分时序抖动而导致的误差。

 

 

 

 

 

 

 

 

你可能感兴趣的:(FPGA,板块3:通信与信号处理,SNR噪声分析)