Livt packages
Livt.Signal
Version 0.1.1
Q1.15 sample streams, filters, windows, rate conversion, FFTs, oscillators, and mixers for Livt.
Published files (80)
src/stream/Q15SampleEncoding.lvt
namespace Livt.Signal.Stream
using Livt.Math.FixedPoint
/**
* Converts between the IQ15SampleStream bit encoding and raw signed Q1.15 integers.
* Conversion preserves the scale of 32768 raw units per mathematical unit.
*/
component Q15SampleEncoding
{
/**
* Sign-extends an exact two's-complement Q1.15 stream payload into Livt int.
*/
public static fn Decode[](sample: logic[16]) int
{
return sample as int
}
/**
* Saturates a raw Q1.15 integer to -32768..32767 and returns its 16-bit encoding.
*/
public static fn EncodeSaturating[](value: int) logic[16]
{
return Q15.ClampValue(value) as logic[16]
}
}