另外目前我在前期的调试实验中,发现用这套代码传输文本文件正常,发射端选择下面这样的txt文件,接收端也能正常接收下来
但是换成TS流文件就容易出错,导致视频大量马赛克,一直奇怪为什么会这样,最近我用二进制编辑工具打开ts流文件,才恍然大悟
TS流的文件,里面有大量的FFFFFF这样全1的数据,对于QPSK传输系统来说,最忌讳的就是传输全0全1的数据,因为这样的数据没有符号跳变,很容易导致时钟无法同步,大家可以试试用这套代码传输一个全部是0xff的文件,会发现星座图无法产生
这里就要说到DVB数字电视之类的协议里面的交织(interleaving)和加扰(Scramble)了,这两个过程的目的是把输入的数据打乱,避免出现这种大段的全1全0,显然我们上面的项目是没有做交织和加扰的。
在gnuradio中,有现成的交织和加扰模块可以用
后续在这个项目上加上交织和加扰,这样就能进一步提升传输的质量了