返回项目列表

多功能数据采集系统

2026-04-20C++Qt

以TCSPC单光子计数器为核心设备的多功能数据采集系统,主要通过TCSPC的在线符合模式快速获取单光子计数、符合计数,并实时计算光源的任意n阶关联函数。

多功能数据采集系统

系统简介

本项目是一个以TCSPC单光子计数器为核心设备的多功能数据采集系统,主要通过TCSPC的在线符合模式快速获取单光子计数、符合计数,并实时计算光源的任意n阶关联函数。包含2种采集模式和1种预览模式。

系统模式

采集模式1:连续采集模式

该模式用于在固定位置进行多次重复采集。

  • 该模式使用前需要将TCSPC连接
  • 点击“新建策略”添加 TCSPC 符合策略,设定积分时间、窗口宽度、测量次数等参数。
  • 点击“开始采集”后,系统将依据设定参数执行指定次数的采集任务。

数据产出

该模式下可以产出以.csv格式存储的一列原始数据。数据格式详见“数据保存”章节。

采集模式2:成像模式

在该模式下,TCSPC与位移台联动,进行平面范围的扫描成像。

需同时连接 TCSPC 设备与位移台。

该模式下“测量次数”参数将会被忽略,测量次数取决于“成像设置”中图像的长和宽之乘积。
位移台会按照蛇形(S型顺序)扫描顺序完成M×N点阵的扫描,每移动到一个新的扫描点,就会启动TCSPC进行一次采集。数据保存为一列原始数据。

数据产出

该模式除了保存原始数据,还可保存三类图像数据(若要保存图像数据,需在用户界面手动勾选):

  1. 通道计数成像(光强成像)
  2. 符合计数成像
  3. 关联函数成像

注:符合计数成像关联函数成像的数量取决于任务中配置的“符合策略”数量,每个策略对应一组图像。

预览模式

一种调试模式,如果已有成像模式下生成的原始线性数据,可在此模式下进行回看成像过程。

操作方法:

  • 可在该模式下点击“导入数据”并选择数据文件
  • 必须配置与预先采集图像时一致的成像参数(特别是符合策略)
  • 系统将在预览界面中重现当时的成像过程,在主页面实时显示各点原始数据

数据保存

所有采集数据均以.csv格式保存在/data/文件夹内。

线性原始数据

无论处于何种采集模式,只要勾选“保存线性采集数据”,系统均会将数据保存至 /data/ 文件夹中。

  • 数据结构 :类似二维数组,行数等于TCSPC的总采集次数。
  • 单行数据格式(以 MT16 设备为例):
    假设配置了 2 个符合策略,则每行包含 $16+2+2=20$ 个数据点:CH1, CH2, ..., CH16, Co1, Co2, gn1, gn2
数据段说明
CH1 ~ CH16各通道光子计数(若使用ST08等少通道设备,仅前8个有效,其余可忽略)
Co1, Co2对应策略 1 和策略 2 的符合计数
gn1, gn2对应策略的关联函数值($n$ 代表关联阶数)

成像数据

仅在 成像模式 下生成,包含光强、符合、关联三类成像数据。

生成原理:从线性原始数据中提取特定维度信息,根据位移台轨迹重组为二维矩阵。

光强成像示例

假设图像分辨率为 $3 \times 2$(长 $\times$ 宽),选用通道 CH1 作为光强通道。

原始数据序列(结构参考上节):

5, 0, 0, ..., Co1, gn1  (第1点)
2, 0, 0, ..., Co1, gn1  (第2点)
6, 0, 0, ..., Co1, gn1  (第3点)
9, 0, 0, ..., Co1, gn1  (第4点)
2, 0, 0, ..., Co1, gn1  (第5点)
1, 0, 0, ..., Co1, gn1  (第6点)

重组逻辑(蛇形排列):

  • 第一行(正序):取前 3 个点 (5, 2, 6)
  • 第二行(倒序):取后 3 个点并反转 (1, 2, 9) $\rightarrow$ 原始顺序为 9, 2, 1

最终成像矩阵:

5, 2, 6
1, 2, 9

其他类型图像数据生成过程同理

硬件信息

TCPSC

硬件规格

  • 支持型号:上海星秒光电科技有限公司生产的MT16ST08
  • 控制方式:调用厂家提供的dll库
  • 文档索引
    • 文档详见:/设备支持文档/TCSPC/
    • 代码接口详见:/hardware/tcspc.cpp

功能描述

TCSPC即时间相关单光子计数器,是本系统的核心设备,本系统只使用TCSPC的在线符合模式。

在线符合模式:TCSPC以某一通道为中心创建一个符合时间窗口,当其他通道在这个窗口内均有光子计数时,则产生一次有效符合,最后可得到在一定采集时间内的符合计数总和。

通过测量一定时间内各个通道的光子符合计数、通道计数,可以计算得到光源的高阶关联函数。

添加其他型号支持的方式

若需支持其他型号设备,请在 hardware/tcspc.cpp 文件中的 void Tcspc::TCSPC_Init() 函数内添加相应的初始化代码。

️ 重要提示

  1. DLL兼容性:添加新型号时,请务必与设备提供商核对现有的星秒第三方库(DLL)是否通用。若不通用,请联系星秒公司获取适配的最新 DLL 库。
  2. 当前DLL版本:截止本项目发布时,使用的DLL版本为 V3.6.2.3

基础型号添加

将下列代码的else if 代码块完善后,粘贴到原函数对应位置:

        //获取设备类型,返回至指针
        if(GetDevType(DEV_ID_0,&devtype)==FTMT_ERROR_NONE){
            //...前面是已经支持的型号的代码
            else if(devtype==新型号代码){
                consoleText("TCSPC:设备型号为**新型号**,支持至多XX通道");
                max_channels=XX;
            }
            //...
        }

扩展通道数量(大于16通道时)

目前系统默认最大支持 16 通道。如果添加的新设备可用通道数量 大于 16,除上述步骤外,还需按照以下方式进一步修改代码:

  1. 修改系统最大支持的通道数量
    • app/strategy.h中的宏定义#define MAXNUM_CHANNELS 16修改为目标值
  2. 修改策略选择窗口的代码
    • 修改subWindows/strategywidget.ui界面文件,为窗口添加一定数量的通道选择组件(即QCheckBox类型的通道选择框),可复制已有的选择框,并重命名为ch_17、ch_18...ch_xx,然后进行一定的界面排版;
    • 修改subWindows/strategywidget.cpp中的界面构造函数StrategyWidget::StrategyWidget(int channels,QWidget *parent),并修改以下部分的代码,使之满足目标通道数:
    checkBox_channels={
            ui->ch_1,ui->ch_2,ui->ch_3,ui->ch_4,
            ui->ch_5,ui->ch_6,ui->ch_7,ui->ch_8,
            ui->ch_9,ui->ch_10,ui->ch_11,ui->ch_12,
            ui->ch_13,ui->ch_14,ui->ch_15,ui->ch_16
        };

DMD

硬件规格

  • 支持型号:上海瑞立柯信息技术有限公司(UPOLabs)生产的HDSLM136D70
  • 控制方式:调用厂家提供的dll库。
  • 文档索引
    • 文档详见:/设备支持文档/DMD/
    • 代码接口详见:/hardware/dmd.cpp DMD即为数字微镜阵列,是一种空间光调制器,目前支持的型号是

无论是哪一种采集模式,都支持在TCSPC进行一次采集任务之前,调用DMD对空间光进行调制。
需要使用DMD进行空间光调制时,请打开“启用DMD”

该功能目前并未经过测试,不保证程序可用性,仅添加了实现逻辑。

使用DMD的准备工作

重要提示
本系统的代码中只支持DMD使用直播模式播放1bit位深、1024*768尺寸的bmp类型图片。

在应用路径下新建/DMDPicture文件夹,文件夹中包含名为0,1,2,...,100的文件夹,共101个文件夹。

  1. 文件夹/DMDPicture/0下放置反射率为0,即全黑的图片,命名为black.bmp
  2. 文件夹/DMDPicture/100下放置反射率为100,即全白的图片,命名为white.bmp
  3. 其他文件夹下需要用程序或脚本生成一系列不同反射率(即白色像素占比)的bmp图片,每个文件夹下需要放置BMP_NUMBER个,程序中该数值默认为10。
    • 可以用本项目中/DMD图片生成/generate_binary_bmps.m提供的MATLAB脚本批量生成图片。

例如,/DMDPicture/66文件夹下需要放置10个反射率为66的图片,这10张图片可以用算法生成随机的10张图片,每张图片中有66%的像素点为白色。

DMD模式:全白/全黑

持续播放/DMDPicture/0下的黑色图片或/DMDPicture/100下的白色图片;

DMD模式:随机

随机播放/DMDPicture下的任意反射率的图片;

DMD模式:指定播放某类图片

该模式需要提前点击“播放预设设置”,为二维像素阵列中的某个区域确定为播放多少反射率的图片。

例如:

p1_x:1,     p1_y:10,    p2_x:50,    p2_y:50,    反射率50;
p1_x:100,   p1_y:100,   p2_x:150,   p2_y:150,   反射率60;
...

就是在(0,10)与(50,50)对角线区域内播放反射率为50的图片,在(100,100)与(150,150)对角线区域内反射率60的图片。

如果像素点并未被指定为任一预设像素区间,默认播放反射率100的图片。

位移台

硬件规格

  • 支持型号:西格玛光机株式会社(SIGMA KOKI)生产的 GSC-02
  • 控制方式:通过串口模块发送指令进行控制。
  • 文档索引
    • 控制指令详见:/设备支持文档/位移台/GCS-02说明书.pdf
    • 代码接口详见:/hardware/motorstage.cpp

功能描述

位移台搭载成像目标物体。当处于成像模式时,位移台将会带动目标物体完成点扫。

项目地址

因涉及到未发表的学术论文,项目仓库闭源。