2013-03-17 69 views
1

对不起这个noob问题,因为我从来没有使用过matlab和信号处理。 下面是我想要做的事情:我有一个固定长度的字节数组X,现在我想将它编码为一个声音文件,我也希望这个过程是可逆的,这意味着声音可以转换回X没有错误。我在网上搜了一遍,发现下面的代码:QAM是最好的方法吗?

M = 16; 
x = randint(5000,1,M); 
y=modulate(modem.qammod(M),x); 

我的问题是,QAM是做这个的最好方法吗?以及如何使用它?一点点的代码示例将非常感谢,谢谢!

更新#1:我试图输出y的声音(Y),但MATLAB不允许我这样做,它说我只能输出浮点数。我该如何解决这个问题?谢谢!

+2

什么是你该传输系统的要求是什么?它必须是抗噪声的,传输信道是什么样的,你需要传输多少位/秒等等?有很多方法可以实现你想要的。如果你只需要保存一个声音文件并从中获取数据,上面的例子可能会工作,但如果你想通过无线或电话线或类似的方式传输音频,这完全是另一回事。 – KlausCPH 2013-03-17 20:12:50

+0

@KlausCPH我可能需要通过无线传输音频,比特率无关紧要,所以我应该看什么?谢谢 – 2013-03-17 21:23:12

+0

@KlausCPH btw,我的想法是将简单的ECC放入字节数组中以使其具有抗噪声性,这有可能吗?谢谢 – 2013-03-17 21:31:36

回答

1

如果您需要在空气上传输,你必须在你的面前安静了很多工作,我想。在电信系统中解决的最困难的问题通常是同步,这意味着您的接收器必须知道QAM符号及时放置在哪里。这并不容易。如果你选择继续,我同意mtrw你应该尝试dsp.stackexchange.com。

尝试例如用于成像的简单调制方案,其中每一个比特转换成具有取决于位是否是一或零频率一小段正弦的。你将如何去解码这在接收端?您需要检测第一位的开始,并在接收器上运行一些自我维护时钟以进行同步,以便在不改变的情况下查找位,即PLL(锁相环)。通过使用曼彻斯特编码,这可能会变得更容易,但是为了让它运行,您仍然需要做很多工作。

正如你看到的,有没有简单的解决办法,当你离开的保存Matlab的港口:-)

问候