【自制osh数据集】ubuntu18.04.6虚拟机下安装GNU radio实现调制识别数据集生成

提前安装好虚拟机软件,我用的是VM workstations pro 16,网上自行下载安装,ubuntu版本是18.04.6 LTS,网上教程很多

一、更换清华镜像源提升下载速度

如何查找对应系统版本的清华镜像源并修改镜像源
提示:如果source.list文本是only read 无法修改,可以通过将修改镜像源前的所有指令加上sudo提升权限。版本错误的镜像源有可能导致链接失败,所以一定要找到系统版本的镜像源。

#找到/etc/apt/sources.list,先备份source.list 再进行指令操作
sudo gedit /etc/apt/sources.list
#删掉原来的,增加新的且保存后在进行更新源
sudo apt-get update

二、下载并安装GNU radio

直接使用指令安装,无需下载安装包压缩文件,此时默认安装的是3.7.11版本的,无需再安装其他依赖,一般不会报错,如果因为网速问题失败可以重新输入指令下载

sudo apt-get install gnuradio

三、安装Python

默认安装2.7.17,后续安装过程中不知道为什么也会安装Python3的版本,暂且不用管他

sudo apt-get install python

四、安装pip

默认是pip2,后续可通过pip install xxx 安装一些组件

sudo apt-get install python-pip

五、安装cmake

sudo apt-get install cmake

六、安装gr-mediatools和gr-mapper

GitHub上下载
gr-mediatools
gr-mapper
或者

git clone https://github.com/osh/gr-mediatools.git
git clone https://github.com/gr-vt/gr-mapper.git
#该方法需要提前安装好git组件,不然无法通过git安装

解压到home后分别是
在这里插入图片描述
gr-mediatoolslib文件夹中找到mediatools_audiosource_impl.cc文件中91行
找到d_frame = avcodec_alloc_frame();
改成d_frame = av_frame_alloc();
并执行指令sudo apt-get install libavcodec-dev libavformat-dev
然后进行安装

cd gr-mediatools-master
mkdir build
cd build
cmake .. #会报错,后面有解决方法
make -j8 #多线程进行安装,否则特别特别慢
sudo make install
sudo ldconfig

gr-mediatools中cmake 报错
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
解决方法:sudo apt-get install doxygen
-- Checking for module SWIG -- Disabling SWIG because version check failed.
解决方法:sudo apt-get install swig
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components: doxygen missing components: dot
解决方法:sudo apt-get install graphviz

等等一系列,总之就是缺什么,就用sudo apt-get install xxxx的方法安装什么

mapper同理也是上面的步骤

cd gr-mapper-master
mkdir build
cd build
cmake .. 
make -j8 #多线程进行安装,否则特别特别慢
sudo make install
sudo ldconfig

以上过程中出现的warning我都没有管,只要不报错变红,我都默认继续安装下去

七、安装pycharm

网上自行搜索pycharm community
安装后找不到打开方式使用指令:

which pycharm-community

结果就是安装路径

八、GitHub上下载dataset数据集并运行

1.导入project到pycharm,设置编译环境为python2.7
一开始打开有可能是默认python3.6,但是源代码支持python2,所以需要在settings中更改编译环境,在更改的同时注意:要将全局的package都导入到新的python2.7编译环境中,否则会编译失败导致出现no module name "gnuradio"等等问题。不会改python编译环境的网上百度一下就有。
在这里插入图片描述需勾选inherit global site-packagemake available to all project,不然新的环境下啥package都没有

2.代码中会有各种模组的缺失,可以在终端pip install xxx安装。方法跟在平时Windows系统下的一样。

九、结果

代码会有worning的警告(head missingfractional_interpolator_ff要求替换成upsample的问题),修改方法暂时还没想到,希望有知道的可以评论留言一下。但是总体上代码可以运行,就是时间长一点,需要等好几分钟。最后跑出来的数据集我放入最初osh的那个CNN网络训练了一下,跟开源的数据集结果相差不大,自制的数据集应该是没有问题了。后续有任何问题或解决方法再补充吧!

撒花完结,感谢互联网上提供各种各样解决方法的网友们!!!