# {py:mod}`elasticai.preprocessor.waveform_generator` ```{py:module} elasticai.preprocessor.waveform_generator ``` ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`WaveformSignal ` - ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal :summary: ``` * - {py:obj}`WaveformGenerator ` - ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator :summary: ``` ```` ### API `````{py:class} WaveformSignal :canonical: elasticai.preprocessor.waveform_generator.WaveformSignal ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal ``` ````{py:attribute} time :canonical: elasticai.preprocessor.waveform_generator.WaveformSignal.time :type: numpy.ndarray :value: > None ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal.time ``` ```` ````{py:attribute} signal :canonical: elasticai.preprocessor.waveform_generator.WaveformSignal.signal :type: numpy.ndarray :value: > None ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal.signal ``` ```` ````{py:attribute} fs :canonical: elasticai.preprocessor.waveform_generator.WaveformSignal.fs :type: float :value: > None ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal.fs ``` ```` ````{py:attribute} rms :canonical: elasticai.preprocessor.waveform_generator.WaveformSignal.rms :type: float :value: > None ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformSignal.rms ``` ```` ````` `````{py:class} WaveformGenerator(sampling_rate: float) :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.__init__ ``` ````{py:method} check_charge_balancing(signal: numpy.ndarray) -> float :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.check_charge_balancing ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.check_charge_balancing ``` ```` ````{py:method} get_dictionary_classes() -> list :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.get_dictionary_classes ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.get_dictionary_classes ``` ```` ````{py:method} generate_waveform(time_points: list, time_duration: list, waveform_select: list, polarity_cathodic: list) -> elasticai.preprocessor.waveform_generator.WaveformSignal :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_waveform ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_waveform ``` ```` ````{py:method} generate_waveform_quant_fxp(time_points: list, time_duration: list, waveform_select: list, polarity_cathodic: list, bitwidth: int, bitfrac: int, signed: bool, do_opt: bool = False) -> elasticai.preprocessor.waveform_generator.WaveformSignal :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_waveform_quant_fxp ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_waveform_quant_fxp ``` ```` ````{py:method} generate_biphasic_waveform(anodic_wvf: str, anodic_duration: float, cathodic_wvf: str, cathodic_duration: float, intermediate_duration: float = 0.0, do_cathodic_first: bool = False, do_charge_balancing: bool = False) -> dict :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_biphasic_waveform ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.generate_biphasic_waveform ``` ```` ````{py:method} build_random_timestamps(count: int, min_gap: float = 0.002, max_gap: float = 0.01) -> list :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.build_random_timestamps :staticmethod: ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.build_random_timestamps ``` ```` ````{py:method} create_design(waveform: str, num_params: int, is_signed: bool, target: str, bitwidth: int, id: str, path2save: pathlib.Path, use_bram: bool = False, do_opt: bool = False) -> list[int] :canonical: elasticai.preprocessor.waveform_generator.WaveformGenerator.create_design ```{autodoc2-docstring} elasticai.preprocessor.waveform_generator.WaveformGenerator.create_design ``` ```` `````