GNURadio学习(一)
结论:GNURadio数据处理流程
一、必要的模块了解:
pack unpacked chunk byte bit
byte (GNU Radio最小传输单位)= 8bits
注意:LSB:最低有效位( least significant bit,LSB)是指一个二进制数字中的第0位(即最低位),具有权值为2^0,可以用它来检测数的奇偶性。在大端序中,lsb指最右边的位。
MSB:最高有效位( most significant bit,MSB)指的是一个n位二进制数字中的n-1位,具有最高的权值2^(n-1)。最低有效位和最高有效位是相对应的概念。在大端序中,msb即指最左端的位。
1.pack K Bits :(packs K unpacked bits (one bit per byte, since the byte is the smallest item size in GNU Radio) *into a single packed byte containing K bits and 8 - K zeros. )*将K个unpacked比特pack成K个字节,每个unpacked bits 只考虑最低有效为1的那位。示例中直接转化成了16进制表示。
官方文档描述
2.Packed to Unpacked :(Converts a stream of packed bytes, shorts or ints into a stream of unpacked bytes, shorts or ints. )将pack成byte或short型的数据以unpacked型的数据输出。
Input type:int、short、byte;
Output type:int、short、byte。
Parameters:Bits per Chunk:选择一个chunk中有多少bit;
Endianness:选择使用MSB或LSB输出数据;
Num Ports:选择模块的输入输出点的个数。
3.Unpacked_to_Packed :将unpacked 的数据(bit)以byte或short型的数据输出。
Input type:int、short、byte。
Output type:int、short、byte。
Parameters:Bits per Chunk: 选择一个chunk中有多少bit;
Endianness:选择使用MSB或LSB输出数据;
Num Ports:选择模块的输入输出点的个数。
4.Chunks_to_symbols :(Map a stream of symbol indexes(unpacked bytes or shorts) to stream of float or complex constellation pointsin D dimensions (D = 1 by default)。)将unpacked的byte转化从星座点,可自定义码字
Input type:short、int、byte。
Output type:float、complex。
Parameters: Symbol Table:所使用的映射图;
Dimension:维数;
Num Ports:选择模块的输入输出点的个数
Notice:out[n D + k] = Symbol_Table[in[n] D + k], k=0,1,…,D-1
参考:https://dandelioncloud.cn/article/details/1548234032764694529
官方示例:
5.Constellation Decoder :解调。与调制采用相同的Constellation Objects即可
6.Constellation Rect. Object :生成Constellation Objects,可自定义其Constellation Points和Symbol Map,此处给出了QPSK调制bit与星座点的映射关系。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6b3c7b3320fd4b739a1030b7624a7184.png
二、流图生成:
1.搭建流图
功能:实现QPSK调制解调
2.点击得到仿真结果
仿真结果:
3.分析,得出了和比特流对应的QPSK调制的星座图,解调结果存在file文件里,需要python环境查看,此处还未安装python,还未验证结果正确与否。