Skip to content

ziyuanjun/gr-xzyblocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

当前工作小结

目前,已经编写了 python 模块,可以实现对给定频率区间的自动扫描。具体而言,每个定点扫描处,使用 FFT 计算出频谱,并取出其中有效的部分(考虑到滤波器的过渡带效应以及频谱的混叠,靠近 +Fs/2、 -Fs/2 处的部分被予以舍弃,这也导致了相邻两个固定频点间距小于Fs, 两个 FFT 的频谱区间是重叠 的),最终拼接出整个给定频率区间的频谱。

使用了 pyqtgraph 的方式绘制实时扫描的频谱。

目标

把频谱侦察分为两种模式:定频模式、扫频模式。两者没有实质上的区别,但由于扫频模式下多个区间段的频谱不是同一时刻获得的,它的实时性低于定频模式,这使得两种模式的信号处理方式略有区别。

最终,将完成如下工作(含两种模式):

信号检测

信号的调制体制识别

信号解调

计划

目前的工作实际上是对扫频模式的探索,接下来可以先实现定频模式的检测、识别和解调,进而拓展出扫频模式下的信号处理方式。

首先使用 python 编写出可用的原型,为了进一步提高算法的性能,再考虑将核心模块改成 C++ 编写。

定频模式原型设计

  • 信号检测模块 给出信号的中心频率和带宽的估计值(f0,B)。

    结果展示方法:

    1. 终端打印
    2. 图形(实时标绘在频谱图中)

    检测算法:

    1. 能量检测法
  • 体制识别模块 信号检测模块将信号序列传递给体制识别模块(使用 Message 的方式)、 体制识别模块能够给出根据传入的信号序列以及IQ采样给出每个信号的调制方式。

    结果展示方法:

    1. 终端打印
    2. 表格

    识别算法:

    1. 决策树
    2. 神经网络
  • 解调模块: 调制识别模块将识别结果为FM、AM的信号特征信息(f0,B,M)传递给该模块、 该模块根据调制方式(M=FM或AM)启动不同的解调方式,给出信号的解调结果。

其中,前两个模块可以参考 gr-inspector, 第三个模块的AM/FM解调在GNU Radio 中已经有很成熟的方法。

扫频模式原型设计

基本同上。

在后续的内容中,我将逐一实现定频/扫频模式的各个模块的编写,这个过程中会重复造轮子(编写 GNU Radio 的 OOT 模块)、学习优秀的现有模块、学习其中的信号处理方法。这些过程会尽可能地记录在这个版本库中。

About

Using GNU Radio to realize signal processing and research.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published