GRC模块中文说明

本文详细介绍了GRC(GNU Radio Companion)中的各类模块,包括信号源(Source)、信宿(Sink)、图形显示(Graphical)、包处理(Packet)、USRP相关模块、调制解调(Modulation)、编码解码(Coding)等,适用于无线通信系统的设计与实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用grc_block

Source block:
1、Constant Source。
提供一个幅度恒定的波形(阶跃信号)。
Output type:complex、int、short、float
Parameters(参数):Constant:幅度值。
2、Signal Source
信号源,可提供恒定波形(阶跃信号)、正弦信号、余弦信号、方波信号、三波信号、锯齿波信号。
Output type:complex、int、short、float
Parameters:Sample rate:采样率;
Waveform:选择信号源所用波形;
Frequency:频率;
Amplitude:幅度;
Offset:上下偏移量。
3、Noise Source
噪声源,可提供四种噪声:高斯噪声(Gaussian)、拉普拉斯噪声(Laplacian)、脉冲噪声(Impulse)、均匀分布噪声(Uniform)。
Output type:complex、int、short、float
Parameters:Noise Type:噪声类型;
Amplitude:噪声幅度;
Seed:种子(噪声是一种随机数,但一般随机数都是伪随机数,即以一真随机数种子作为初始条件,用一种算法不停迭代产生随机数)。
4、Vector Source
矢量源,从一个向量中获取数据输出。
Output type:complex、int、short、float、byte
Parameters:Vector:获取数据的矢量;
Repeat:一个数据结束后是否重复该数据;
Vector Length:矢量长度。
5、Random Source
随机源,提供随机信号。
Output type:int、short、byte。
Parameters:Minimum:随机数范围最小值;
Maximum:随机数范围最大值;
Num samples:取样个数;
Repeat:是否重复。
6、GLFSR Source
伽罗华线性反馈移位寄存器伪随机信源。
Output type:float、byte。
Parameters: Degree:阶数;
Mask:移位寄存器的多项式表达;
seed:移位寄存器初始状态。
7、Null Source
空信源,提供一个输出为零的信源。
Output type:complex、int、short、float、byte。
8、File Source
文件源,将一个文件当做信源,读入一个文件然后以不同数据形式输出。
Output type:complex、int、short、float、byte
Parameters:Repeat:是否重复;
Vector length:矢量长度。
Notice:不可使用内容为汉字的文件作为信源。
9、TCP Source
TCP信源,有两种模式,即客户机与服务器,模拟面向连接的TCP协议下客户机与服务器的通信。
Output type:complex、int、short、float、byte。
Parameters:Address:IP地址;
Port:端口号;
Mode:工作模式(Server or Client);
Vector Length:矢量长度。
10、UDP Source
UDP信源,模拟面向无连接的UDP模式通信。
Output type:complex、int、short、float、byte。
Parameters:IP Address:IP地址;
Port:端口号;
Payload size:负载长度;
Null pkt is EOF:是否以空包作为结束标志;
Wait for DATA:是否等待数据;
Vector Length:矢量长度。
11、Audio Source
音频信源,可以读入音频设备的产生信号作为输出。
Output type:float。
Parameters:Sample rate:采样频率(注意采样频率修改要参考硬件音频设备,不是每种采样瓶率设备都支持);
Device Name:设备名称(信号输入设备的名称);
Num Output:模块输出个数(Audio Source可以依据硬件设备产生
多个输出,例如立体声就需要两个输出)。
12.、WAV File Source
WAV 波形文件信源,可以以一个WAV波形文件作为信源。WAV是一个采样率为44。1KHz,16位量化的无损音频文件,实际上就是PCM,一般录音文件格式为WAV。
Output type:float。
Parameters:Repeat:是否重复;
N channels:信道数。
13、Message Source
消息信源,把一个接收到的消息转化成可用的几种数据类型后再输出。
Output type:complex、int、short、float、byte。
Parameters:Vector length:矢量长度。
14、Pad Source
该模块可以将一个模块的输出作为另一个flow graph的输入,需要配合Pad sink来使用。其模块系数自动排列,初始系数为0。
Output type:complex、int、short、float、byte。
Parameters: Vector length:矢量长度。
15、Virtual Source
虚拟信源,可设置一个数据流ID,提供一个虚拟信源。


Sink block:
1、Variable Sink
变量信宿,将输入数据流采样读入,并按找设定好的点数,隔几个点取一个并写入变量中。
Input type:complex、int、short、float、byte。
Parameters:Variable:变量名(要写入的变量名);
Decimation:抽取系数,即选择隔多少点抽取一个点;
Vector length:矢量长度。
2、Vector Sink
矢量信宿,将输入的数据写入矢量中。
Input type:complex、int、short、float、byte。
Parameters:Vector length:矢量长度。
3、Null Sink
空信宿,位地址,用于接收数据及丢弃不需要的数据。
Input type:complex、int、short、float、byte。
Parameters:Vector length:矢量长度。
4、File Sink
文件信宿,将接收到的数据流写入到一个文件中。
Input type:complex、int、short、float、byte。
Parameters:File name:文件名;
Vector length:矢量长度。
5、TCP Sink
TCP信宿,与TCP信源相对应,在TCP协议下建立面向连接的可靠通信。有客户机与服务器两种工作模式,在客户机模式下,与给定IP地址和端口号的服务器建立连接;在服务器模式下,将给定的地址与端口号关联到套接字上。 Input Type:complex、int、short、float、byte。
Parameters:Address:IP地址;
Port:端口号;
Mode:工作模式(Server or Client);
Vector Length:矢量长度。
6、UDP Sink
UDP信宿,与UDP信源相对应,在UDP协议下建立面向无连接的通信,将输入数据流写入一个UDP socket(套接字)中。
Input Type:complex、int、short、float、byte
Parameters:Destination IP Address:IP地址;
Destination Port:端口号;
Payload size:负载长度;
Null pkt is EOF:是否以空包作为结束标志;
Vector Length:矢量长度。
7、Audio Sink
音频信宿,将音频信息输入到音频硬件设备中。
Input type:float。
Parameters:Sample rate:采样频率(注意采样频率修改要参考硬件音频设备,不是每种采样瓶率设备都支持);
Device Name:设备名称(信号输入设备的名称);
Num Input:模块输入个数。
8、WAV File Sink
WAV文件信宿,从一个WAV文件中读入数据流,输出浮点型数据,取值在(-1.0,1.0)。
Input type:flaot
Parameters:File name:输入文件;
N channel:信道数;
Sample rate:采样率;
Bit per sample:每样值比特数(默认8bit)。
9、Message Sink
消息信宿,将接收到的信息汇集到消息中去,并将其插入到信息阵列中。 Inputtype:complex、int、short、float、byte。
Parameters:Vector length:矢量长度。
10、Pad Sink
与Pad source一同使用,将一个模块的输入作为另外一个flow graph的输入。 Input type:complex、int、short、float、byte。
Parameters:Vector length:矢量长度。
11、Virtual Sink
虚拟信宿,可设置一个数据流ID,提供一个虚拟信宿。
Graphical block:
1、Scope Sink
示波器,观察信号的时域波形。
Input type:complex、float。
Parameters:Sample rate:采样率;
V scale:垂直方向扫描范围;
V offset:垂直方向偏移;
T scale:水平方向扫描范围;
AC couple:交流开关;
XY mode:XY模式开关;
Num Inputs:输入个数;
Window size:显示窗口尺寸;
Grid Position:当多于一个窗口显示时,当前窗口的位置。
2、Constellation Sink
星座图显示,能够显示信号的星座图。
Input type:complex。
Parameters:Sample rate:采样率;
Frame rate:帧速率;
Constellation size:星座图尺寸;
M:科斯塔环控制系数;
Theta:科斯塔环控制系数;
Alpha:科斯塔环控制系数;
Max freq:最大频率;
Mu:M&M模块系数;
Gain Mu:用于调整Mu的值;
Symblo rate:符号率;
Window size:窗口尺寸;
Grid positon:当多于一个窗口显示时,当前窗口的位置。
3、FFT Sink
快速傅里叶变换频谱分析仪,观测快速傅里叶变换的频谱。
Input type:complex、float。
Parameters:Sample rate:采样率;
Baseband freq:基带频率;
Y per Div:纵坐标之间的间隔;
Y divs:显示窗口中纵坐标的显示个数;
Ref level:窗口刚出现时所显示的纵坐标最大值;Ref scale:?
FFT size:FFT大小;
Refresh rate:窗口图像更新率;
Peak hold:峰值保持;
Average:均值;
Window:FFT窗口算法,如汉明窗等;
Window size:窗口尺寸;
Grid Position:当多于一个窗口显示时,当前窗口的位置。
4、Number Sink
主要用于显示数据的具体数值,可用于计算误码率时显示误码率的时候等。
Input type:complex、float。
Parameters:Units:所出现数值的单位,可以自己设定;
Sample rate:采样率;
Min value:最小值;
Max value:最大值;
Factor:影响显示数值的大小,输入数据先与该值相乘再显示
Decimal places:小数点之后的显示位数;
Reference level:作用同factor,输入数据与factor相乘后再与该值
相加之后再显示;
Show garge:以横向柱形图的方式表示显示数据;
Peak hold:峰值保持;
Average:均值;
Window size:显示窗口大小;
Grid position:当多于一个窗口显示时,当前窗口的位置。
5、Waterfall sink
瀑布图显示。
Input type:complex、float。
Parameters:Sample rate:采样率;
Baseband freq:基带频率;
Dynamic range:动态范围;
Reference level:影响显示数值大小;
Window:显示窗口算法;Average:均值;
Window size:显示窗口大小;
Grid position:当多于一个窗口显示时,当前窗口的位置。
6、Histo sink
柱状统计图显示。
Input type:float。
Parameters:Num bins:每个柱中的点数;
Frame size:帧大小;
Window size:显示窗口大小;
Grid position:当多于一个窗口显示时,当前窗口的位置。
7、Terminal sink
目前作用还不太清楚。

Packet block:
1、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:选择模块的输入输出点的个数。
2、Packed_to_Unpakce
将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、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)。
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
4、Packet_encoder
在使用gmsk、dpsk、qam调制模块的时候使用。
Input type:complex、float、int、short、byte。
Output type:byte。
Parameters:Samples/Symbol: 每个符号的采样数(应该和之后的调制模块的数值相同);
Bits/Symbol: 每个符号的bit数;
Access Code: 同步向量(0,1组成的字符串),空白表示自动设置; Pad for USRP: 如果设为True,那么packet就补充成为128采样的倍数;
Payload Length: 包的长度,设为0 表示自动设置。
Notice: Bits、Symbol应该按下列要求设置:
gmsk -> 1
dbpsk -> 1
dqpsk -> 2
d8psk -> 3
qam8 -> 3 qam16 -> 4 qam64-> 6 qam256 -> 8
5、Packet_decoder
在使用gmsk, dpsk, qam调制模块的时候使用Input type:byte。
Output type:complex、float、int、short、byte。
Parameters:Access Code:同步向量(0,1组成的字符串),空白表示自动设置;
Threshold:检测Access Code的正确与否 (Threshold<0 -> use
default)。

USRP block
1、USRP Source
使用USRP来接受信号。
Output type:complex、short。
Parameters:Format:接收数据的格式;
Unit Number:连接的USRP号;
Decimation:The decimation rate of the ADC([4,256]);
Frequency:接收频率;
LO Offset:子板的本振频偏;
Gain:设置PGA;
Side:选择母板的使用端;
Rx Antenna:选择接收天线;
Halfband Filters:选择是否使用半波滤波器。
2、USRP Sink
使用USRP来发送信号。
Input type:c omplex、short。
Parameters:Unit Number: 连接的USRP号;
Interpolation:The interpolation rate of theDAC([8,512],and the
multiple of 4);
Frequency:发送频率;
LO Offset:子板的本振频偏;
Gain:设置PGA;
Side:选择母板的使用端;
Transmit:是否启动发送。
3、USRP Dual Source
同时使用两块子板接收信号,Parameters同USRP source。
4、USRP Dual Sink
同时使用两块子板发送信号,Parameters同USRP 斯诺克sink。
Additional:
Throttle限流模块,不过不可和USRP模块同时使用。
Modulation(调制) block:
1、Frequency mod
频率调制模块。
Input type:float。
Output type:complex。
Parameters:Sensitivity:调制系数。
2、Phase mod
相位调制模块。
Input type:float。
Output type:complex。
Parameters:Sensitivity:调制系数。
3、Quadrature demod
频率调制解调模块。
Input type:complex。
Output type:float。
Parameters:Gain:设为频率调制中调制系数的倒数。
4、CPFSK
连续相位FSK调制。
Input type:byte。
Output type:complex。
Parameters:K:调制系数;
Amplitude:输入幅度;
Samples/Symbol:每个输入bit的输出采样数。
5、DPSK Mod
DBPSK、DQPSK、D8PSK调制器。
Type:DBPSK、DQPSK、D8PSK。
Input type: byte。
Output type: complex。
Parameters:Samples/Symbol: 每个符号的采样数,应该大等2;
Excess BW:Root-raised cosine filter excess bandwidth;Gray Code:是否使用Gray Code;
Verbose:是否打印调制模块的相关Parameters信息; Logging:是否将输出数据自动存储在文件中。
6、DPSK demod
DBPSK、DQPSK、D8PSK解调器。
Type:DBPSK、DQPSK、D8PSK。
Input type:complex。
Output type:byte。
Parameters: Samples/Symbol: 每个符号的采样数,应该大等2;
Excess BW: Root-raised cosine filter excess bandwidth;
Costas Alpha: 环路滤波器增益;
Gain Mu:用来调整Mu的值;
Mu: 位于[0。01。0]之间的一个值;
Omega Relative Limit: 用于计算Omega的最大和最小值;
Gray Code:是否使用Gray Code;
Verbose:是否打印调制模块的相关Parameters信息;
Logging:是否将输出数据自动存储在文件中。
Notice:Gain MU,MU and Omega Relative Limit 是clock_recovery_mm_ff、cc block中的Parameters,这个解调模块使用M&M算法来作为它的同步算法。
7、GMSK mod
GMSK调制器。
Input type:byte。
Output type:complex。
Parameters: Samples/Symbol: 每个符号的采样数,应该大等2;
BT:Gaussian filter bandwidth * symbol time;
Verbose:是否打印调制模块的相关Parameters信息;
Logging:是否将输出数据自动存储在文件中。
8、GMSK demod
GMSK解调器。
Input type:complex。
Output type:byte。
Parameters:Samples/Symbols:每个符号的采样数,应该大等2;
Gain Mu:用来调整Mu的值;
Mu:位于[0。01。0]之间的一个值;
Omega Relative Limit:用于计算Omega的最大和最小值;
Freq Error:bit rate error;
Verbose:是否打印调制模块的相关Parameters信息;
Logging:是否将输出数据自动存储在文件中。
9、QAM mod
QAM调制器。
Type: QAM 8、16、64、256。
Input Type: byte。
Output Type: complex。
Parameters: Samples/Symbol: 每个符号的采样数,应该大等2;
Excess BW:Root-raised cosine filter excess bandwidth;
Gray Code:是否使用Gray Code;
Verbose:是否打印调制模块的相关Parameters信息;
Logging:是否将输出数据自动存储在文件中。
10、QAM demod
现在QAM解调模块中没有具体的工作函数。
11、OFDM mod
OFDM调制。
Input type:float、complex、int、short、byte。
Output type:complex。
Parameters:Modulation:选择调制方式;
FFT length:子载波的总数量;
Occupied Tones:用于数据的子载波数;
?Cyclic Prefix Length:length of cyclic prefix as specified in
subcarriers (<= fft_length);
Pad for USRP:如果设为True,那么packet就补充成为128采样的
倍数;
Payload Length:包的长度,设为0 表示自动设置。
12、OFDM demod
OFDM解调。
Input type: complex。
Output type: float、complex、int、short、byte。
Parameters: Modulation:选择调制方式;
FFT length:子载波的总数量;
Occupied Tones:用于数据的子载波数;
?Cyclic Prefix Length:length of cyclic prefix as specified in
subcarriers (<= fft_length);
SNR: 用于指导cyclic prefix synchronizer的估计信噪比值。

Coding block:
1、Trellis encoder
卷积码编码器。
Input type: byte、short、int。
Output type: byte、short、int。
Parameters:FSM Args:所使用的fsm文件的位置;
Initial State:卷积编码时的初始状态。
Notice:这个模块可以使用在TCM模式中。
2、Trellis Metrics
计算维特比算法所使用的metric。
Input type: complex、float、int、short。
Output type:float。
Parameters:Output Cardinality:fsm文件中的O值,应该是有限状态机的输出状态值;
Dimensionality:维数;
Constellation:映射图;
Metric type: metric的类型。。
3、Trellis Viterbi
维特比译码。
Input type:float。
Output type:int、short、byte。
Parameters:FSM Args:所使用的fsm文件的位置;
Block Size:数据模块的大小;
Initial State:set -1 for the automatic;
Final State:set -1 for the automatic。
4、Trellis Viterbi Combo
此模块就是将上两个模块合成为一个模块来使用。
5、Encode CCSDS 27
(2,1,7)卷积码编码。
Input type:byte。
Output type:byte。
6、Decode CCSDS 27
(2,1,7)卷积码译码。
Input type:float。
Output type:byte。
7、Scrambler
使用LFSR来加扰输入数据。
Input type:byte。
Output type:byte。
Parameters:Mask:LFSR的多项式表达式;
Seed:移位寄存器的初始状态;
Len: 移位寄存器的长度。
8、Descrambler
使用LFSR来解扰数据。
Input type:byte。
Output type byte。
Parameters:Mask: LFSR的多项式表达式;
Seed:移位寄存器的初始状态;
Len:移位寄存器的长度。
9、Additive Scrambler
使用LFSR来加扰输入数据。不过是用LFSR的输出数据与输入数据异或来加扰。
Input type:byte。
Output type:byte。
Parameters:Mask:LFSR的多项式表达式;
Seed:移位寄存器的初始状态;
Len:移位寄存器的长度;
Count:每隔多少bit寄存器就会重置。


<think>嗯,用户想了解如何使用GNU Radio生成信号,需要教程或示例。首先,我得回忆一下GNU Radio的相关知识。根据提供的引用资料,特别是引用[2]和[3],里面提到了GRC的使用和AM信号的生成和解调。用户可能需要基础的步骤说明以及具体示例,比如生成正弦波或者AM调制。 首先,我应该从安装和启动GRC开始,因为这是图形化界面,对新手友好。然后,可能需要介绍基本的工作流程,比如添加信号源、调整参数、连接模块等。引用[2]中提到GRC类似于Simulink,所以可以类比说明。 接下来,具体示例是关键。例如生成正弦波,可能需要用到Signal Source模块,设置频率、采样率等参数,然后连接到Throttle和QT GUI Sink来显示波形。这部分需要详细说明每个模块的作用,参数设置,以及如何运行流图。 然后,可以进阶到AM调制,如引用[3]中的内容。这里需要解释AM调制的原理,如何在GRC中添加乘法器和音频输入,或者使用音频设备作为信号源。同时,可能需要提到使用Socket进行数据传输,但用户可能暂时不需要硬件,所以用虚拟设备更合适。 还要注意用户可能的常见问题,比如找不到模块、参数设置错误或者实时处理的问题,给出解决建议。此外,相关问题的生成要围绕用户可能进一步的需求,比如信号调制类型、软件定义无线电的结合,或者性能优化。 需要确保回答结构清晰,分步骤讲解,并引用提供的资料作为支持。同时,避免使用用户不可见的格式,保持自然的中文表达,并正确应用LaTeX格式。检查是否有遗漏的细节,比如保存流图和运行的方法,以及可能需要的依赖项安装提示。</think>以下是如何使用GNU Radio生成信号的教程和示例,结合GRC(GNU Radio Companion)图形化工具进行说明: ### 一、基础信号生成步骤 1. **启动GRC** 在终端输入`gnuradio-companion`启动图形化界面[^2]。 2. **创建新流图** 拖拽以下模块到工作区: - **Signal Source**:选择信号类型(如正弦波$f(t)=A\sin(2\pi ft)$) - **Throttle**:控制数据流速率(必须添加以防止系统过载) - **QT GUI Time Sink**:显示时域波形 - **QT GUI Frequency Sink**:显示频域特性 3. **参数设置示例** ```plaintext Signal Source参数: - 采样率(Sample Rate): 32k - 频率(Frequency): 1k - 幅度(Amplitude): 0.8 ``` 4. **连接模块** 按信号流向连接端口,最终流图结构为: `Signal Source → Throttle → QT GUI Sinks` ### 二、AM信号生成示例[^3] ```plaintext 流图组成: 1. Audio Source(音频输入) 2. Signal Source(载波,如10kHz正弦波) 3. Multiply模块(实现调制$s(t)=[1+km(t)]\cdot c(t)$) 4. Throttle 5. QT GUI Sinks ``` 参数设置要点: - 载波频率需远高于音频频率 - 调制指数$k$应小于1防止过调 ### 三、运行与调试 1. 点击工具栏**Generate Flowgraph**生成Python脚本 2. 按**Execute**运行流图 3. 在GUI界面观察波形和频谱 §§常见问题解决§§ 1. **找不到模块**:通过右击工作区搜索模块名 2. **参数报错**:检查采样率是否满足奈奎斯特准则$f_s > 2f_{max}$ 3. **实时性问题**:降低采样率或增加Throttle限速
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值