Concepts
Blocks
A Block is the fundamental processing unit in npDSP.
A block receives a signal and produces a signal.
Pipelines
A Pipeline connects multiple blocks together into a
processing chain.
Blocks can be composed into a Pipeline using the >> operator:
pipeline = dsp.Multiply(2) >> dsp.Add(1)
Signals
npDSP uses NumPy arrays as its signal representation. Blocks operate on signals and can maintain internal state when required.
The definition of Signal/SignalLike is as follows:
Signal: TypeAlias = npt.NDArray[Any]
SignalLike: TypeAlias = npt.ArrayLike
Stateful Blocks
Some blocks maintain state between calls. For example, Delay
stores samples from previous calls.
State can be cleared using reset().