# Change Log

## 3.4.1
- Added fft.freqStep

## v3.4.0

- static method FFT.restoreSymetry 
- Added zero padding
- Added normalize option for $timePoints

## v3.2.0
- **STFT Support:**  
  Added support for Short-Time Fourier Transform (STFT) with configurable segment overlap and windowing:
  - New `hopSizeFactor` option: Controls the overlap between segments (default `1`, no overlap; e.g., `0.25` for 75% overlap).
  - New `hannWindow` option: Applies a Hann window to each segment when set to `true` (default `false`).
- **STFT Matrix Generation:**  
  Introduced `computeSTFTMatrix` getter to generate a "frequency × time" matrix of amplitude values from FFT segments.
- **Improved Signal Restoration:**  
  Updated `restore` to handle overlapping segments correctly using overlap-add normalization when `hannWindow` is enabled.
- **Input Validation:**  
  Added validation to ensure `hopSizeFactor <= 1` to prevent signal gaps in STFT processing.

## v3.0
- **Refactored FFT Class:**  
  The FFT class now encapsulates signal segmentation, spectral cutting, and signal restoration in a single class.
- **New Cutting Functionality:**  
  Introduced a helper class `CutTimePoints` to provide methods for:
  - Removing FFT segments by specifying an array of segment indices.
  - Removing FFT segments over a range of indices.
  - Removing FFT segments corresponding to a specified time interval (in milliseconds).
- **Updated Constructor Signature:**  
  The constructor now accepts an options object containing:
  - `segmentSize` (required): The length of each segment (must be a power of 2).
  - `splited` (optional, default `false`): Indicates whether to store each FFT segment as a half-spectrum.
  - `sampleRate` (required for time-based cutting): The signal’s sampling rate (in Hz) used to compute segment durations.
- **Dynamic Signal Restoration:**  
  The `samples` getter now returns the time-domain signal restored from the current state of FFT segments, reflecting any cuts made.
- **Input Validation Improvements:**  
  Added helper function `isValidNum` for robust number validation.

