cutcutcodec.core.filter.audio.resample.FilterAudioAntiAliasing

class cutcutcodec.core.filter.audio.resample.FilterAudioAntiAliasing(in_streams: Iterable[StreamAudio], cutoff: Real)[source]

Anti-aliasing filter for audio subsampling.

This filter is a class 1 finite impulse response linear phase low-pass filter.

Attributes

cutofffloat

The cutoff frequency in Hz (readonly).

delayFraction

The delay introduced by the filter in seconds (readonly).

Examples

>>> from cutcutcodec.core.filter.audio.resample import FilterAudioAntiAliasing
>>> from cutcutcodec.core.generation.audio.equation import GeneratorAudioEquation
>>> (audio_a4,) = GeneratorAudioEquation("sin(2*pi*440*t)").out_streams
>>> (audio_a5,) = GeneratorAudioEquation("sin(2*pi*880*t)").out_streams
>>> out_a4, out_a5 = FilterAudioAntiAliasing([audio_a4, audio_a5], 622).out_streams
>>> (out_a4.snapshot(10, 48000, 768000)**2).mean()  # signal power (no attenuation)
tensor(0.5000)
>>> (out_a5.snapshot(10, 48000, 768000)**2).mean()  # signal power (attenuation)
tensor(3.9965e-08)
>>>

Initialise and create the class.

Parameters

in_streamstyping.Iterable[Stream]

Transmitted to cutcutcodec.core.filter.audio.fir.FilterAudioFIR.

cutofffloat

The cut-off frequency in Hz. For the Shannon criteria, it is the half sample rate. The margin, the band with and the attenuation have been automatically chosen for the earing sensibility in the case of an audio application.

property cutoff: Fraction

Return the cutoff frequency in Hz.

property delay: Fraction

Return the delay introduced by the filter in seconds.

resample_fir(rate: int) Tensor[source]

Recompute the antialiasing fir from scratch.