comms.py 文件源码

python
阅读 29 收藏 0 点赞 0 评论 0

项目:arlpy 作者: org-arl 项目源码 文件源码
def bi2sym(x, m):
    """Convert bits to symbols.

    :param x: bit array
    :param m: symbol alphabet size (must be a power of 2)
    :returns: symbol array

    >>> import arlpy
    >>> arlpy.comms.bi2sym([0, 0, 1, 0, 1, 0, 1, 1, 1], 8)
    array([1, 2, 7])
    """
    n = int(_np.log2(m))
    if 2**n != m:
        raise ValueError('m must be a power of 2')
    x = _np.asarray(x, dtype=_np.int)
    if _np.any(x < 0) or _np.any(x > 1):
        raise ValueError('Invalid data bits')
    nsym = len(x)/n
    x = _np.reshape(x, (nsym, n))
    y = _np.zeros(nsym, dtype=_np.int)
    for i in range(n):
        y <<= 1
        y |= x[:, i]
    return y
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号