48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import sys
|
|
sys.path.insert(0, '.')
|
|
|
|
from core.simulator import TimeSeriesGenerator, SampleSpaceGenerator
|
|
from core.distributions import UniformDistribution
|
|
|
|
# 创建样本空间生成器
|
|
sample_gen = SampleSpaceGenerator()
|
|
|
|
# 创建能量分布
|
|
det1_dist = UniformDistribution(100, 2000)
|
|
det2_dist = UniformDistribution(100, 2000)
|
|
det3_dist = UniformDistribution(100, 2000)
|
|
|
|
# 生成样本空间
|
|
sample_gen.generate_samples('detector1', det1_dist, 100000)
|
|
sample_gen.generate_samples('detector2', det2_dist, 100000)
|
|
sample_gen.generate_samples('detector3', det3_dist, 100000)
|
|
|
|
# 创建时间序列生成器
|
|
sync_pulses = [
|
|
{'count': 475, 'period': 16000},
|
|
{'count': 20, 'period': 100000},
|
|
{'count': 1, 'period': 400000},
|
|
{'count': 0, 'period': 0}
|
|
]
|
|
|
|
ts_gen = TimeSeriesGenerator('CO', sync_pulses, sample_gen.sample_spaces, sample_gen.samplers, energy_K=2.0, energy_B=0.0)
|
|
time_series = ts_gen.generate_time_series()
|
|
|
|
print(f'各探测器信号数: det1={len(time_series["detector1"])}, det2={len(time_series["detector2"])}, det3={len(time_series["detector3"])}')
|
|
|
|
# 编码时间序列
|
|
encoded_signals = ts_gen.encode_time_series(time_series)
|
|
print(f'编码后信号数: {len(encoded_signals)}')
|
|
print(f'同步脉冲总数: {sum(p["count"] for p in sync_pulses)}')
|
|
|
|
# 检查有多少个事件结束标志
|
|
from core.encoder import BitFieldEncoder
|
|
encoder = BitFieldEncoder()
|
|
event_end_count = 0
|
|
for sig in encoded_signals:
|
|
decoded = encoder.decode(sig)
|
|
if decoded['event_end']:
|
|
event_end_count += 1
|
|
|
|
print(f'事件结束标志数量: {event_end_count}')
|