一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信号采集存储方法和装置、电子设备及可读存储介质与流程

2022-11-16 18:25:14 来源:中国专利 TAG:


1.本发明涉及无线电信号采集存储,尤其涉及一种应用于软件无线电接收机的信号采集存储方法和装置、电子设备及可读存储介质。


背景技术:

2.无线电信号采集存储需要将不同频率、不同带宽的无线电信号,进行变频、滤波等操作,并将其以符合奈奎斯特采样定理的采样速率连续不间断的采集下来并完成实时文件存储。
3.现有的无线电信号采集存储方案主要包括专用采集存储装置和基于软件无线电接收机的通用采集存储解决方案。
4.专用采集存储装置在采集存储连续性上较为稳定,但通常装置组成复杂、成本较高、参数设置灵活性不足,并且软硬件高度耦合,导致升级维护较困难。
5.软件无线电接收机是一类具有开放性、标准化、模块化的通用硬件平台,具有射频频率调谐、模拟滤波放大、a/d采样、数字变频、数字滤波等通用化功能,并具备完备的驱动程序和丰富的应用程序接口函数。因此这种平台是可用软件控制和再定义的平台,选用不同软件模块就可以实现不同的功能,而且软件可以升级更新。这就使得基于软件无线电接收机的通用采集存储解决方案具有较高的无线电信号接收灵活性、通用性高、可升级、易维护、便携性好、成本较低。
6.然而在实现本发明的过程中,发明人发现:由于目前基于软件无线电接收机的通用采集存储方案采用的是先采集后存储的串行工作模式,采集一段数据后进行存储然后再采集,虽然可较好工作在低采样速率场景,但当采样速率较高时,在进行数据存储时由于暂停了数据采集,会发生漏采数据导致的数据丢失问题,采集存储性能不够稳定。


技术实现要素:

7.本发明实施例提供了一种信号采集存储方法和装置、电子设备及可读存储介质,旨在克服软件无线电接收机现有技术的不足,提高高采样速率下无线电信号采集存储的稳定性。
8.依据本发明的第一方面,提供了一种信号采集存储方法,所述方法应用于软件无线电接收机,包括:
9.主线程在发起采集存储任务时进行初始化,所述初始化的操作包括:创建用于缓存数据的链表队列,新建并打开数据文件,设置软件无线电接收机的工作参数;
10.管理信号采集线程,包括控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行采集,并将采集的信号数据写入所述链表队列的尾部;
11.管理数据存储线程,包括控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入所述数据文件;
12.结束采集存储任务时关闭所述数据文件。
13.作为上述方案的改进,所述管理信号采集线程的步骤具体包括:
14.判断是否已创建信号采集线程,若否,则创建信号采集线程;若是,则恢复信号采集线程;
15.控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行信号采集,产生采集的信号数据;
16.控制信号采集线程将采集的信号数据写入所述链表队列的尾部;
17.判断是否停止信号采集,若是,则暂停信号采集线程;若否,则控制信号采集线程重复执行前述的采集操作和写入操作。
18.作为上述方案的改进,所述管理数据存储线程的步骤具体包括:
19.判断是否已创建数据存储线程,若否,则创建数据存储线程;若是,则恢复数据存储线程;
20.控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,得到其中缓存的信号数据;
21.控制数据存储线程将读取的信号数据写入所述数据文件;
22.判断是否停止数据存储,若是,则暂停数据存储线程;若否,则控制数据存储线程重复执行前述的读取操作和写入操作。
23.作为上述方案的改进,创建的所述链表队列为内存空间固定的环形缓存区。
24.依据本发明的第二方面,提供了一种信号采集存储装置,所述装置应用于软件无线电接收机,包括:
25.初始化单元,用于主线程在发起采集存储任务时进行初始化,所述初始化的操作包括:创建用于缓存数据的链表队列,新建并打开数据文件,设置软件无线电接收机的工作参数;
26.信号采集线程管理单元,用于管理信号采集线程,包括控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行采集,并将采集的信号数据写入所述链表队列的尾部;
27.数据存储线程管理单元,用于管理数据存储线程,包括控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入所述数据文件;
28.数据文件关闭单元,用于结束采集存储任务时关闭所述数据文件。
29.作为上述方案的改进,所述信号采集线程管理单元具体用于:
30.判断是否已创建信号采集线程,若否,则创建信号采集线程;若是,则恢复信号采集线程;
31.控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行信号采集,产生采集的信号数据;
32.控制信号采集线程将采集的信号数据写入所述链表队列的尾部;
33.判断是否停止信号采集,若是,则暂停信号采集线程;若否,则控制信号采集线程重复执行前述的采集操作和写入操作。
34.作为上述方案的改进,所述数据存储线程管理单元具体用于:
35.判断是否已创建数据存储线程,若否,则创建数据存储线程;若是,则恢复数据存储线程;
36.控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,得到其中缓存的信号数据;
37.控制数据存储线程将读取的信号数据写入所述数据文件;
38.判断是否停止数据存储,若是,则暂停数据存储线程;若否,则控制数据存储线程重复执行前述的读取操作和写入操作。
39.作为上述方案的改进,所述初始化单元包括:
40.链表队列创建模块,用于创建用于缓存数据的链表队列,其中,创建的所述链表队列为内存空间固定的环形缓存区;
41.数据文件创建模块,用于新建并打开数据文件;
42.工作参数设置模块,用于对软件无线电接收机的工作参数进行设置。
43.依据本发明的第三方面,提供了一种电子设备,包括应用程序接口模块、存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述的软件无线电接收机的信号采集存储方法。
44.依据本发明的第四方面,提供了一种可读存储介质,所述可读存储介质存储一个或多个计算机程序,所述一个或多个计算机程序当被处理器执行时,实现前述的软件无线电接收机的信号采集存储方法。
45.从上述描述可知,本发明实施例提供的技术方案可以实现以下有益效果:
46.本发明实施例提供的信号采集存储方法和装置、电子设备及可读存储介质,以多线程并行方式进行无线电信号的采集和存储,信号采集线程和数据存储线程均是由主线程顶层控制,在信号采集线程将采集的信号数据写入链表队列的尾部的同时,数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入数据文件。可见,信号采集线程和数据存储线程信号并行处理,两个线程之间通过链表队列进行关联,能够对链表队列同时进行写入操作和读取操作,所以即使在高采样速率下也不会发生漏采数据导致的数据丢失问题,提高了高采样速率下无线电信号采集存储的稳定性。
47.此外,本发明实施例的技术方案,仅需在内存中创建一个链表队列用于缓存采集数据,且无需预先指定存储采集数据的数据文件大小,从而扩宽了无线电信号采集存储使用场景;而且本发明实施例中数据文件一般是存储在固态磁盘阵列或者高速硬盘中,存储速度足够快,当信号采集线程停止信号采集的时候,数据存储线程也基本上已经同步地将链表队列中缓存的信号数据全部写入了数据文件中,数据采集存储的效率很高。
48.优选实施例中,创建的链表队列为内存空间固定的环形缓存区,采集存储数据量不改变内存空间占用,很是适用于大容量的数据采集存储。
附图说明
49.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。在附图中:
50.图1是本发明实施例提供的信号采集存储方法的流程示意图;
51.图2是本发明实施例提供的一种管理信号采集线程的流程示意图;
52.图3是本发明实施例提供的一种管理数据存储线程的流程示意图;
53.图4是本发明实施例提供的信号采集存储装置的结构示意图;
54.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
55.下面将参照附图更详细地描述本发明实施例。提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
56.本发明实施例的软件无线电接收机的信号采集存储方法是通过多线程、数据结构等软件技术,结合调用软件无线电接收机的应用程序接口函数,对软件无线电接收机接收的待采集信号进行采集,产生信号数据,并连续不间断地将信号数据存储至数据文件。
57.本发明实施例提供了一种信号采集存储方法。图1是本发明实施例提供的信号采集存储方法的流程示意图。本发明实施例的方法应用于软件无线电接收机,参见图1所示,包括:
58.步骤s10,主线程在发起采集存储任务时进行初始化,所述初始化的操作包括:创建用于缓存数据的链表队列,新建并打开数据文件,设置软件无线电接收机的工作参数。
59.其中,创建的链表队列是基于链表实现的队列,用于对软件无线电接收机的采集信号进行缓冲。该链表队列采用fifo(first in first out)机制,具备写入函数、读取函数。写入的时候新元素(等待进入队列的元素)总是被插入到链表队列的尾部,而读取的时候总是从链表队列的头部开始读取。每次读取一个元素,释放一个元素,动态创建,动态释放,因而不存在溢出等问题,遍历也方便。
60.在一些优选实施例中,创建的链表队列为内存空间固定的环形缓存区。环形缓存区存储的数据类型可采用16位有符号整数类型。
61.环形缓冲区是一个以循环链表为底层数据结构的循环队列,是fifo类数据结构中的一种,环形缓冲区头尾相接,不需要做边界判断,可以充分利用分配的内存,减少内存分配的使用,从而减少内存碎片的产生。由于环形缓存区不会因采集存储数据量的变动而改变内存空间占用,因此适用于大容量的数据采集存储。
62.其中,新建并打开的数据文件可采用二进制文件类型,以减少存储空间。该数据文件可采用自定义的文件头或文件名,例如文件头或文件名中包括软件无线电接收机的工作参数信息,以便于数据文件的归类和后期查找。
63.需要说明的是,目前数据文件一般是存储在固态磁盘阵列或者高速硬盘中。固态磁盘阵列或者高速硬盘的存储速度相当高,对于市面上的商用软件无线电接收机设备来说,其存储速度已经足够满足目前最高速采集存储需求。
64.其中,设置的软件无线电接收机的工作参数包括但不限于:信号采样速率、采集信号频率和通道接收增益等。常用的软件无线电接收机包括usrp b210、usrp x310等,对其设置参数是通过调用驱动程序的应用程序接口函数实现。
65.最后还需要说明的是,上述的三项初始化操作彼此独立,操作顺序不限定,可以任意交换操作顺序,也可以是其中的一项或两项并行地进行初始化操作。
66.步骤s20,管理信号采集线程,包括控制信号采集线程根据设置的工作参数对软件
无线电接收机的待采集信号进行采集,并将采集的信号数据写入所述链表队列的尾部。
67.图2是本发明实施例提供的一种管理信号采集线程的流程示意图。如图2所示,本发明实施例的管理信号采集线程的步骤具体包括:
68.步骤s21,判断是否已创建信号采集线程,若否,则进行步骤s22,创建信号采集线程;若是,则进行步骤s23,恢复信号采集线程。
69.步骤s24,控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行信号采集,产生采集的信号数据,进入步骤s25;其中,信号采集线程的采集操作是通过调用软件无线电接收机驱动程序的应用程序接口函数实现。
70.步骤s25,控制信号采集线程将采集的信号数据写入链表队列的尾部,然后进入步骤s26。其中,信号采集线程的写入操作是通过调用链表队列的写入函数实现。
71.步骤s26,判断是否停止信号采集,若是,则进行步骤s27,暂停信号采集线程;若否,则返回步骤s24,控制信号采集线程重复执行采集操作和写入操作。
72.由此可知,本发明实施例中的信号采集线程的创建、恢复、暂停以及采集和写入操作均是由主线程顶层控制的。
73.步骤s30,管理数据存储线程,包括控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入所述数据文件。
74.图3是本发明实施例提供的一种管理数据存储线程的流程示意图。如图3所示,本发明实施例的管理数据存储线程的步骤具体包括:
75.步骤s31,判断是否已创建数据存储线程,若否,则进行步骤s32,创建数据存储线程;若是,则进行步骤s33,恢复数据存储线程。
76.步骤s34,控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,得到其中缓存的信号数据,并进入步骤s35;其中,数据存储线程的读取操作是通过调用链表队列的读取函数实现。
77.步骤s35,控制数据存储线程将读取的信号数据写入所述数据文件,然后进入步骤s36。
78.步骤s36,判断是否停止数据存储,若是,则进行步骤s37,暂停数据存储线程;若否,则返回步骤s34,控制数据存储线程重复执行读取操作和写入操作。
79.由此可知,本发明实施例中的数据存储线程的创建、恢复、暂停以及读取操作和写入操作也均是由主线程顶层控制的。
80.步骤s40,结束采集存储任务时关闭所述数据文件。
81.由于本发明实施例中数据文件一般是存储在固态磁盘阵列或者高速硬盘中,存储速度足够快,当信号采集线程停止信号采集的时候,数据存储线程也基本上已经同步地将链表队列中缓存的信号数据全部写入了数据文件中。因此信号采集线程一旦停止信号采集,主线程无需等待就可关闭掉该数据文件,结束本轮的采集存储任务。通过文件形式及时将采集的信号数据保存在磁盘硬件上,保证了数据文件的安全可靠性。
82.由以上各步骤说明可知,本发明实施例的信号采集存储方法,以多线程并行方式进行无线电信号的采集和存储,信号采集线程和数据存储线程均是由主线程顶层控制,在信号采集线程将采集的信号数据写入链表队列的尾部的同时,数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入数据文件。可见,信号采集
线程和数据存储线程信号并行处理,两个线程之间通过链表队列进行关联,能够对链表队列同时进行写入操作和读取操作,所以即使在高采样速率下也不会发生漏采数据导致的数据丢失问题,提高了高采样速率下无线电信号采集存储的稳定性。
83.此外,本发明实施例的技术方案,仅需在内存中创建一个链表队列用于缓存采集数据,且无需预先指定存储采集数据的数据文件大小,从而扩宽了无线电信号采集存储使用场景;而且本发明实施例中数据文件一般是存储在固态磁盘阵列或者高速硬盘中,存储速度足够快,当信号采集线程停止信号采集的时候,数据存储线程也基本上已经同步地将链表队列中缓存的信号数据全部写入了数据文件中,数据采集存储的效率很高。
84.优选实施例中,创建的链表队列为内存空间固定的环形缓存区,采集存储数据量不改变内存空间占用,很是适用于大容量的数据采集存储。
85.与前述的方法同属于一个技术构思,本发明实施例还提供了一种信号采集存储装置。图4是本发明实施例提供的信号采集存储装置的结构示意图,本发明实施例的装置应用于软件无线电接收机,如图4所示,包括:
86.初始化单元410,用于主线程在发起采集存储任务时进行初始化,所述初始化的操作包括:创建用于缓存数据的链表队列,新建并打开数据文件,设置软件无线电接收机的工作参数;
87.信号采集线程管理单元420,用于管理信号采集线程,包括控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行采集,并将采集的信号数据写入所述链表队列的尾部;
88.数据存储线程管理单元430,用于管理数据存储线程,包括控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,并将读取的信号数据写入所述数据文件;
89.数据文件关闭单元440,用于结束采集存储任务时关闭所述数据文件。
90.在一个实施例中,上述信号采集线程管理单元420具体用于:
91.判断是否已创建信号采集线程,若否,则创建信号采集线程;若是,则恢复信号采集线程;
92.控制信号采集线程根据设置的工作参数对软件无线电接收机的待采集信号进行信号采集,产生采集的信号数据;
93.控制信号采集线程将采集的信号数据写入所述链表队列的尾部;
94.判断是否停止信号采集,若是,则暂停信号采集线程;若否,则控制信号采集线程重复执行前述的采集操作和写入操作。
95.在一个实施例中,上述数据存储线程管理单元430具体用于:
96.判断是否已创建数据存储线程,若否,则创建数据存储线程;若是,则恢复数据存储线程;
97.控制数据存储线程从所述链表队列的头部同步地读取缓存的信号数据,得到其中缓存的信号数据;
98.控制数据存储线程将读取的信号数据写入所述数据文件;
99.判断是否停止数据存储,若是,则暂停数据存储线程;若否,则控制数据存储线程重复执行前述的读取操作和写入操作。
100.在一些优选实施例中,仍参见图4,上述初始化单元410包括:
101.链表队列创建模块411,用于创建用于缓存数据的链表队列,其中,创建的所述链表队列为内存空间固定的环形缓存区;
102.数据文件创建模块412,用于新建并打开数据文件;其中,新建的数据文件可采用自定义的文件头或文件名,例如文件头或文件名中包括软件无线电接收机的工作参数信息,以便于数据文件的归类和后期查找;
103.工作参数设置模块413,用于对软件无线电接收机的工作参数进行设置。
104.可以理解的是,上述的链表队列创建模块411、数据文件创建模块412和工作参数设置模块413彼此无关联,进行的三项初始化操作彼此独立,操作顺序不限定,可以任意交换操作顺序,也可以是其中的一项或两项并行地进行初始化操作。
105.本发明实施例的信号采集存储装置中的各个模块或单元的实现过程,可以参见上述方法实施例,在此不再赘述。
106.与前述的信号采集存储方法同属于一个技术构思,本发明实施例还提供了一种电子设备。参见图5,本发明实施例提供的电子设备包括:应用程序接口模块、存储器和处理器,其中,存储器可能是内存,例如高速随机存取存储器(random-access memory,ram),也可能是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器等。存储器中存储有计算机程序,该计算机程序由处理器加载并执行,以实现前述的信号采集存储方法。
107.在硬件层面上,该电子设备还可以选择性地包括:显示面板、通信模块等硬件。应用程序接口模块、存储器、处理器以及显示面板、通信模块等可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
108.最后,本发明实施例还提出了一种可读存储介质,该可读存储介质存储一个或多个计算机程序,该一个或多个计算机程序当被处理器执行时,实现前述的信号采集存储方法。
109.可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
110.本领域内的技术人员应明白,本发明的方案可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或软件和硬件相结合实施例的形式。而且,本发明可采用在一个或多个包含有计算机程序的可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
111.这些计算机程序也可存储在能引导计算机或其他可编程数据处理设备以特定方
式工作的计算机可读存储器中,使得存储在该计算机可读存储器中指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
112.这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
113.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
114.以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献