blob: 1fd412d5e0eeb3468a337b0cded665fcacc0714a [file] [log] [blame]
Philipp Le84173f62022-04-19 22:27:12 +02001# SPDX-License-Identifier: MPL-2.0
2# Copyright (c) 2022 Philipp Le <philipp@philipple.de>.
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at https://mozilla.org/MPL/2.0/.
6
7from typing import List, Type
8from . import base
9
Philipp Leb0e45c82022-04-19 22:03:44 +020010from .ch02_phasor import Ch02PhasorWindow
Philipp Le692c01e2022-04-19 22:02:52 +020011from .ch02_fourier import Ch02FourierWindow
Philipp Lec2a590b2022-04-26 21:31:47 +020012from .ch03_ergodic import Ch03ErgodicWindow
Philipp Lee9332bd2022-04-26 21:32:12 +020013from .ch03_cross import Ch03CrossCorrelationWindow
Philipp Lefe80ceb2022-04-26 21:32:27 +020014from .ch03_psd import Ch03PsdWindow
Philipp Le83e96b62022-05-01 17:36:30 +020015from .ch04_sampling import Ch04SamplingWindow
Philipp Lef7d1d452022-05-01 21:46:58 +020016from .ch04_window import Ch04WindowWindow
Philipp Le15384272022-05-02 23:40:25 +020017from .ch04_quantization_noise import Ch04QuantizationNoiseWindow
Philipp Le8aaf4232022-05-02 22:45:27 +020018from .ch05_modulation import Ch05ModulationWindow
Philipp Le66248592022-05-09 20:25:18 +020019from .ch05_iq import Ch05IqWindow
Philipp Le86184212022-05-10 20:46:23 +020020from .ch05_qam import Ch05QamWindow
Philipp Le23c0ae42022-05-11 01:24:40 +020021from .ch06_filter import Ch06FilterWindow
Philipp Lef9cf7662022-05-11 23:17:42 +020022from .ch06_mixer import Ch06MixerWindow
Philipp Le20439ab2022-05-18 00:57:58 +020023from .ch06_down_sampling import Ch06DownSamplingWindow
Philipp Le741d3092022-05-18 23:00:53 +020024from .ch06_up_sampling import Ch06UpSamplingWindow
Philipp Led818bd52022-06-02 20:09:17 +020025from .ch07_spreading import Ch07SpreadingWindow
Philipp Leb0e45c82022-04-19 22:03:44 +020026
Philipp Le84173f62022-04-19 22:27:12 +020027
28def get_windows() -> List[Type[base.Window]]:
29 return [
Philipp Leb0e45c82022-04-19 22:03:44 +020030 Ch02PhasorWindow,
Philipp Le692c01e2022-04-19 22:02:52 +020031 Ch02FourierWindow,
Philipp Lec2a590b2022-04-26 21:31:47 +020032 Ch03ErgodicWindow,
Philipp Lee9332bd2022-04-26 21:32:12 +020033 Ch03CrossCorrelationWindow,
Philipp Lefe80ceb2022-04-26 21:32:27 +020034 Ch03PsdWindow,
Philipp Le83e96b62022-05-01 17:36:30 +020035 Ch04SamplingWindow,
Philipp Lef7d1d452022-05-01 21:46:58 +020036 Ch04WindowWindow,
Philipp Le15384272022-05-02 23:40:25 +020037 Ch04QuantizationNoiseWindow,
Philipp Le8aaf4232022-05-02 22:45:27 +020038 Ch05ModulationWindow,
Philipp Le66248592022-05-09 20:25:18 +020039 Ch05IqWindow,
Philipp Le86184212022-05-10 20:46:23 +020040 Ch05QamWindow,
Philipp Le23c0ae42022-05-11 01:24:40 +020041 Ch06FilterWindow,
Philipp Lef9cf7662022-05-11 23:17:42 +020042 Ch06MixerWindow,
Philipp Le20439ab2022-05-18 00:57:58 +020043 Ch06DownSamplingWindow,
Philipp Le741d3092022-05-18 23:00:53 +020044 Ch06UpSamplingWindow,
Philipp Led818bd52022-06-02 20:09:17 +020045 Ch07SpreadingWindow,
Philipp Le84173f62022-04-19 22:27:12 +020046 ]
47
48
49def get_groups() -> List[Type[base.Group]]:
50 return base.get_groups(get_windows())
51
52
53def get_win_of_group(grp: Type[base.Group]) -> List[Type[base.Window]]:
54 return base.get_win_of_group(get_windows(), grp)