本文讲解视频: https://www.bilibili.com/video/BV1sh41127Z6

在使用GNU Radio来做的一些接收程序中,最具代表性的一个就是频谱分析仪程序。这个程序可以用来验证你的设备是否可以正常工作。

目录

一、我需要做什么?

二、搭建一个频谱分析仪的简易流图程序

三、调节QT GUI Sink模块中的参数观察信号变化情况

四、不同设备的FM接收机实例

五、有用链接和联系方式


一、我需要做什么?

目前市面上有多种软件无线电开发板(或者也可以称为平台,更高大上一些),例如USRP系列、HackRF One、RTL-SDR、LimeSDR、BladeRF(目前最新版本2.0叫xA4和xA9,之前的第一代有x40)、PlutoSDR等等。这些软件无线电开发板价格不等,性能不等。具体可以参见下表。你需要做的就是根据你的需求,根据这里的 硬件参数 ,来选择一款适合你的开发板。


XTRX CS

XTRX Pro

USRP B2x0

bladeRF

bladeRF Micro 2.0

LimeSDR

LimeSDR Mini

RTL-SDR R820T2

RTL-SDR E4000

ADALM-Pluto

New Horizons

Hack RF One

Tuning range

30 MHz - 3.7 GHz

30 MHz - 3.7 GHz

70 MHz - 6 GHz

300 MHz - 3.8 GHz

47 Mhz - 6 Ghz

30 MHz - 3.8 GHz

10 MHz - 3.5 GHz

22 MHz - 2.2 GHz

65 MHz - 2300 MHz, gap@1100 MHz

325 MHz - 3800 MHz

70 MHz - 6 GHz

1 MHz - 6000 MHz

Duplex

Full MIMO

Full MIMO

Full MIMO

Full SISO

Full MIMO

Full MIMO

Full SISO

RX only

Rx only

Full SISO

Full MIMI

SISO Half Duplex

ADC/DAC resolution

12-bit

12-bit

12-bit

12-bit

12-bit

12-bit

12-bit

8-bit

8-bit

12-bit

12-bit

8-bit

Max RF bandwidth

120 MHz

120 MHz

56 MHz

28 MHz

56 Mhz

61.44 MHz

30.72 MHz

3.2 Mhz


20 MHz *limited by USB 2.0 and software to ~4Mhz

56 MHz / CH


Rx Noise Figure dB










<3.5



Channels

2

2

1 (2 for B210)

1

2

2

1

1 Rx only

1 Rx only

1

2

1 Half Duplex

Transmit power

0 to 10dBm

0 to 10dBm

10dBm+

6dBm

8dBm

0 to 10dBm

0 to 10dBm

none

none

7 dBm

9.7

0 - 15 dBm freq dependent

RF chipset

LMS7002M

LMS7002M

AD9364 or AD9361

LMS6002M

AD9361

LMS7002M

LMS7002M

R820T2

E4000

AD9363

AD9361

MAX 2837/Max5864

FPGA

Xilinx Artix7 35T

Xilinx Artix7 50T

Xilinx XC6SLX75

Altera 40KLE/115KLE

Intel Cyclone V

Altera 40KLE

Altera MAX 10

none

None

Xilinx Zynq 7000

Zync-7020

XC2C64A-7VQ100C CPLD

FPGA Gates, DSP slices

33k, 90 DSP

52k, 120 DPS

75k, 132 DSP

40K, 58 DSP opt 115k

49-301k, 66-342DSP

40K, 58 DSP

16k, 45 mult

0, 0

0, 0

28k

85k

64 Macro cell

Industrial temperature range

no

yes

no

Optional

Optional

no

no

no

no

10-40C



Temperature sensors

yes

yes

no

no

yes

yes

no

no

No




Frequency stability

±0.5 w/o <±0.01 ppm w/GPS

±0.1 w/o <±0.01 ppm w/GPS

±2 ppm

±1 ppm

±2.5 ppm

±2.5 ppm

±2.5 ppm

±0.5-25 ppm options

±0.5-25 ppm options

± 25 ppm

± 15 ppm


TCXO





VCTCXO


VCTCXO

Optional

Optional


VCTCXO 40MHZ (W/16bit DAC 0.2PPM max)

opt. 0.5ppm TXCO

GPS synchronization

on board

on board

Addon (+$636)

no

no

no

no

no

no

No

optional expansion

No

Bus/interface

PCIe, opt USB 3 adapter $85

PCIe, opt USB 3 adapter $85

USB 3

USB 3

USB 3

USB 3

USB 3

USB 2

USB 2

USB 2.0 OTG

USB 2.0+ETH

USB 2.0 HS

CPU/Bus Interface





Cypress FX3

CY3014


RTL2832U

RTL2832U

Dual A9,667MHz,


LPC4320

Raw bus bandwidth

10 Gbit/s

10 Gbit/s

5 Gbit/s

5 Gbit/s

5 Gbit/sec

5 Gbit/s

5 Gbit/s

480 Mbit/s

480 Mbit/s

480 Mbits/s

480 MBit/s 1000 MB/s (ETH)

480 MBit/s

Dimensions

30 × 51 mm

30 × 51 mm

97 x 155 mm

87 x 131 mm

63 x 102 mm

100 x 60 mm

69 x 31.4 mm

40 x 60 mm typical

40 x 60 mm typical

117 x 79 mm

75mm*102mm


Extra features

GPIO, GPS, SIM card

GPIO, GPS, SIM card

GPIO

GPIO


GPIO

GPIO

SMA optional

SMA optional


optional LCD, GPS

GPIO, RTC, opt case LCD

Clock Sync

Yes

Yes

Yes

Yes

Yes, In/Out, Ref

Yes, In/Out

Yes, In

No

No


connector

In/Out

Time stamp Sync

Yes

Yes

Yes

Yes

Yes

No

No

No

No




Bias T

No

No

No

Yes

Optional

No

No

Optional

Optional



No

ANT/CLK Connectors





2Rx/2Tx + 3CLK U.FL

6 Rx/4Tx+2CLK U.FL

2 SMA, 1 U.FL Clk

Chip optional SMA

Chip optional SMA

SMA x 2

4 SMA (1 SMA opt GPS)

1 ANT + 2 CLK SMA

Price - typical US$

$260

$490

$686 - $1,119 2 CH clones ~$715

$415

$480-$720

$299

$139

$10 - $40

$10 - $40

$249

$642+$220 expansion

$300 official, down to ~$90 PCBA clones

二、搭建一个频谱分析仪的简易流图程序

在以下的例子中,我们使用了USRP B系列设备(B200/B210/B200mini/B205mini等,支持的频段为70MHz-6GHz,最大采样率为56MHz),因此流图程序中使用了UHD:USRP Source模块来接收无线信号。为了正常使用UHD模块,你需要确保你电脑中正确安装了UHD程序。具体的安装方法可以参见,

https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux

按照下图,搭建流图程序这里用的是GRCv3.8)。

python 示波器 界面 gnuradio 示波器_python 示波器 界面

其中UHD:USRP Source模块中的参数设置如下:

python 示波器 界面 gnuradio 示波器_采样率_02

python 示波器 界面 gnuradio 示波器_Source_03

我们需要把UHD:USRP Source模块中的“RF Options”栏中的“Ch0 AGC”(即自动增益控制)设置为“Disable”,这是因为,我们平时接收信号时,环境中在指定的频段上是无有用信号的,如果我们开启了AGC自动增益控制选项的话,则会导致设备自动调节增益,我们无法辨识是否有信号存在。只有当你明确知道在某个指定频段上,确实有信号时,你才需要通过开始AGC自动增益控制功能来提高接收信号的质量。

三、调节QT GUI Sink模块中的参数观察信号变化情况

设置“QT GUI Sink”模块中的以下参数:

(1)Center Frequency (Hz): 可以通过界面中的“Frequency”滑动按钮来调节接收频率值。

(2)Bandwidth (Hz): samp_rate,采样率,可以通过界面中的“Sample Rate”滑动按钮来调节采样值。

(3)Show RF Freq: Yes,

在信号波形显示界面中,你可以调节信号接收频率和采样率的数值。如果你勾选了“Display RF Frequency”的话,则在“Frequency Display”和“Waterfall Display”选项卡中,会显示实际的信号接收频率。具体对比如下几个图形。

未勾选“Display RF Frequency”时,

python 示波器 界面 gnuradio 示波器_GNU_04

python 示波器 界面 gnuradio 示波器_GNU_05

勾选“Display RF Frequency”时,

python 示波器 界面 gnuradio 示波器_Source_06

python 示波器 界面 gnuradio 示波器_采样率_07

记住一点,从USRP设备传输给电脑的IQ数据已经是基带信号了,也就是中心频率是0Hz,因为这个信号是在通过设备下变频处理之前已经进行了AD转换的基带信号。该示例中使用的GRC是v3.8版本,相对于v3.7版本来说,有一定的更新。其中,“QT GUI Sink”模块的“Freq”与“UHD:USRP Source”模块的“command”相连,这样之后,你可以通过在“Frequency Display”和“Waterfall Display”选项卡的信号显示区域中,通过双击某个频率来调节USRP的实际接收频率,就类似于你在Gqrx软件或者SDRsharp软件中,你通过鼠标来调节设备的实际接收频率一样。并且,在你双击某个频率之前,你的鼠标放在某个频率处,界面上就会显示出来当前的频率值。

你可以通过调节采样率来调整接收信号界面的频谱宽度,也就是红框中的频率范围。例如当前采样率是3.84MHz,那么这个红框中的频率范围就是3.84MHz。这个红框中的频率范围是与采样率相等的。

python 示波器 界面 gnuradio 示波器_Source_08

在使用GNU Radio GRC的时候,经常会碰到下图中的“工作空间”栏这里,连续出现U、O、 aU或者aO的情况。

python 示波器 界面 gnuradio 示波器_Source_09

输 出 O U u a 的意义当运行 gnu radio 程序时,会有时看见 O U u a 字符出现在屏幕上。这一般当数据从 USRP 到 PC 机数据输到硬件的时候PC数据速率跟不上。

输 出 "O" "U" "u" "a" 的意义

当运行 gnu radio 程序时,会有时看见 "O" "U" "u" "a" 字符出现在屏幕上。这一般当数据从 USRP 到 PC 机数据传输停止或什么事情发生时会出现。

(1)"u" = USRP

(2)"a" = audio (声卡)

(3)"O" = overrun (PC 无法同步地接受来自 USRP 或 声卡的数据 - PC not keeping up with received data from usrp or audio card)

(4)"U" = underrun(PC 无法快速的提供数据 - PC not providing data quickly enough)

(5)aUaU == audio underrun (PC 无法快速地给“漏”- 声卡提供数据 - not enough samples ready to send to sound                           card sink)

(6)uUuU == USRP underrun (PC 无法快速地给“漏”- USRP提供数据 - not enough sample ready to send to USRP                          sink)

(7)uOuO == USRP overrun (USRP 采样掉链源于它没有及时准备到位 - USRP samples dropped because they weren't read in time)

四、不同设备的FM接收机实例

USRP FM Receiver

PlutoSDR FM Receiver

FunCubePro+ FM Receiver

RTL-SDR FM Receiver

对于声音相关的处理,可以参见Audio_Sink模块。


jquery 分段上传大文件 jquery批量上传文件

在网上搜索了一下,发现以jquery+ajax方式实现单张图片上传的代码是有的,但实现批量上传图片的程序却没搜索到,于是根据搜索到的代码,写了一个可以批量上传的。先看效果图点击增加按钮,会增加一个选择框,如下图: 选择要上传的图片,效果图如下:上传成功如下图:下面来看代码:前台html主要代码: < button ="SubUpload"