一,射频前端流程:
激光器发射出种子光,激光探测器收到种子光回波后与探测器本振信号相乘对不同强度波长进行混频差分,经过探测器中的
低通滤波器将频移动传给AD高速采集板。
二,信号处理流程(FPGA端执行)
- 雷达调焦电机达到指定位置,转动电机带动镜头开始旋转,齿轮经过光电管,光电管输出脉冲信号。
- 信号处理板收到一个脉冲信号,采用上升沿触发方式。
- 信号处理板开始采集信号,按照400M采样率计算,一次性采集1024000点,将其按照1024的长度分成1000段,每一段单独作FFT(fft后取前512点),1000段512点FFT数据叠加。叠加后的数据找出频谱峰值。
- 每秒内雷达镜头旋转360度,信号处理板会收到50次脉冲信号,得到50个频谱值。
- 在指定位置雷达旋转旋转4圈,将50个频谱值进行逐点4次数据平均,其中无效数据不参与平均。
- 将平均后的50个频谱数据按照算法反演风场。
7、雷达调焦达到下一个指定位置,重复1-6步。
ZYNQ方案一:一直采集:512/8=64个点一次性拼接传进去,然后深度为16000,
每次读取64x16个深度的数据,就是1024个点。
写满就停下,读完就发信号继续开始。
读的时候,做FFT,然后把数据1024个点的一半512个点开始每次累加,
一边做一边累加,做完所有正好计算出所有;
此时直接使用axi fifo去外传数据从SDK读出来,从linux读取出来;
这时候加入算法,进行风速计算;预计成本1000元每块板子;
ZYNQ方案二:一直采集:1024/8=128个点一次性拼接传进去,然后深度为8000,
每次读取128x8个深度的数据,就是1024个点。
写满就停下,读完就发信号继续开始。
读的时候,做FFT,然后把数据1024个点的一半512个点开始每次累加,
一边做一边累加,做完所有正好计算出所有;
此时直接使用axi fifo去外传数据从SDK读出来,从linux读取出来;
这时候加入算法,进行风速计算;
14位x1024000个点/秒=14000=14MB
ZYNQ方案三:
32768/1024=30个点,连续采集30份,做FFT,然后读取15行进行累加,
这时候乘以60等于900,相当于900行累加,这个过程在AXI前端做完。
三,数据算法处理流程(ARM linux上执行)
标准基线-本底基线,其中本底函数的生成有几个函数:
(1),先平滑。(2),再求导,求两次。(3),然后再插值。
这几个函数的应用应该都是在FPGAdataprocess里吧。
具体函数名记不住了。代码没在身边。
1,先平滑:
作用:平滑是连续采集一点的坐标,一般一秒钟采集一次,并不断取多次采集的平均值,其作用是使获取的坐标更准确。
2,求导两次:
3,求差值:就是本底基线
注:
(1),阈值范围是一个经验值。为了选取信号包络的。标准基线是提供的一个算法算的。你可以问下他。噪声能量,信号能量只是我算的一个附加值。你可以不用管。水平风是迎头风和横风合成的一个真实风场。
(2),这个的m_AddNum是累加次数。界面那个累加次数
不是横坐标值。如果累加5次。把FPGA那个数收到五次之后相加做平均收到FPGA传来的的第多少包数据,
就是一个文件记录一些变量。
(3)包络定义:
从调幅信号中将低频信号解调出来的过程,就叫做包络检波。也就是说,包络检波是幅度检波。 包格检波常用的方法是采用二极管进行单向过滤后再进行低通滤波。没有二极管而直接进行低通滤波的话,会使正、负包络线抵消,从而检不出低频信号。 除了包络检波,还有频偏(调频)检波,相移(或相位)检波等等。
包络定理是在最大值函数与目标函数的关系中,我们看到,当给定参数 a 之后,目标函数中的选择变量 x 可以任意取值。如果 x 恰好取到此时的最优值,则目标函数即与最大值函数相等。
(4),平滑那个窗的宽度。界面上设置。设置完了存在配置文件setting里面。每次程序启动会去读取文件:上次设的数值
四,后台数据显示:
通过GPRS模块或者网络发送数据到服务器,进行后台实时显示显控,风场大数据分析和预测。