gpt4 book ai didi

gnuradio - 使用 GNU Radio 加扰器和解扰器

转载 作者:行者123 更新时间:2023-12-02 19:11:37 28 4
gpt4 key购买 nike

我正在尝试使用 GNU Radio 解扰 block 。我有一个由第三方编写的需要解扰的 block 。使用的多项式为 x17 + x12 + 1。

代码如下

descrambler_cc_impl::descrambler_cc_impl()
: gr::sync_block("descrambler_cc",
gr::io_signature::make(1, 1, sizeof(unsigned char)),
gr::io_signature::make(1, 1, sizeof(unsigned char)))
{
lsr = 0;
}

/*
* Our virtual destructor.
*/
descrambler_cc_impl::~descrambler_cc_impl()
{
}

int
descrambler_cc_impl::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const unsigned char *in = (const unsigned char *) input_items[0];
unsigned char *out = (unsigned char *) output_items[0];
int i;
for (i = 0; i < noutput_items; i++) {
out[i] = (lsr & 1) ^ ((lsr >> 12) & 1) ^ ((lsr >> 17) & 1);
lsr = lsr << 1;
lsr = lsr | (in[i] & 1);
}

// Tell runtime system how many output items we produced.
return i;
}

现在我想使用 GNU Radio 解扰器 block 。来自
this link ,我计算出的解扰参数如下:Mask - 0x0210001;种子 - 0x00;长度 - 24。

不幸的是,它不能像上面所示的代码中的对应部分一样工作。有人可以提供指导来解释为什么这不起作用吗?

最佳答案

很抱歉未能及时更新答案。下面的解释将澄清一切

GNU Radio block 解扰器实现给定掩码、种子和的乘法解扰器长度。掩码可以根据加扰多项式来计算。在 GNU Radio 中,多项式有在计算掩码之前以小端位顺序写入。对于上面的多项式,p(x) = x^17 + x^12 + 1,掩码是通过首先排列较低幂的系数来计算的,即coef(x^1), coef(X^2) ... coef(x^17) 对于上面的 p(x)。如下所示:

掩码 = 0000 0000 0010 0001 = 0x0021

从该 block 的源代码中,可以推断出这里的长度是移位寄存器的位数插入新位时需要移位。因此,长度可以计算为

length = deg (p (x)) − 1

对于我们的例子来说,17 - 1 = 16。

关于gnuradio - 使用 GNU Radio 加扰器和解扰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37211888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com