@@ -16,7 +16,7 @@ _InexactT = TypeVar("_InexactT", bound=npc.inexact)
1616_InexactT_co = TypeVar ("_InexactT_co" , bound = npc .inexact , default = Any , covariant = True )
1717
1818_PadType : TypeAlias = Literal ["zeros" , "edge" , "even" , "odd" ]
19- _FFTModeType : TypeAlias = Literal ["centered " , "onesided " , "onesided2X " , "twosided " ]
19+ _FFTMode : TypeAlias = Literal ["twosided " , "centered " , "onesided " , "onesided2X " ]
2020_ScaleTo : TypeAlias = Literal ["magnitude" , "psd" ]
2121_Scaling : TypeAlias = Literal [_ScaleTo , "unitary" ]
2222_Detr : TypeAlias = (
@@ -33,7 +33,7 @@ class ShortTimeFFT(Generic[_InexactT_co]):
3333 _hop : Final [int ]
3434
3535 _fs : float
36- _fft_mode : _FFTModeType = "onesided"
36+ _fft_mode : _FFTMode = "onesided"
3737 _mfft : int
3838 _scaling : _Scaling | None = None
3939 _phase_shift : int | None
@@ -42,14 +42,19 @@ class ShortTimeFFT(Generic[_InexactT_co]):
4242 _fac_psd : float | None = None
4343 _lower_border_end : tuple [int , int ] | None = None
4444
45+ _cache_post_padding : tuple [int , tuple [int , int ]] = ...
46+ _cache_upper_border_begin : tuple [int , tuple [int , int ]] = ...
47+ _cache_t : tuple [tuple [int , int | None , int | None , int , float ], onp .Array1D [np .float64 ]] = ...
48+ _cache_f : tuple [tuple [_FFTMode , int , float ], onp .Array1D [np .float64 ]] = ...
49+
4550 @classmethod
4651 def from_dual (
4752 cls ,
4853 dual_win : onp .ArrayND [_InexactT_co ],
4954 hop : int ,
5055 fs : float ,
5156 * ,
52- fft_mode : _FFTModeType = "onesided" ,
57+ fft_mode : _FFTMode = "onesided" ,
5358 mfft : int | None = None ,
5459 scale_to : _ScaleTo | None = None ,
5560 phase_shift : int | None = 0 ,
@@ -63,7 +68,7 @@ class ShortTimeFFT(Generic[_InexactT_co]):
6368 noverlap : int ,
6469 * ,
6570 symmetric_win : bool = False ,
66- fft_mode : _FFTModeType = "onesided" ,
71+ fft_mode : _FFTMode = "onesided" ,
6772 mfft : int | None = None ,
6873 scale_to : _ScaleTo | None = None ,
6974 phase_shift : int | None = 0 ,
@@ -75,7 +80,7 @@ class ShortTimeFFT(Generic[_InexactT_co]):
7580 hop : int ,
7681 fs : float ,
7782 * ,
78- fft_mode : _FFTModeType = "onesided" ,
83+ fft_mode : _FFTMode = "onesided" ,
7984 mfft : int | None = None ,
8085 scale_to : _Scaling | None = None ,
8186 phase_shift : int | None = 0 ,
@@ -131,9 +136,9 @@ class ShortTimeFFT(Generic[_InexactT_co]):
131136
132137 #
133138 @property
134- def fft_mode (self , / ) -> _FFTModeType : ...
139+ def fft_mode (self , / ) -> _FFTMode : ...
135140 @fft_mode .setter
136- def fft_mode (self , / , t : _FFTModeType ) -> None : ...
141+ def fft_mode (self , / , t : _FFTMode ) -> None : ...
137142
138143 #
139144 @property
@@ -147,6 +152,11 @@ class ShortTimeFFT(Generic[_InexactT_co]):
147152 @phase_shift .setter
148153 def phase_shift (self , / , v : int | None ) -> None : ...
149154
155+ #
156+ @property
157+ def _pre_padding (self , / ) -> tuple [int , int ]: ...
158+ def _post_padding (self , / , n : int ) -> tuple [int , int ]: ...
159+
150160 #
151161 def __init__ (
152162 self ,
@@ -155,7 +165,7 @@ class ShortTimeFFT(Generic[_InexactT_co]):
155165 hop : int ,
156166 fs : float ,
157167 * ,
158- fft_mode : _FFTModeType = "onesided" ,
168+ fft_mode : _FFTMode = "onesided" ,
159169 mfft : int | None = None ,
160170 dual_win : onp .ArrayND [_InexactT_co ] | None = None ,
161171 scale_to : _ScaleTo | None = None ,
0 commit comments