测量平均计数率
了解如何使用 Time Tagger 测量无限时长或精确定义时长内的平均计数率。
Time Tagger 提供 Countrate 测量类,可测量平均计数率。平均时间既可设为无限时长(只要测量持续运行),也可精确定义。
以下 Python 代码展示了如何测量无限时长和指定时长内的平均计数率。
连接 Time Tagger
from time import sleep
from Swabian import TimeTagger
# Create a TimeTagger instance to control your hardware
tagger = TimeTagger.createTimeTagger()
channels = [1, 2]
# This enables internal test signals for demo purposes.
# Comment the following line if you want to try this with an external signals
tagger.setTestSignal(channels, True)
无限时长平均
在整个运行期间测量 Countrate:
# We create a Countrate instance, it will acquire data immediately
countrate = TimeTagger.Countrate(tagger=tagger, channels=channels)
# Periodically read and print the average countrate measured since measurement creation.
print('Average countrate values since the measurement creation.')
for i in range(10):
# Wait for some time (software controlled)
sleep(0.5)
# Read countrate averaged over the run duration
rate = countrate.getData()
# Read time since measurement start
duration_of_measurement = countrate.getCaptureDuration()
print(
f'Average countrate: CH{channels[0]}: {rate[0]:10.6f} cps, '
f'CH{channels[1]}:{rate[1]:10.6f} cps '
f'@ averaged over: {duration_of_measurement*1e-12:0.3f} s'
)
指定时长平均
以精确定义的时长为周期测量计数率。平均时长由硬件控制,可达到皮秒级精度:
# We create a Countrate instance, it will acquire data immediately
countrate = TimeTagger.Countrate(tagger=tagger, channels=channels)
# Periodically measure average countrate over well defined period of time.
average_time = 0.5 # seconds
print('EXAMPLE 2. Average over defined time.')
print('Average countrate values measured periodically over the defined time.')
for i in range(10):
# Start the measurement for defined duration. It will stop automatically.
countrate.startFor(average_time*1e12, clear=True)
# Wait until the measurement averaged over the requested duration.
countrate.waitUntilFinished()
# Read countrate averaged over the run duration
rate = countrate.getData()
# Read time since measurement start
duration_of_measurement = countrate.getCaptureDuration()
print(
f'Average countrate: CH{channels[0]}: {rate[0]:10.6f} cps, '
f'CH{channels[1]}:{rate[1]:10.6f} cps '
f'@ averaged over: {duration_of_measurement*1e-12:0.3f} s'
)