本发明涉及数据处理,具体涉及一种da转换二进制数据处理方法。
背景技术:
1、光纤陀螺仪是一种能够精确地确定运动物体方位的仪器,它是现代航空,航海,航天和国防工业中广泛使用的一种惯性导航仪器,它的发展对一个国家的工业,国防和其它高科技的发展具有十分重要的战略意义。
2、光纤陀螺仪输出的是数字量,在对光纤陀螺仪的数据进行分析时,需要将输出的数字量转换位模拟量进行输出,同时,由于光纤陀螺仪的输出数据data_da [n]为32位二进制码,将该二进制码进行da转换时,需将32位二进制数转换为所需的16位二进制数,传统的转换方法有两种,其一是根据所需输出量程,取中间数据位,高位和低位直接舍弃,因量程和分辨率之间互相制约,可能存在量程或分辨率其一不能满足要求的问题;其二为通过浮点或除法运算再取位,但是这种方法运算量大,对硬件提出更高要求。
技术实现思路
1、针对现有技术存在的上述不足,本发明要解决的技术问题是:如何提供一种在保证量程满足要求的前提下能够尽可能提高分辨率,同时无需浮点运算,降低对硬件要求的da转换二进制数据处理方法及系统。
2、为了解决上述技术问题,本发明采用如下技术方案:
3、一种da转换二进制数据处理方法,包括具有m位的输入数据data_in[m]和具有n位的输出数据data_da [n],且输入数据data_in[m]和输出数据data_da[n]均为有符号数;
4、该方法包括以下步骤:
5、步骤1)将输入数据data_in[m]的符号位进行缓存;
6、步骤2)将输入数据data_in[m]乘以量纲;
7、步骤3)取输入数据data_in[m]的高n位,加上舍弃数据的最高位值,四舍五入后得到输出数据data_da[n];
8、步骤4)判断输出数据data_da [n]的最高位和输出数据data_da [n]的符号位是否相同,相同则执行步骤5),不相同则执行步骤6);
9、步骤5)将输出数据data_da [n]直接输出进行da转换;然后执行步骤7);
10、步骤6)将输出数据data_da [n]限幅到满量程值后输出进行da转换,然后执行步骤7);
11、步骤7)结束。
12、优选的,步骤6)包括以下步骤:
13、步骤6.1)判断输出数据data_da [n]的符号位,当输出数据data_da [n]的符号位为0时执行步骤6.2),当输出数据data_da [n]的符号位为1时执行步骤6.3);
14、步骤6.2)输出数据data_da [n]有溢出,拼接输出数据data_da [n]的符号位和n-1位1的满量程数据,限幅到满量程后输出进行da转换;然后执行步骤7);
15、步骤6.3)输出数据data_da [n]有溢出,拼接输出数据data_da [n]的符号位和n-1位0的满量程数据,限幅到满量程后输出进行da转换;然后执行步骤7)。
16、一种da转换二进制数据处理方法,包括具有m位的输入数据data_in[m]和具有n位的输出数据data_da [n],且输入数据data_in[m]为有符号数,输出数据data_da[n]为无符号数;
17、该方法包括以下步骤:
18、步骤1)将输入数据data_in[m]的符号位进行缓存;
19、步骤2)将输入数据data_in[m]乘以量纲;
20、步骤3)取输入数据data_in[m]的高n位,加上舍弃数据的最高位值,四舍五入后得到输出数据data_da[n];
21、步骤4)判断输出数据data_da [n]的最高位和输入数据data_in[m]的符号位是否相同,相同则执行步骤5),不相同则执行步骤6);
22、步骤5)输出数据data_da [n]加上中值后输出进行da转换;然后执行步骤7);
23、步骤6)将输出数据data_da [n]限幅到满量程值后输出进行da转换,然后执行步骤7);
24、步骤7)结束。
25、优选的,步骤6.1)判断输入数据data_in[m]的符号位,当输入数据data_in[m]的符号位为0时执行步骤6.2),当输入数据data_in[m]的符号位为1时执行步骤6.3);
26、步骤6.2)输出数据data_da [n]有溢出,符号位拼接n-1位1后满量程数据输出进行da转换;然后执行步骤7);
27、步骤6.3)输出数据data_da [n]有溢出,符号位拼接n-1位0后满量程数据输出进行da转换;然后执行步骤7)。
28、优选的,步骤2)中,量纲按以下公式进行计算:量纲=2m-1/(量程*标度)。
29、一种da转换二进制数据处理系统,包括光纤陀螺仪、fpga模块和da转换器,所述光纤陀螺仪输出端与所述fpga模块的输入端通信连接,所述fpga模块的输出端与所述da转换器的输入端连接,所述光纤陀螺仪输出32位的有符号数作为输入数据输出到所述fpga模块,所述fpga模块采用如权利要求1到5任一所述的da转换二进制数据处理方法将32位的输入数据转换为16位的输出数据后输出到da转换器,所述da转换器为16位并行的da转换器,所述da转换器将16位的输出数据转换为模拟量进行输出。
30、与现有技术相比, 本发明采用简洁的取位操作,在保证量程满足要求的情况下,主要有以下优点:
31、1、本发明能尽可能提高分辨率,使截取数据位尽可能的接近真实值。
32、2、本发明通过对输出数据限幅,使量程外输出均保持满量程输出,保护后期电路;
33、3、本发明无需浮点运算,降低硬件要求。
34、4、本发明代码简洁。
1.一种da转换二进制数据处理方法,其特征在于,包括具有m位的输入数据data_in[m]和具有n位的输出数据data_da [n],且输入数据data_in[m]和输出数据data_da [n]均为有符号数;
2.根据权利要求1所述的da转换二进制数据处理方法,其特征在于,步骤6)包括以下步骤:
3.一种da转换二进制数据处理方法,其特征在于,包括具有m位的输入数据data_in[m]和具有n位的输出数据data_da [n],且输入数据data_in[m]为有符号数,输出数据data_da[n]为无符号数;
4.根据权利要求3所述的da转换二进制数据处理方法,其特征在于,步骤6)中包括以下步骤:
5.根据权利要求1到4任一所述的da转换二进制数据处理方法,其特征在于,步骤2)中,量纲按以下公式进行计算:量纲=2m-1/(量程*标度)。
6.一种da转换二进制数据处理系统,其特征在于,包括光纤陀螺仪、fpga模块和da转换器,所述光纤陀螺仪输出端与所述fpga模块的输入端通信连接,所述fpga模块的输出端与所述da转换器的输入端连接,所述光纤陀螺仪输出32位的有符号数作为输入数据输出到所述fpga模块,所述fpga模块采用如权利要求1到5任一所述的da转换二进制数据处理方法将32位的输入数据转换为16位的输出数据后输出到da转换器,所述da转换器为16位并行的da转换器,所述da转换器将16位的输出数据转换为模拟量进行输出。