互相关与finddelay计算信号时延正负差异及BER评估问询
实验基础信息
- 发射信号存储文件:
ch1norm.csv - 接收信号存储文件:
ch2norm.csv - 总采样点数:4000
- 采样时间间隔:0.00000004 sec(即40 ns)
- 核心任务:求解发射信号与接收信号之间的传输时延
现有时延计算代码
D1=load('F:\PhD\SPS-3\DSO_Data\BPW34_R68K_T68ohm\One-meter\ALL0005\ch1norm.CSV'); D2=load('F:\PhD\SPS-3\DSO_Data\BPW34_R68K_T68ohm\One-meter\ALL0005\ch2norm.CSV'); [C21,lag21] = xcorr(D2(:,2),D1(:,2)); [A,I]=max(abs(C21)); t21 = lag21(I); % 互相关法计算时延 delay1=finddelay(D1(:,2),D2(:,2)); % finddelay函数计算时延
当前两种方法计算得到的时延结果为59个采样点,换算为实际物理时延为
59 * 0.00000004 = 2.36e-6 sec(2.36 μs),代码中两个函数的输入顺序匹配,结果一致性没有问题。
技术疑问解答
1. 时延计算结果正值与负值的区别
时延结果的正负完全由计算时两个信号的输入顺序决定,物理含义对应两个信号的超前/滞后关系:
- 对代码中使用的
xcorr(D2,D1)调用方式:返回的lag值为正,代表输入的第一个信号D2(接收信号)相对于第二个信号D1(发射信号)滞后,也就是发射信号先出现,接收信号延迟对应采样点后才出现,符合实际信号传输的物理规律;如果lag值为负,代表D2比D1超前,一般是采集时通道触发顺序错误、收发信号加载顺序颠倒导致的,不符合正常传输逻辑。 - 对代码中使用的
finddelay(D1,D2)调用方式:返回正值代表第二个输入D2比第一个输入D1滞后,返回负值代表D2比D1超前,和互相关法的判断逻辑完全对齐。当前得到的59为正值,属于符合物理常识的结果。
2. 基于现有采样值评估误码率(BER)的方法
按以下步骤操作即可得到可靠的BER结果:
- 第一步:时延对齐。用算出的59个采样点偏移量,将接收信号整体平移,和发射信号在时间轴上完全对齐,裁掉两端对齐后冗余的采样点,保证两段待比对信号长度完全一致。如果信号带帧结构,要先定位同步头位置做帧对齐,避免序列错位导致BER计算失效。
- 第二步:电平判决。因为信号是归一化存储的,无明显直流偏置的情况下直接取0作为判决阈值即可:采样值大于0判为比特1,小于0判为比特0,分别得到发射端原始比特序列、接收端判决后的比特序列。如果是PAM等高阶调制、或者信号存在直流偏移,要对应调整判决电平和判决规则,先消除直流分量再做判决。
- 第三步:误码统计。逐位比对两个比特序列,统计取值不一致的比特总数,除以参与比对的总比特数,得到的结果就是当前测量条件下的误码率。
内容的提问来源于stack exchange,提问作者Mrinmoyee Mukherjee
相关产品推荐
相关产品推荐

