将 8 位转换为一个字节以在 Java 中进行幅度调制

Converting 8 bits to a byte for amplitude modulation in Java

所以我正在 Java 中编写一个程序来进行振幅解调。我正在按值读取正弦波值并确定我的值是“1”还是“0”。现在我将它们保存为字符,但愿意接受建议。我知道每位的样本数,所以确定位不是问题。

我想不出将每组 8 位转换为一个字节的方法,因此我可以使用 UTF-8 解码最终的字节数组。有什么有效的方法吗?

试试这个,来自 Byte Java API

String myBitString = "10101010";
int radixTwo = 2;
byte myByteValue = Byte.parseByte(myBitString, radixTwo)

显然,您可以将字节值添加到 byte[] 数组,然后使用循环来显示/解码它们。

转换方法可能有用...

public static byte toByte(boolean[] bits){
    assert bits.length == 8;
    int tmp = 0;
    for (int i = 0; i < 8; i ++){
        if(bits[0] ){
            tmp = tmp + (2^i);
        }
    }
    return (byte)(tmp)
}