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}')