QuantizeParams.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // // ******************************************************************
  2. // // /\ /| @File QuantizeParams.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-5-6
  6. // // / \\ @Modified 2024-5-13
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include <memory>
  11. //#include <string>
  12. #include <windows.h>
  13. #include "EdgePulse.h"
  14. #include "BaseEnums/QuantizedEnums.h"
  15. namespace Protocol
  16. {
  17. class QuantizeParams
  18. {
  19. public:
  20. //电平数量 目前第一步支持2、3电平2种
  21. QuantizedLevelOption LevelOption;
  22. // 电平阈值数组,用于存储多电平量化的阈值。
  23. // 数组的大小取决于所需的电平数量,例如,如果需要4个电平,则需要3个阈值。
  24. //单位 V
  25. std::vector<double> LevelThresholdsByV;
  26. // 量化位数
  27. int BitDepth;
  28. // 采样率 (*待定)
  29. double SamplingRate;
  30. // 过采样率 (*待定)
  31. double OversamplingRatio;
  32. // 信号幅度
  33. double SignalAmplitude;
  34. // 信号频率 (*待定)
  35. double SignalFrequency;
  36. // 信噪比 (*待定)
  37. double SignalToNoiseRatio;
  38. // 错误检测与校正 (*待定)
  39. bool ErrorDetectionAndCorrection;
  40. // 原始数据对象
  41. std::unique_ptr<byte> OriginalData;
  42. QuantizeParams();
  43. //C++ 11 必须保留拷贝构造函数 ljw 24.5
  44. QuantizeParams(const QuantizeParams& quantizeParams);
  45. ~QuantizeParams();
  46. };
  47. }