gnuradio·进阶系列|SRRC滤波
基础知识
了解RC滤波器与平方根升余弦滤波器(SRRC)的基本概念。RC滤波器是使用升余弦滤波器的简写,而SRRC是源码其平方根形式。冲激响应是使用滤波器对单位脉冲的响应,对于平方根升余弦滤波器而言,源码冲激响应被称为平方根奈奎斯特脉冲,使用源码小店对于升余弦滤波器则为奈奎斯特脉冲。源码在脉冲成形中,使用平方根升余弦滤波器是源码重要工具之一,并属于匹配滤波器范畴。使用
匹配滤波器与一般滤波器的源码区别在于目标。一般滤波器旨在保持信号频谱的使用保真度,同时滤除不必要的源码频谱分量;而匹配滤波器则在存在高斯白噪声的条件下,通过调整信号能量来最大化已知信号的使用信噪比。匹配滤波器改变信号的源码时域结构,在输出码元末端获得最大幅度值。
升余弦滤波器的频域表达式与对应时域表达式被详细描述,涉及两个奇点的定义。升余弦滤波器的涅盘重生指标源码冲激响应示意图清晰展示了其频域与时域特性。
平方根升余弦滤波器的时域表达式同样被列出,两个奇点定义也一并说明。平方根升余弦滤波器的级联响应与单个响应示意图提供了更直观的视觉理解。
在gnuradio中实现升余弦滤波器算法。源代码提供了五个关键参数:滤波器增益、采样频率、符号率、滚降系数、抽头数。滤波器增益影响信号能量,采样频率在通信系统中通常设定为系统采样率,而符号率与每秒传输符号数相关联。gnuradio中的实现包括理论公式的量化与近似处理。
通过与matlab根升余弦滤波函数对比,理解span与sps参数的意义。span代表滤波器的符号长度,sps代表每符号样点数。matlab与gnuradio中的能量买卖指标源码ntaps变量含义相同。
通过设定参数(内插系数、滚降系数、span、sps)分析两个软件在成型数据上的差异。内插系数的大小影响成型效果的接近度。
在实际应用中,使用gnuradio根升余弦滤波模块时,参考matlab API函数设计参数值。
对SRRC的深入分析已在先前的讨论中进行。
sdr开发篇 6. zynq+ad的linux工程搭建
SDR开发过程中,我们首先从hdl源码开始,从github下载_r1分支的zip包,解压后放置在工作区~/work/zynq_dev/ados。然后,创建Vivado工程,配置环境并编译,需要注意的是,这个工程需要针对xmzed进行修改。ai屏幕识别源码接着,对DDR和EMIO接口进行适配,并导出HDF文件。
接着,我们进入Petalinux 2.1工程阶段,拷贝适配后的HDF文件,并从github获取ADI的Linux内核和meta-adi。内核和meta-adi需下载、解压并配置,硬件信息目录中需要设置唯一的HDF文件。初次配置后,后续只需在修改后重新编译,配置启动方式、接口、SD卡,并解决source bitbake失败的问题。
内核配置中,USB和IIO功能默认开启。美易导入源码设备树部分,需在dash环境下修改,并在device-tree.bbappend中添加自定义设置。root文件系统配置时,由于meta-adi的影响,需要调整petalinux-user-image.bbappend以恢复默认设置。
编译工程时,注意分配足够的CPU资源,可能需要解决网络问题并设置全局代理。遇到错误时,如jesd-status-dev-r0的fetch问题,需替换相关文件。最后,打包boot.bin并制作SD卡文件系统,包括EXT和FAT分区,并进行启动测试。
测试阶段,通过拨码开关启动设备,使用默认root/root登录,进行IIO连接测试和Gnuradio发送信号测试。整个过程参考了相关教程和文档,如AD的开发指南和Linux驱动等。
ADI PLUTO 2:GNURADIO安装(直接安装)
序言
本文详细介绍如何在开发平台安装GNURadio,重点阐述直接安装法。安装流程分为四步,依次安装补丁、GNU Radio及依赖,下载并构建libiio、libad-iio和gr-iio。安装完毕后,通过运行测试程序验证安装是否成功。成功安装的标志是PlutoSDR控件在Industrial IO下可用,QT GUI Frequency Sink和QT GUI Waterfall Sink在Core->Instrumentation下可见。对于PlutoSDR Source的设置,通过修改IP地址来配置,该IP地址是Pluto预设的,也可通过config.txt文件调整。考虑到直接通过USB连接存在困难,推荐使用IP连接方式。
安装步骤(直接安装)
1. 使用apt-get安装补丁与GNU Radio相关依赖。
2. 源码下载libiio、libad-iio和gr-iio。
3. 分别构建libiio、libad-iio和gr-iio。
完成这四个步骤后,即完成GNU Radio的直接安装。
测试步骤
安装完毕后,执行测试程序,观察是否出现成功安装的标志:PlutoSDR控件在Industrial IO目录下可用,QT GUI Frequency Sink和QT GUI Waterfall Sink在Core->Instrumentation目录下可见。验证方法是检查PlutoSDR Source配置,设置Device URI为PC与Pluto的IP地址,此IP地址预设于Pluto中,如需更改,可通过修改Pluto的config.txt文件实现。
总结
本文提供GNU Radio直接安装流程,通过安装补丁与依赖、下载并构建相关组件,完成安装。成功安装的验证步骤包括检查PlutoSDR控件与GUI组件的可用性,以及配置PlutoSDR Source的IP地址。直接通过USB连接存在困难,推荐使用IP连接方式。
å¨kali linux ç³»ç»ä¸å¦ä½å®è£ gnuradio
kali 1.å®è£ gnuradio,é 置软件æ 线çµæç¨
GNURadioå¯è°æ¯å¼æºçæ 线çµç±å¥½è çâåç«åºâãçååå¯è½ä½ å°±çå°äºï¼GNURadioæ¯å¼æºçï¼å¹¶ä¸ä½¿ç¨GPLåè®®å¼æºã
项ç®ä¸»é¡µåä»ç»ï¼ï¼å¯è½è¢«å¢äºï¼èªè¡ç¿»å¢ï¼
/mossmann/hackrf.git cd hackrf/host mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress /mossmann/hackrf.git
cd hackrf/host
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
ç¼è¯rtlsdr(å¯é)git clone --progress git://git.osmocom.org/rtl-sdr cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON sudo make install sudo ldconfig
1
2
3
4
5
6
7
git clone --progress git://git.osmocom.org/rtl-sdr
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
sudo make install
sudo ldconfig
ç¼è¯gr-osmosdrgit clone --progress git://git.osmocom.org/gr-osmosdr cd gr-osmocom mkdir build cd build cmake ../ make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress git://git.osmocom.org/gr-osmosdr
cd gr-osmocom
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
ç¼è¯gqrx(å¯é)git clone /csete/gqrx.git cd gqrx mkdir build cd build qmake ../gqrx.pro make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone /csete/gqrx.git
cd gqrx
mkdir build
cd build
qmake ../gqrx.pro
make
sudo make install
sudo ldconfig
ç¼è¯å®æå
ä½ å¯ä»¥å°è¯ä»¥ä¸å½ä»¤
osmocom_fft : ä¸ä¸ªç®åçHackRFé¢è°±ä»ªosmocom_siggen : ä¸ä¸ªç®åçHackRFä¿¡å·æºgqrx : 类似äºSDR#ç广ææ¥æ¶å¨gnuradio·加解扰模块分析
加解扰模块在通信系统中起到至关重要的作用。其基本概念,如维基百科所述,旨在恢复定时并减少载波间干扰。扰码器通常基于线性反馈移位寄存器实现,以增强信号的功率谱,使其更分散,符合最大功率谱密度要求。加性扰码和乘性扰码是两种主要的扰码结构。
加性扰码直接将输出送入寄存器,而乘性扰码则先与输入数据进行异或操作,再送入寄存器。具体而言,加性扰码的实现包括mask、seed、length和count等参数。当设置bits per byte为1时,通过向量源输入特定序列,可观察到扰码后的输出序列。解码过程相对简单,只需与加扰过程保持一致,即可还原原始数据流。
乘性扰码的实现涉及特定参数和头文件、函数。其与解扰模块的种子值设置不同,这与加性扰码形成对比。在实际应用中,乘性扰码需将字节数据转换为比特位进行操作。通信系统中,使用repack bits模块能实现逐比特处理及数据流的位置对齐。在自同步过程中,扰码序列可能会产生garbage,但很快就能通过流图测试实现同步还原。
对扰码模块进行详细的测试和验证,可参考gnuradio源码下的qa_scrambler.py文件。了解扰码模块的实现和应用,有助于优化通信系统的性能,减少干扰,提升数据传输的可靠性。
2024-11-30 15:28
2024-11-30 14:28
2024-11-30 14:08
2024-11-30 13:26
2024-11-30 13:15