实验要求
用 V i v a d o H L S C Vivado \ HLS \ C Vivado HLS C 流程实现流处理方式的相关器
- 相关序列是 m 序列
- 输入信号为相关序列和热噪声之和是周期性的
- 要求估计输入信号的信噪比
实验原理
数字域的相关器公式如下
r
x
y
(
τ
)
=
∑
n
=
0
N
−
1
x
(
n
−
τ
)
y
(
n
)
=
∑
n
=
0
N
−
1
x
(
n
)
y
(
n
+
τ
)
r_{xy}(\tau) = \sum_{n=0}^{N-1} x(n-\tau)y(n) = \sum_{n=0}^{N-1} x(n)y(n+\tau)
rxy(τ)=n=0∑N−1x(n−τ)y(n)=n=0∑N−1x(n)y(n+τ)
- 互相关就是两个函数之间的相似性,当两个函数都具有相同周期的分量的时候,它的极大值同样能体现这种周期性的分量。
- 相关运算从线性空间的角度看其实是内积运算,而两个向量的内积在线性空间中表示一个向量向另一个向量的投影,表示两个向量的相似程度。
实验步骤
滑动相关(匹配滤波)在信号处理领域用途广泛。大多数相关器操作需要引入乘法,对于以m序列为基础的滤波器,由于只有有限数据维度且信号绝对值为1,故可以采用逻辑运算代替乘法运算,节省系统资源。
int c[N] =
{
1,-1,-1,-1,-1,-1,-1,1,
-1,-1,-1,-1,-1,1,1,-1,
-1,-1,-1,1,-1,1,-1,-1,
-1,1,1,1,1,-1,-1,1,-1,
-1,-1,1,-1,1,1,-1,-1,
1,1,1,-1,1,-1,1,-1,
-1,1,1,1,1,1,-1,1,
-1,-1,-1,-1,1,1,1,-1,
-1,-1,1,-1,-1,1,-1,-1,
1,1,-1,1,1,-1,1,-1,1,
1,-1,1,1,1,1,-1,1,1,
-1,-1,-1,1,1,-1,1,-1,
-1,1,-1,1,1,1,-1,1,1,
1,-1,-1,1,1,-1,-1,1,
-1,1,-1,1,-1,1,1,1,1,1,1
};
在高层代码中的对应片段如下
/*-----------Multiply-----------*/
/* mult_v=data*c[i]; */
/*-----------Multiply-----------*/
if (c[i]==1){
mult_v=data;
}
else{
mult_v=-data;
}
acc+=mult_v;
将 HLS C 产生的 IP导入sysgen并配合以信号源,搭建如下电路图
实验结果
采取m序列周期的10倍(即1270个样点进行仿真),得到相关器输出波形如下
可见该输出每隔大致127即一个周期便有一个峰值,这是流处理带来的滑动相关(匹配滤波)的结果,随后将该数据导入matlab利用峰均比近似对SNR进行计算即可
P A P R { s ~ ( t ) } = m a x ∣ R e ( s ~ ( t ) e j 2 π f c t ) ∣ 2 E { ∣ R e ( s ~ ( t ) e j 2 π f c t ) ∣ 2 } = m a x ∣ s ( t ) ∣ 2 E { ∣ s ( t ) ∣ 2 } PAPR\{\tilde{s}(t)\}=\dfrac{max{|Re(\tilde{s}(t)e^{j2\pi f_ct})|}^2}{E\{{|Re(\tilde{s}(t)e^{j2\pi f_ct})|}^2\}}=\dfrac{{max|s(t)|}^2}{E\{{|s(t)|}^2\}} PAPR{s~(t)}=E{∣Re(s~(t)ej2πfct)∣2}max∣Re(s~(t)ej2πfct)∣2=E{∣s(t)∣2}max∣s(t)∣2
首次写博文,如有不当之处也请各位批评指正!