gmsk调制解调
gmsk调制解调
用GNURADIO来测试实现GMSK调制解调
主要过程:
file source是文件输入,可以手动输入1110000数据,也可以换用random source ;另外调制之前加上加扰,解调之后进行解扰
file source -> pack to unpack -> scrambler ->unpack to pack ->packet encoder ->gmsk mod ->gmsk demod -> packet decoder -> pack to unpack ->descrambler -> unpack to pack -> file sink
其中要注意的是gmsk解调和调制模块的参数 sample/symbol ,要一致,具体数值根据字面上的含义可得 采样率/字符速率;
同样,packet encoder 和packet decoder 的sample/symbol 参数也要一致。
pack to unpack 模块主要作用,感觉就是一个数据输出格式的问题,将byte转成bit来处理,毕竟加扰是一位一位处理的。unpack to pack 就是反过来的。
packet encoder 和packet decoder 这两个模块很魔幻,必须配对的感觉,不然就解不出来了。如果调制没有encoder,那解调也不要加decoder ,对于用硬件接收到的gmsk信号。
如果你输入的文件只是一小串字符,比如”hello world"之类的,发现输出文件为空,那就要注意file source 模块的repeat有没有设置,若没有就要设置一下。gnuradio默认数据长度为512可以成包(我是这么理解的),如果输入数据过短,packet decoder是解不出来的。
对于实际信号,我找到了一份参考:
http://www.2cto.com/Article/201412/357131.html