ZBLOG

解释以下是怎么实现抽样判决的class Verdict_t { public: Verdict_t(double _threshold, int _fc):threshold(_threshold), fc(_fc){} void operator()(Signal_t*& _sig) { Signal_Sim_t* sig_in = (Signal_Sim_t*)_sig; Signal_DigBase_t* sig_out = new Signal_Dig...

这段代码是一个名为 Verdict_t 的类,用于实现抽样判决的功能。下面对代码进行逐行解释:

  1. Verdict_t 类有两个成员变量,分别是 thresholdfc
  2. 构造函数:接收一个 _threshold 和一个 _fc 参数,并将它们分别赋值给 thresholdfc 成员变量。
  3. 重载了圆括号运算符的函数实现:
    • 将传入的 _sig 转换为 Signal_Sim_t* 类型,并赋值给 sig_in
    • 创建一个新的 Signal_DigBase_t* 对象 sig_out,其中包含与 sig_in 相同长度和采样率。
    • 根据采样率计算每个采样点之间的距离(N),以及判断抽样窗口的长度(len)。
    • 进行抽样判决操作:将每个抽样窗口内的信号值相加并取平均得到 sum 值,然后根据 sum 是否大于 threshold 来确定输出信号是高电平 (HIGH) 还是低电平 (LOW)。
    • 将抽样窗口内所有采样点设置为相同的输出信号值。
    • 删除之前创建的 sig_in 对象,避免内存泄漏。
    • _sig 指向新创建的 sig_out
  4. 私有成员变量:threshold 用于存储判决的阈值,fc 用于存储采样率的频率。

这段代码通过对输入信号进行抽样窗口内信号值的求和和判断,将抽样窗口内所有采样点设置为相同的输出信号值。具体是根据 sum 值是否大于阈值 threshold 来确定输出信号是高电平还是低电平。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=15931

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?