OFDM_RX源码探究(一)sync_short

 

总体功能:分组检测,频偏粗估计矫正

一、complex_to_mag_sq.v

复数乘法器计算分母

 

在计算短前导码相关性的时候用于计算分母

S[i]是表示为复数形式的I,Q样本, 是它的共轭,

 

实现 (a+bi)*a-bi)的效果=a^2+b^2

二、moving_avg.v 用于计算滑动均值滤波

 滑动平均值滤波是指先在RAM中建立一个数据缓冲区,依顺序存放N个采样数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的N个数据的算术平均值或加权平均值。这样,每进行一次采样,就可计算出一个新的平均值,从而加快了数据处理的速度。

​滑动平均值滤波程序设计的关键是:每采样一次,移动一次数据块,然后求出新一组数据之和,再求平均值。滑动平均值滤波程序有两种,一种是滑动算术平均值滤波,一种是滑动加权平均值滤波。不管是算术平均值滤波,还是加权平均值滤波,都需连续采样N个数据,然后求算术平均值或加权平均值。

一共存了16个数据的算术和

三、delay_sample.v

 

使用双口RAM,先把第1到第16个数据通过A口存入RAM,当ADDR到15的时候,下一个周期开始从B口往外发送延时16个周期的数据,从这个时候开始,A口进一个,B口就输出一个。

四、complex_mult.v 用于在计算短训练序列相关性时候的分子

五、delay_prod_avg_mag_inst : complex_to_mag (complex_to_mag.v)  计算分子的模

计算复数模的简单方法

Mag ~=Alpha * max(|I|, |Q|) + Beta * min(|I|, |Q|)

其实就是说能量约等于 I,Q绝对值(正数数值)的最大值和最小值的加权之和。这两个权ALPHA和BETA在下面VERILOG代码中分别取1和0.25.

    mag <= max + (min>>2);

sync_short.v

短前导码持续时间8us 160个样本,利用自相关找到10个相同的STS,进行分组检测判断一个OFDM数据包的开始,并进行频偏粗估计

input  [31:0] sample_in           输入的两路iq信号

output:  short_preamble_detected  短训练序列监测完毕给sync_long

input [15:0] phase_out,            phase.v模块计算的相位

output [15:0] phase_offset  给sync_long.v   粗频偏校正需要的调整的相位在sync_long模块FFT前应用频偏粗校正


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值