1

现在我有一个直接从 WAV 文件加载的 PCM 原始字节数组,现在我必须将噪声添加到原始字节数组中。我的要求是在不知道添加噪声的情况下无法解码结果,如果我确切知道噪声是什么,我也可以去除噪声。我目前的想法是将原始字节数组转换为短数组,并生成一个噪声短数组,其随机生成数在 2^-15 和 2^15 之间,并逐个插槽添加这两个数组。但是看起来这种方法不能保证我可以恢复原始数组。有人可以给我一些更好的想法吗?提前谢谢你。

4

2 回答 2

0

假设你有一个(声音)信号,S(t)。

你想“加密”这个信号,创建 E(t)。

您可以通过添加噪声 N(t) 来做到这一点。

S(t) + N(t) = E(t)。

此外,E(t) - N(t) = S(t)。

所以现在的问题是产生一种独特的“噪音”。

我会通过一个伪随机数生成器 ( http://en.wikipedia.org/wiki/Pseudorandom_number_generator ) 来执行此操作,您可以在其中将播种信息传递给收件人。

现在,任何拥有相同种子来创建 N(t) 的人都可以计算 E(t)-N(t)=S(t)


回复评论:

@Bjorn:这不是正常意义上的加密。但是,假设你有一些整数 C mod [0 - 2^16-1]。现在,在相同的范围 [0-2^16-1] 上添加一些统一的随机整数。结果也是该范围内的均匀随机整数。因此,根据随机序列生成器的质量,您可以创建不可解码的信号(没有原始叠加信号)。(我承认,如果没有溢出,情况就不会如此)。

@OP:您的问题是在传递数字后对其进行解码。

假设您有一个二进制字符串 10101010。现在,您将 11110000 添加到此。结果应该类似于 01011010。溢出到第 2^8 位。

现在,01011010 - 11110000 返回相同的初始值:10101010。所以这个溢出实际上有助于屏蔽原始信号

*前提是您使用了一个独特的掩蔽信号,您可以在接收方再次生成该信号。

于 2013-04-16T18:42:17.773 回答
0

根据定义,噪声是信号中的(准)随机干扰。您无法完全恢复原始信号,只有在您知道噪声频谱的情况下才能抑制它。

于 2013-04-16T18:36:36.203 回答