从零开始USRP+GNURADIO系列(Boulogeorgos实例章节二)
1.了解并熟悉gnuradio的基本功能。
2.创建简单的示例并模拟低复杂度的通信系统。
2.1 计算信号功率
可以通过调用mag^2的组件来计算,也可以通过自己和自己相乘,两者皆可。
2.2 pack类型组件
pack组件很多人看的都很头晕,什么文档也没有,还总是能在各种调制电路中看见,为什么文档少,可能是比较简单写得少吧,但是很吐槽这种行为。
下面的是pack K bits组件,左右就是将输入的K个信号中每个提取一位组成一个字节输出,比如上面的例子,Example: k = 4 in = [0,1,0,1, 0x81,0x00,0x00,0x00] out = [0x05, 0x08],前四个0101组成了8位字节0x05,后面四个组成字节0x08。那就有个问题了,如果k>8怎么办,那不就溢出吗,比如输入9位,输入的第一位将被第9位移位出去,结果始终是后8个输入的
unpack_k_bits组件则是上面的逆过程。
下面的是unpacked to packed,和upacked k bit的功能类似,输入bit per chunk表示每个输入中取多少位,endianness表示最高或最低有效位优先。
简单实例如下图
packed to unpacked即逆过程。
Repack_Bits就是上面两个的结合,先unpacked再packed。
其实这个功能类似于进制转换,也可以实现量化编码的功能。在QAM,BPSK,QPSK较为常用。
2.2 信号调制
2.2.1 模拟信号调制
AM调制
AM调制解调就不说了,用到multiply和add这两个组件即可,解调相似,就是多了个滤波器。滤波器的详情看前一章内容。
双边带调制
双边带即是上述AM调制不要加直流分量。
单边带调制
单边带有滤波法和相移法两者,滤波法只需对双边带进行低通滤波即可。
下面介绍相移法,下图为下边带SSB。
角度调制(调频FM、调相PM)
FM调频,可以分为宽带调频和窄带调频,取决于FM信号的最大瞬时相位《0.5,为窄带调频,否则为宽带调频。
单音调频有种直接的调制的方式
通过将最后一项对应乘加运算,即可实现。
还有事通过grc组件方式实现,组件中有NBFM和WBFM两个组件,区别NBFM is the size of the internal low pass filter for interpolation. Here it has a cutoff frequency of 4.5kHz with 2.5KHz of transition width.
WBFM is the size of the internal low pass filter for interpolation. Here it has a cutoff frequency of 16kHz with 2KHz of transition width.
简单fm调频结构如下
audio_rate: sample rate of audio stream, >= 16k (integer)
quad_rate: sample rate of output stream (integer)
tau: preemphasis time constant (default 75e-6) (float)
max_dev: maximum deviation in Hz (default 5e3) (float)
fh: high frequency at which to flatten preemphasis; < 0 means default of 0.925*quad_rate/2.0 (float)
quad_rate must be an integer multiple of audio_rate.
其中预加重时间常数定义如下
PM调制
最为简单的相位调制如下所示
其中CPM Type选择的参数为如下
LREC: Rectangular phase response.
LRC: Raised cosine phase response, looks like 1 - cos(x).
LSRC: Spectral raised cosine. This requires a rolloff factor beta. The phase response is the Fourier transform of raised cosine function.
TFM: Tamed frequency modulation. This scheme minimizes phase change for rapidly varying input symbols.
GAUSSIAN: A Gaussian phase response. For a modulation index h = 1/2, this results in GMSK.
2.2.2 数字信号调制
振幅键控ASK
ASK调制可以用信号直接和载波相乘得到
频率键控FSK
如图是一个简单的2FSK调制
相位键控PSK
下图为psk调制
QT_GUI_Constellation_Sink是显示多个信号的IQ星座的图形接收器。
chunks_to_symbols用于将未压缩符号索引流映射到D维的浮点或复杂星座点流
对于chunks_to_symbols,我自己的理解是M个数值的信号,比如M=2(0,1),symblols_table应该有M*D的数,每D个表示一个M中的数,比如下图中的表达式应该是0->10,1->01。
(没有资料,自己的理解)