Coverage for src / tracekit / filtering / __init__.py: 100%

6 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-11 23:04 +0000

1"""Signal filtering module for TraceKit. 

2 

3Provides digital filter design, application, and introspection capabilities 

4including IIR and FIR filters, various filter types (Butterworth, Chebyshev, 

5Bessel, Elliptic), and convenience filters (moving average, median). 

6 

7 

8Example: 

9 >>> from tracekit.filtering import LowPassFilter, design_filter 

10 >>> lpf = LowPassFilter(cutoff=1e6, sample_rate=10e6, order=4) 

11 >>> filtered_trace = lpf.apply(trace) 

12 >>> w, h = lpf.get_frequency_response() 

13""" 

14 

15# Import filters module as namespace for DSL compatibility 

16from tracekit.filtering import filters 

17from tracekit.filtering.base import ( 

18 Filter, 

19 FIRFilter, 

20 IIRFilter, 

21) 

22from tracekit.filtering.convenience import ( 

23 band_pass, 

24 band_stop, 

25 high_pass, 

26 low_pass, 

27 matched_filter, 

28 median_filter, 

29 moving_average, 

30 notch_filter, 

31 savgol_filter, 

32) 

33from tracekit.filtering.design import ( 

34 BandPassFilter, 

35 BandStopFilter, 

36 BesselFilter, 

37 ButterworthFilter, 

38 ChebyshevType1Filter, 

39 ChebyshevType2Filter, 

40 EllipticFilter, 

41 HighPassFilter, 

42 LowPassFilter, 

43 design_filter, 

44 design_filter_spec, 

45) 

46from tracekit.filtering.introspection import ( 

47 FilterIntrospection, 

48 plot_bode, 

49 plot_impulse, 

50 plot_poles_zeros, 

51 plot_step, 

52) 

53 

54__all__ = [ 

55 "BandPassFilter", 

56 "BandStopFilter", 

57 "BesselFilter", 

58 "ButterworthFilter", 

59 "ChebyshevType1Filter", 

60 "ChebyshevType2Filter", 

61 "EllipticFilter", 

62 "FIRFilter", 

63 # Base classes 

64 "Filter", 

65 # Introspection 

66 "FilterIntrospection", 

67 "HighPassFilter", 

68 "IIRFilter", 

69 # Filter types 

70 "LowPassFilter", 

71 "band_pass", 

72 "band_stop", 

73 # Design functions 

74 "design_filter", 

75 "design_filter_spec", 

76 "filters", 

77 "high_pass", 

78 "low_pass", 

79 "matched_filter", 

80 "median_filter", 

81 # Convenience functions 

82 "moving_average", 

83 "notch_filter", 

84 "plot_bode", 

85 "plot_impulse", 

86 "plot_poles_zeros", 

87 "plot_step", 

88 "savgol_filter", 

89]