readout_program/chapters/04-05-acq-data-processing.md

89 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 4.5. 采集数据处理
ACQ通道采集的数据以流的形式按照先后顺序缓存
缓存到设定数据量后或者计时器超时后数据被打包成帧上传,
上位机驱动解帧后以流模式将数据返回给调用接口。
当采集多种数据时,用户需要维护采集数据的顺序,
从而解析返回数据的含义。
建议一个实验仅仅采集一种类型数据以简化数据处理。
### 4.5.1. 采集波形数据
波形数据为模拟信号经ADC量化和符号转换后结果
用8比特二进制补码表示范围对应-128~127
* ASIC平台1个时钟周期对应8个采样点(8个字节)
* FPGA平台1个时钟周期对应16个采样点16字节
* 数据采用大端字节序,数据遵循先采先到顺序
### 4.5.2. 采集IQ数据
解模计算公式如下:
$$
I = \sum_{i=1}^{m}{\sum_{j=1}^n{\frac{S_{i,j} * iw_{i,j} * \cos(\omega_i t+\phi_i)}{scale_i} }}
$$
$$
Q = \sum_{i=1}^{m}{\sum_{j=1}^n{\frac{S_{i,j} * qw_{i,j} * \sin(\omega_i t+\phi_i)}{scale_i} }}
$$
* $m$表示解模次数,$n$表示解模的采样点个数;
* $S_{i,j}$为输入波形的第i次解模第j个采样点8比特有符号数
* $iw_{i,j}$、$qw_{i,j}$为i、q权重的第i次解模第j个采样点8比特有符号数
* $\omega_i$、$\phi_i$分别为第i次解模的频率和相位
* $scale_i$为第i次解模的范围选择可设置为1或者16
>解模频率应设置为输入波形对应频率使得解模结果频率为0
解模结果相位等于解模设置相位设置减去输入波形相位。
若解模相位为0则结果相位等于波形相位取反。
解模求和结果I、Q分别用32比特二进制补码表示解模的结果存储格式如下
* 1个完整的数据包含I,Q8字节
* I先到达Q后到达
* I, Q数据采用大端字节都占用4个字节
### 4.5.3. 采集态数据
#### 态判断计算
态判断利用解模IQ数据通过三组直线方程将 IQ 平面划分为三个区域,判定量子比特状态。
三组直线方程定义在 DAQ_PAR 参数区(见 [§4.4.1](#441-读出参数存储)
每组包含三个系数a, b, c直线方程为 $ax + by = c$
其中 a、b 为 16 位有符号数c 为 32 位有符号数I、Q 为 20 位截位后的解模结果。
对于每条直线,位置判定公式为:
$$
compare[i] = (a_i \times I < c_i \times 2^4 - b_i \times Q),\quad i = 0, 1, 2
$$
得到三条直线的位置判定结果后通过优先级电路确定态信息
|优先级|态值|判定条件|
|:-|:-|:-|
|1|0|compare[0] = 1 compare[1] = 0|
|2|1|compare[1] = 1 compare[2] = 0|
|3|2|compare[2] = 1 compare[0] = 0|
|—|3错误态|其它情况|
```
三态判断要求三条直线交于同一点,否则 IQ 平面被划分为 4 个以上区域,
部分 IQ 点将落入未定义区域产生错误态3态
仅需两态判断时,设置 func_ctrl.TWO_STA_EN = 1仅使用一组直线方程。
```
#### 态数据存储格式
* 1个完整数据包含16个qubit态信息4字节
* 每个量子比特态信息用2个比特表示
* 高位表示高序号即32比特对应 {q15, q14, ..., q0}
### 4.5.4. 采态计数数据
* 1个完整数据包含4个计数器数据16字节
* 4个计数数据顺序为0态计数器1态计数器2态计数器3态计数器
* 计数器采用大端字节序为32比特无符号数