dsp

package
v0.0.0-...-a855d00 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2019 License: Apache-2.0 Imports: 5 Imported by: 13

Documentation

Index

Constants

View Source
const MinusTwoPi = -TwoPi
View Source
const OneOverTwoPi = float32(1 / (2 * math.Pi))
View Source
const TwoPi = float32(math.Pi * 2)

Variables

View Source
var AddComplexComplexVectors func(A, B []complex64)

AddComplexComplexVectors performs addition of each element from A by the same element in B A[i] = A[i] + B[i]

View Source
var AddFloatFloatVectors func(A, B []float32)

AddFloatFloatVectors performs addition of each element from A by the same element in B A[i] = A[i] + B[i]

View Source
var ComplexDotProductResult func(input []complex64, taps []complex64) complex64

ComplexDotProductResult performs the Dot Product between two complex vectors and returns result

View Source
var DivideComplexComplexVectors func(A, B []complex64)

DivideComplexComplexVectors performs division of each element from A by the same element in B A[i] = A[i] / B[i]

View Source
var DivideFloatFloatVectors func(A, B []float32)

DivideFloatFloatVectors performs division of each element from A by the same element in B A[i] = A[i] / B[i]

View Source
var DotProductFloatResult func(input []float32, taps []float32) float32

DotProductFloatResult performs the Dot Product between two float32 vectors and returns result

View Source
var DotProductResult func(input []complex64, taps []float32) complex64

DotProductResult performs the Dot Product between a complex vector and a float32 vector and returns result

View Source
var MultiplyComplexComplexVectors func(A, B []complex64)

MultiplyComplexComplexVectors performs multiplication of each element from A by the same element in B A[i] = A[i] * B[i]

View Source
var MultiplyConjugate func(vecA, vecB []complex64, length int) []complex64

MultiplyConjugate performs the Multply by conjugate for each item from vecA and vecB output[i] = vecA[i] * Conj(vecB[i])

View Source
var MultiplyConjugateInline func(vecA, vecB []complex64, length int)

MultiplyConjugateInline performs the Multply by conjugate for each item from vecA and vecB with the result in vecA vecA[i] = vecA[i] * Conj(vecB[i])

View Source
var MultiplyFloatFloatVectors func(A, B []float32)

MultiplyFloatFloatVectors performs multiplication of each element from A by the same element in B A[i] = A[i] * B[i]

View Source
var RotateComplex func(input []complex64, phase *complex64, phaseIncrement complex64, length int) []complex64

RotateComplex performs the phase rotation of each input items by phase and then increments phase out[i] = input[i] * phase phase = phase * phaseIncrement

View Source
var RotateComplexBuffer func(input, output []complex64, phase *complex64, phaseIncrement complex64, length int) int

RotateComplex performs the phase rotation of each input items by phase and then increments phase out[i] = input[i] * phase phase = phase * phaseIncrement

View Source
var SubtractComplexComplexVectors func(A, B []complex64)

SubtractComplexComplexVectors performs addition of each element from A by the same element in B A[i] = A[i] - B[i]

View Source
var SubtractFloatFloatVectors func(A, B []float32)

SubtractFloatFloatVectors performs addition of each element from A by the same element in B A[i] = A[i] - B[i]

Functions

func Argument

func Argument(c complex64) float32

func BlackmanHarris

func BlackmanHarris(nTaps, atten int) []float64

func ComplexDotProduct

func ComplexDotProduct(result *complex64, input []complex64, taps []complex64)

ComplexDotProduct performs the Dot Product between two complex vectors and store the result at *result

func Divide

func Divide(c complex64, f float32) complex64

func DotProduct

func DotProduct(result *complex64, input []complex64, taps []float32)

DotProduct performs the Dot Product between a complex vector and a float vector and store the result at *result

func DotProductFloat

func DotProductFloat(result *float32, input []float32, taps []float32)

DotProductFloat performs the Dot Product between two float vectors and store the result at *result

func GetSIMDMode

func GetSIMDMode() string

GetSIMDMode returns a string containg the current SIMD mode used.

func HammingWindow

func HammingWindow(nTaps int) []float64

func MakeLowPass

func MakeLowPass(gain, sampleRate, cutFrequency, transitionWidth float64) []float32

func MakeLowPass2

func MakeLowPass2(gain, sampleRate, cutFrequency, transitionWidth, attenuation float64) []float32

func MakeLowPassFixed

func MakeLowPassFixed(gain, sampleRate, cutFrequency float64, length int) []float32

func MakeRRC

func MakeRRC(gain, sampleRate, symbolRate, alpha float64, nTaps int) []float32

func Min

func Min(a, b int) int

func Modulus

func Modulus(c complex64) float32

Types

type AttackDecayAGC

type AttackDecayAGC struct {
	// contains filtered or unexported fields
}

func MakeAttackDecayAGC

func MakeAttackDecayAGC(attackRate, decayRate, reference, gain, maxGain float32) *AttackDecayAGC

func (*AttackDecayAGC) PredictOutputSize

func (adagc *AttackDecayAGC) PredictOutputSize(inputLength int) int

func (*AttackDecayAGC) Work

func (adagc *AttackDecayAGC) Work(input []complex64) []complex64

func (*AttackDecayAGC) WorkBuffer

func (adagc *AttackDecayAGC) WorkBuffer(input, output []complex64) int

type CTFirFilter

type CTFirFilter struct {
	// contains filtered or unexported fields
}

func MakeCTFirFilter

func MakeCTFirFilter(taps []complex64) *CTFirFilter

func MakeDecimationCTFirFilter

func MakeDecimationCTFirFilter(decimation int, taps []complex64) *CTFirFilter

func (*CTFirFilter) Filter

func (f *CTFirFilter) Filter(data []complex64, length int)

func (*CTFirFilter) FilterBuffer

func (f *CTFirFilter) FilterBuffer(input, output []complex64) int

func (*CTFirFilter) FilterDecimate

func (f *CTFirFilter) FilterDecimate(data []complex64, decimate int, length int)

func (*CTFirFilter) FilterDecimateBuffer

func (f *CTFirFilter) FilterDecimateBuffer(input, output []complex64, decimate int) int

func (*CTFirFilter) FilterDecimateOut

func (f *CTFirFilter) FilterDecimateOut(data []complex64, decimate int) []complex64

func (*CTFirFilter) FilterOut

func (f *CTFirFilter) FilterOut(data []complex64) []complex64

func (*CTFirFilter) FilterSingle

func (f *CTFirFilter) FilterSingle(data []complex64) complex64

func (*CTFirFilter) PredictOutputSize

func (f *CTFirFilter) PredictOutputSize(inputLength int) int

func (*CTFirFilter) SetTaps

func (f *CTFirFilter) SetTaps(taps []complex64)

func (*CTFirFilter) Work

func (f *CTFirFilter) Work(data []complex64) []complex64

func (*CTFirFilter) WorkBuffer

func (f *CTFirFilter) WorkBuffer(input, output []complex64) int

type Complex2Float32Worker

type Complex2Float32Worker interface {
	Work(input []complex64) []float32
	WorkBuffer(input []complex64, output []float32) int
	PredictOutputSize(inputLength int) int
}

type Complex2Magnitude

type Complex2Magnitude struct{}

func MakeComplex2Magnitude

func MakeComplex2Magnitude() *Complex2Magnitude

func (*Complex2Magnitude) PredictOutputSize

func (cm *Complex2Magnitude) PredictOutputSize(inputLength int) int

func (*Complex2Magnitude) Work

func (cm *Complex2Magnitude) Work(data []complex64) []float32

func (*Complex2Magnitude) WorkBuffer

func (cm *Complex2Magnitude) WorkBuffer(input []complex64, output []float32) int

type ComplexWorker

type ComplexWorker interface {
	Work(input []complex64) []complex64
	WorkBuffer(input, output []complex64) int
	PredictOutputSize(inputLength int) int
}

type CostasLoop

type CostasLoop interface {
	ComplexWorker
	GetError() float32
	GetAverageError() float32
	GetFrequency() float32
	GetFrequencyHz(float32) float32
	GetFrequencyShift() []float32
}

func MakeCostasLoop2

func MakeCostasLoop2(loopBandwidth float32) CostasLoop

func MakeCostasLoop2WithFrequencyRange

func MakeCostasLoop2WithFrequencyRange(loopBandwidth, minRelativeFrequency, maxRelativeFrequency float32) CostasLoop

func MakeCostasLoop4

func MakeCostasLoop4(loopBandwidth float32) CostasLoop

func MakeCostasLoop4WithFrequencyRange

func MakeCostasLoop4WithFrequencyRange(loopBandwidth, minRelativeFrequency, maxRelativeFrequency float32) CostasLoop

func MakeCostasLoop8

func MakeCostasLoop8(loopBandwidth float32) CostasLoop

func MakeCostasLoop8WithFrequencyRange

func MakeCostasLoop8WithFrequencyRange(loopBandwidth, minRelativeFrequency, maxRelativeFrequency float32) CostasLoop

type CostasLoop2

type CostasLoop2 struct {
	// contains filtered or unexported fields
}

endregion region Second Order Costas Loop

func (*CostasLoop2) AdvanceLoop

func (cl *CostasLoop2) AdvanceLoop(err float32)

func (*CostasLoop2) GetAlpha

func (cl *CostasLoop2) GetAlpha() float32

func (*CostasLoop2) GetAverageError

func (cl *CostasLoop2) GetAverageError() float32

func (*CostasLoop2) GetBeta

func (cl *CostasLoop2) GetBeta() float32

func (*CostasLoop2) GetDampingFactor

func (cl *CostasLoop2) GetDampingFactor() float32

func (*CostasLoop2) GetError

func (cl *CostasLoop2) GetError() float32

func (*CostasLoop2) GetFrequency

func (cl *CostasLoop2) GetFrequency() float32

func (*CostasLoop2) GetFrequencyHz

func (cl *CostasLoop2) GetFrequencyHz(sampleRate float32) float32

func (*CostasLoop2) GetFrequencyShift

func (cl *CostasLoop2) GetFrequencyShift() []float32

func (*CostasLoop2) GetLoopBandwidth

func (cl *CostasLoop2) GetLoopBandwidth() float32

func (*CostasLoop2) GetMaxRelativeFrequency

func (cl *CostasLoop2) GetMaxRelativeFrequency() float32

func (*CostasLoop2) GetMinRelativeFrequency

func (cl *CostasLoop2) GetMinRelativeFrequency() float32

func (*CostasLoop2) GetPhase

func (cl *CostasLoop2) GetPhase() float32

func (*CostasLoop2) PredictOutputSize

func (cl *CostasLoop2) PredictOutputSize(input int) int

func (*CostasLoop2) Reset

func (cl *CostasLoop2) Reset()

func (*CostasLoop2) SetAlpha

func (cl *CostasLoop2) SetAlpha(alpha float32) error

func (*CostasLoop2) SetBeta

func (cl *CostasLoop2) SetBeta(beta float32) error

func (*CostasLoop2) SetDampingFactor

func (cl *CostasLoop2) SetDampingFactor(df float32) error

func (*CostasLoop2) SetFrequency

func (cl *CostasLoop2) SetFrequency(freq float32)

func (*CostasLoop2) SetLoopBandwidth

func (cl *CostasLoop2) SetLoopBandwidth(bw float32) error

func (*CostasLoop2) SetPhase

func (cl *CostasLoop2) SetPhase(phase float32)

func (*CostasLoop2) SetRelativeMaxFrequency

func (cl *CostasLoop2) SetRelativeMaxFrequency(freq float32)

func (*CostasLoop2) SetRelativeMinFrequency

func (cl *CostasLoop2) SetRelativeMinFrequency(freq float32)

func (*CostasLoop2) UpdateGains

func (cl *CostasLoop2) UpdateGains()

func (*CostasLoop2) Work

func (cl *CostasLoop2) Work(input []complex64) []complex64

func (*CostasLoop2) WorkBuffer

func (cl *CostasLoop2) WorkBuffer(input, output []complex64) int

type CostasLoop4

type CostasLoop4 struct {
	// contains filtered or unexported fields
}

endregion region 4th Order Costas Loop

func (*CostasLoop4) AdvanceLoop

func (cl *CostasLoop4) AdvanceLoop(err float32)

func (*CostasLoop4) GetAlpha

func (cl *CostasLoop4) GetAlpha() float32

func (*CostasLoop4) GetAverageError

func (cl *CostasLoop4) GetAverageError() float32

func (*CostasLoop4) GetBeta

func (cl *CostasLoop4) GetBeta() float32

func (*CostasLoop4) GetDampingFactor

func (cl *CostasLoop4) GetDampingFactor() float32

func (*CostasLoop4) GetError

func (cl *CostasLoop4) GetError() float32

func (*CostasLoop4) GetFrequency

func (cl *CostasLoop4) GetFrequency() float32

func (*CostasLoop4) GetFrequencyHz

func (cl *CostasLoop4) GetFrequencyHz(sampleRate float32) float32

func (*CostasLoop4) GetFrequencyShift

func (cl *CostasLoop4) GetFrequencyShift() []float32

func (*CostasLoop4) GetLoopBandwidth

func (cl *CostasLoop4) GetLoopBandwidth() float32

func (*CostasLoop4) GetMaxRelativeFrequency

func (cl *CostasLoop4) GetMaxRelativeFrequency() float32

func (*CostasLoop4) GetMinRelativeFrequency

func (cl *CostasLoop4) GetMinRelativeFrequency() float32

func (*CostasLoop4) GetPhase

func (cl *CostasLoop4) GetPhase() float32

func (*CostasLoop4) PredictOutputSize

func (cl *CostasLoop4) PredictOutputSize(input int) int

func (*CostasLoop4) Reset

func (cl *CostasLoop4) Reset()

func (*CostasLoop4) SetAlpha

func (cl *CostasLoop4) SetAlpha(alpha float32) error

func (*CostasLoop4) SetBeta

func (cl *CostasLoop4) SetBeta(beta float32) error

func (*CostasLoop4) SetDampingFactor

func (cl *CostasLoop4) SetDampingFactor(df float32) error

func (*CostasLoop4) SetFrequency

func (cl *CostasLoop4) SetFrequency(freq float32)

func (*CostasLoop4) SetLoopBandwidth

func (cl *CostasLoop4) SetLoopBandwidth(bw float32) error

func (*CostasLoop4) SetPhase

func (cl *CostasLoop4) SetPhase(phase float32)

func (*CostasLoop4) SetRelativeMaxFrequency

func (cl *CostasLoop4) SetRelativeMaxFrequency(freq float32)

func (*CostasLoop4) SetRelativeMinFrequency

func (cl *CostasLoop4) SetRelativeMinFrequency(freq float32)

func (*CostasLoop4) UpdateGains

func (cl *CostasLoop4) UpdateGains()

func (*CostasLoop4) Work

func (cl *CostasLoop4) Work(input []complex64) []complex64

func (*CostasLoop4) WorkBuffer

func (cl *CostasLoop4) WorkBuffer(input, output []complex64) int

type CostasLoop8

type CostasLoop8 struct {
	// contains filtered or unexported fields
}

endregion region 8th Order Costas Loop

func (*CostasLoop8) AdvanceLoop

func (cl *CostasLoop8) AdvanceLoop(err float32)

func (*CostasLoop8) GetAlpha

func (cl *CostasLoop8) GetAlpha() float32

func (*CostasLoop8) GetAverageError

func (cl *CostasLoop8) GetAverageError() float32

func (*CostasLoop8) GetBeta

func (cl *CostasLoop8) GetBeta() float32

func (*CostasLoop8) GetDampingFactor

func (cl *CostasLoop8) GetDampingFactor() float32

func (*CostasLoop8) GetError

func (cl *CostasLoop8) GetError() float32

func (*CostasLoop8) GetFrequency

func (cl *CostasLoop8) GetFrequency() float32

func (*CostasLoop8) GetFrequencyHz

func (cl *CostasLoop8) GetFrequencyHz(sampleRate float32) float32

func (*CostasLoop8) GetFrequencyShift

func (cl *CostasLoop8) GetFrequencyShift() []float32

func (*CostasLoop8) GetLoopBandwidth

func (cl *CostasLoop8) GetLoopBandwidth() float32

func (*CostasLoop8) GetMaxRelativeFrequency

func (cl *CostasLoop8) GetMaxRelativeFrequency() float32

func (*CostasLoop8) GetMinRelativeFrequency

func (cl *CostasLoop8) GetMinRelativeFrequency() float32

func (*CostasLoop8) GetPhase

func (cl *CostasLoop8) GetPhase() float32

func (*CostasLoop8) PredictOutputSize

func (cl *CostasLoop8) PredictOutputSize(input int) int

func (*CostasLoop8) Reset

func (cl *CostasLoop8) Reset()

func (*CostasLoop8) SetAlpha

func (cl *CostasLoop8) SetAlpha(alpha float32) error

func (*CostasLoop8) SetBeta

func (cl *CostasLoop8) SetBeta(beta float32) error

func (*CostasLoop8) SetDampingFactor

func (cl *CostasLoop8) SetDampingFactor(df float32) error

func (*CostasLoop8) SetFrequency

func (cl *CostasLoop8) SetFrequency(freq float32)

func (*CostasLoop8) SetLoopBandwidth

func (cl *CostasLoop8) SetLoopBandwidth(bw float32) error

func (*CostasLoop8) SetPhase

func (cl *CostasLoop8) SetPhase(phase float32)

func (*CostasLoop8) SetRelativeMaxFrequency

func (cl *CostasLoop8) SetRelativeMaxFrequency(freq float32)

func (*CostasLoop8) SetRelativeMinFrequency

func (cl *CostasLoop8) SetRelativeMinFrequency(freq float32)

func (*CostasLoop8) UpdateGains

func (cl *CostasLoop8) UpdateGains()

func (*CostasLoop8) Work

func (cl *CostasLoop8) Work(input []complex64) []complex64

func (*CostasLoop8) WorkBuffer

func (cl *CostasLoop8) WorkBuffer(input, output []complex64) int

type DCFilter

type DCFilter struct {
	// contains filtered or unexported fields
}

func MakeDCFilter

func MakeDCFilter() *DCFilter

func (*DCFilter) PredictOutputSize

func (dc *DCFilter) PredictOutputSize(inputLength int) int

func (*DCFilter) Work

func (dc *DCFilter) Work(data []complex64) []complex64

func (*DCFilter) WorkBuffer

func (dc *DCFilter) WorkBuffer(input, output []complex64) int

func (*DCFilter) WorkInline

func (dc *DCFilter) WorkInline(data []complex64)

type Decimator

type Decimator struct {
	// contains filtered or unexported fields
}

func MakeDecimator

func MakeDecimator(decimationRatio int) *Decimator

func (*Decimator) PredictOutputSize

func (f *Decimator) PredictOutputSize(inputLength int) int

func (*Decimator) Work

func (f *Decimator) Work(data []complex64) []complex64

func (*Decimator) WorkBuffer

func (f *Decimator) WorkBuffer(input, output []complex64) int

type FMDeemph

type FMDeemph struct {
	// contains filtered or unexported fields
}

func MakeFMDeemph

func MakeFMDeemph(tau, sampleRate float32) *FMDeemph

func (*FMDeemph) Work

func (f *FMDeemph) Work(data []float32) []float32

func (*FMDeemph) WorkBuffer

func (f *FMDeemph) WorkBuffer(input, output []float32) int

type FeedForwardAGC

type FeedForwardAGC struct {
	// contains filtered or unexported fields
}

func MakeFeedForwardAGC

func MakeFeedForwardAGC(numSamples int, reference float32) *FeedForwardAGC

func (*FeedForwardAGC) PredictOutputSize

func (dc *FeedForwardAGC) PredictOutputSize(inputLength int) int

func (*FeedForwardAGC) Work

func (f *FeedForwardAGC) Work(input []complex64) []complex64

func (*FeedForwardAGC) WorkBuffer

func (f *FeedForwardAGC) WorkBuffer(input, output []complex64) int

type FirFilter

type FirFilter struct {
	// contains filtered or unexported fields
}

func MakeDecimationFirFilter

func MakeDecimationFirFilter(decimation int, taps []float32) *FirFilter

func MakeFirFilter

func MakeFirFilter(taps []float32) *FirFilter

func (*FirFilter) Filter

func (f *FirFilter) Filter(data []complex64, length int)

func (*FirFilter) FilterBuffer

func (f *FirFilter) FilterBuffer(input, output []complex64) int

func (*FirFilter) FilterDecimate

func (f *FirFilter) FilterDecimate(data []complex64, decimate int, length int)

func (*FirFilter) FilterDecimateBuffer

func (f *FirFilter) FilterDecimateBuffer(input, output []complex64, decimate int) int

func (*FirFilter) FilterDecimateOut

func (f *FirFilter) FilterDecimateOut(data []complex64, decimate int) []complex64

func (*FirFilter) FilterOut

func (f *FirFilter) FilterOut(data []complex64) []complex64

func (*FirFilter) FilterSingle

func (f *FirFilter) FilterSingle(data []complex64) complex64

func (*FirFilter) PredictOutputSize

func (f *FirFilter) PredictOutputSize(inputLength int) int

func (*FirFilter) SetTaps

func (f *FirFilter) SetTaps(taps []float32)

func (*FirFilter) Work

func (f *FirFilter) Work(data []complex64) []complex64

func (*FirFilter) WorkBuffer

func (f *FirFilter) WorkBuffer(input, output []complex64) int

type Float322ByteWorker

type Float322ByteWorker interface {
	Work(input []float32) []byte
	WorkBuffer(input []float32, output []byte) int
	PredictOutputSize(inputLength int) int
}

type Float32Worker

type Float32Worker interface {
	Work(input []float32) []float32
	WorkBuffer(input, output []float32) int
	PredictOutputSize(inputLength int) int
}

type FloatDecimator

type FloatDecimator struct {
	// contains filtered or unexported fields
}

func MakeFloatDecimator

func MakeFloatDecimator(decimationRatio int) *FloatDecimator

func (*FloatDecimator) PredictOutputSize

func (f *FloatDecimator) PredictOutputSize(inputLength int) int

func (*FloatDecimator) Work

func (f *FloatDecimator) Work(data []float32) []float32

func (*FloatDecimator) WorkBuffer

func (f *FloatDecimator) WorkBuffer(input, output []float32) int

type FloatFirFilter

type FloatFirFilter struct {
	// contains filtered or unexported fields
}

func MakeDecimationFloatFirFilter

func MakeDecimationFloatFirFilter(decimation int, taps []float32) *FloatFirFilter

func MakeFloatFirFilter

func MakeFloatFirFilter(taps []float32) *FloatFirFilter

func (*FloatFirFilter) Filter

func (f *FloatFirFilter) Filter(data []float32, length int)

func (*FloatFirFilter) FilterBuffer

func (f *FloatFirFilter) FilterBuffer(input, output []float32) int

func (*FloatFirFilter) FilterDecimate

func (f *FloatFirFilter) FilterDecimate(data []float32, decimate int, length int)

func (*FloatFirFilter) FilterDecimateBuffer

func (f *FloatFirFilter) FilterDecimateBuffer(input, output []float32, decimate int) int

func (*FloatFirFilter) FilterDecimateOut

func (f *FloatFirFilter) FilterDecimateOut(data []float32, decimate int) []float32

func (*FloatFirFilter) FilterOut

func (f *FloatFirFilter) FilterOut(data []float32) []float32

func (*FloatFirFilter) FilterSingle

func (f *FloatFirFilter) FilterSingle(data []float32) float32

func (*FloatFirFilter) PredictOutputSize

func (f *FloatFirFilter) PredictOutputSize(inputLength int) int

func (*FloatFirFilter) SetTaps

func (f *FloatFirFilter) SetTaps(taps []float32)

func (*FloatFirFilter) Work

func (f *FloatFirFilter) Work(data []float32) []float32

func (*FloatFirFilter) WorkBuffer

func (f *FloatFirFilter) WorkBuffer(input, output []float32) int

type FloatInterpolator

type FloatInterpolator struct {
	// contains filtered or unexported fields
}

func MakeFloatInterpolator

func MakeFloatInterpolator(interpolationRatio int) *FloatInterpolator

func (*FloatInterpolator) PredictOutputSize

func (f *FloatInterpolator) PredictOutputSize(inputLength int) int

func (*FloatInterpolator) Work

func (f *FloatInterpolator) Work(data []float32) []float32

func (*FloatInterpolator) WorkBuffer

func (f *FloatInterpolator) WorkBuffer(input, output []float32) int

type FloatRationalResampler

type FloatRationalResampler struct {
	// contains filtered or unexported fields
}

func MakeFloatRationalResampler

func MakeFloatRationalResampler(interpolationRatio, decimationRatio int) *FloatRationalResampler

func (*FloatRationalResampler) PredictOutputSize

func (f *FloatRationalResampler) PredictOutputSize(inputLength int) int

func (*FloatRationalResampler) Work

func (f *FloatRationalResampler) Work(data []float32) []float32

func (*FloatRationalResampler) WorkBuffer

func (f *FloatRationalResampler) WorkBuffer(input, output []float32) int

type FloatResampler

type FloatResampler struct {
	// contains filtered or unexported fields
}

FloatResampler is a Polyphase Resampler based on GNU Radio Implementation

func MakeFloatResampler

func MakeFloatResampler(filterSize int, rate float32) *FloatResampler

func (*FloatResampler) PredictOutputSize

func (f *FloatResampler) PredictOutputSize(inputLength int) int

func (*FloatResampler) Work

func (f *FloatResampler) Work(data []float32) []float32

func (*FloatResampler) WorkBuffer

func (f *FloatResampler) WorkBuffer(input, output []float32) int

type FrequencyTranslator

type FrequencyTranslator struct {
	// contains filtered or unexported fields
}

func MakeFrequencyTranslator

func MakeFrequencyTranslator(decimation int, centerFrequency, sampleRate float32, taps []float32) *FrequencyTranslator

func (*FrequencyTranslator) GetDecimation

func (ft *FrequencyTranslator) GetDecimation() int

func (*FrequencyTranslator) GetFrequency

func (ft *FrequencyTranslator) GetFrequency() float32

func (*FrequencyTranslator) PredictOutputSize

func (ft *FrequencyTranslator) PredictOutputSize(inputLength int) int

func (*FrequencyTranslator) SetDecimation

func (ft *FrequencyTranslator) SetDecimation(decimation int)

func (*FrequencyTranslator) SetFrequency

func (ft *FrequencyTranslator) SetFrequency(frequency float32)

func (*FrequencyTranslator) Work

func (ft *FrequencyTranslator) Work(data []complex64) []complex64

func (*FrequencyTranslator) WorkBuffer

func (ft *FrequencyTranslator) WorkBuffer(input, output []complex64) int

type IIRFilter

type IIRFilter struct {
	// contains filtered or unexported fields
}

func MakeIIRFilter

func MakeIIRFilter(ataps, btaps []float32) *IIRFilter

func (*IIRFilter) Filter

func (f *IIRFilter) Filter(input float32) float32

func (*IIRFilter) FilterArray

func (f *IIRFilter) FilterArray(input []float32) []float32

func (*IIRFilter) FilterArrayBuffer

func (f *IIRFilter) FilterArrayBuffer(input, output []float32) int

type Interpolator

type Interpolator struct {
	// contains filtered or unexported fields
}

func MakeInterpolator

func MakeInterpolator(interpolationRatio int) *Interpolator

func (*Interpolator) PredictOutputSize

func (f *Interpolator) PredictOutputSize(inputLength int) int

func (*Interpolator) Work

func (f *Interpolator) Work(data []complex64) []complex64

func (*Interpolator) WorkBuffer

func (f *Interpolator) WorkBuffer(input, output []complex64) int

type NCO

type NCO struct {
	// contains filtered or unexported fields
}

NCO is a Numeric Controlled Oscillator Based on GNURadio Implementation

func MakeNCO

func MakeNCO() *NCO

func (*NCO) AdjustFrequency

func (nco *NCO) AdjustFrequency(deltaRate float32)

AdjustFrequency Increments / Decrements the phase increment. In radians / step

func (*NCO) AdjustPhase

func (nco *NCO) AdjustPhase(deltaAngle float32)

AdjustPhase Increments / decrements current phase. In radians

func (*NCO) Complex64SinCos

func (nco *NCO) Complex64SinCos(n int, amplitude float32) []complex64

Float32Sin Compute N elements for a float32 array sine wave

func (*NCO) Float32Cos

func (nco *NCO) Float32Cos(n int, amplitude float32) []float32

Float32Cos Compute N elements for a float32 array cosine wave

func (*NCO) Float32Sin

func (nco *NCO) Float32Sin(n int, amplitude float32) []float32

Float32Sin Compute N elements for a float32 array sine wave

func (*NCO) GetPhase

func (nco *NCO) GetPhase() float32

GetPhase returns the current phase value in radians

func (*NCO) GetPhaseIncrement

func (nco *NCO) GetPhaseIncrement() float32

GetPhaseIncrement returns the phase increment value in radians / step

func (*NCO) SetFrequency

func (nco *NCO) SetFrequency(rate float32)

SetFrequency Sets the Phase Increment in Radians / step

func (*NCO) SetPhase

func (nco *NCO) SetPhase(angle float32)

SetPhase in Radians

func (*NCO) Step

func (nco *NCO) Step()

Step makes a single step in NCO

func (*NCO) StepN

func (nco *NCO) StepN(n int)

StepN makes N steps in NCO

type QuadDemod

type QuadDemod struct {
	// contains filtered or unexported fields
}

func MakeQuadDemod

func MakeQuadDemod(gain float32) *QuadDemod

func (*QuadDemod) PredictOutputSize

func (f *QuadDemod) PredictOutputSize(inputLength int) int

func (*QuadDemod) Work

func (f *QuadDemod) Work(data []complex64) []float32

func (*QuadDemod) WorkBuffer

func (f *QuadDemod) WorkBuffer(input []complex64, output []float32) int

type RationalResampler

type RationalResampler struct {
	// contains filtered or unexported fields
}

func MakeRationalResampler

func MakeRationalResampler(interpolationRatio, decimationRatio int) *RationalResampler

func (*RationalResampler) PredictOutputSize

func (f *RationalResampler) PredictOutputSize(inputLength int) int

func (*RationalResampler) Work

func (f *RationalResampler) Work(data []complex64) []complex64

func (*RationalResampler) WorkBuffer

func (f *RationalResampler) WorkBuffer(input, output []complex64) int

type Rotator

type Rotator struct {
	// contains filtered or unexported fields
}

func MakeRotator

func MakeRotator() *Rotator

func MakeRotatorWithFrequency

func MakeRotatorWithFrequency(centerFrequency, sampleRate float32) *Rotator

func (*Rotator) PredictOutputSize

func (r *Rotator) PredictOutputSize(inputLength int) int

func (*Rotator) Reset

func (r *Rotator) Reset()

func (*Rotator) Rotate

func (r *Rotator) Rotate(d complex64) complex64

func (*Rotator) SetCenterFrequency

func (r *Rotator) SetCenterFrequency(centerFrequency, sampleRate float32)

func (*Rotator) SetPhase

func (r *Rotator) SetPhase(p complex64)

func (*Rotator) SetPhaseIncrement

func (r *Rotator) SetPhaseIncrement(increment complex64)

func (*Rotator) Work

func (r *Rotator) Work(data []complex64) []complex64

func (*Rotator) WorkBuffer

func (r *Rotator) WorkBuffer(input, output []complex64) int

func (*Rotator) WorkInline

func (r *Rotator) WorkInline(data []complex64)

type SimpleAGC

type SimpleAGC struct {
	// contains filtered or unexported fields
}

func MakeSimpleAGC

func MakeSimpleAGC(rate, reference, gain, maxGain float32) *SimpleAGC

func MakeSimpleAGCSimple

func MakeSimpleAGCSimple() *SimpleAGC

func (*SimpleAGC) PredictOutputSize

func (sa *SimpleAGC) PredictOutputSize(inputLength int) int

func (*SimpleAGC) Work

func (sa *SimpleAGC) Work(input []complex64) []complex64

func (*SimpleAGC) WorkBuffer

func (sa *SimpleAGC) WorkBuffer(input, output []complex64) int

type SinglePoleIIRFilter

type SinglePoleIIRFilter struct {
	// contains filtered or unexported fields
}

func MakeSinglePoleIIRFilter

func MakeSinglePoleIIRFilter(alpha float32) *SinglePoleIIRFilter

func (*SinglePoleIIRFilter) Filter

func (f *SinglePoleIIRFilter) Filter(input float32) float32

func (*SinglePoleIIRFilter) FilterArray

func (f *SinglePoleIIRFilter) FilterArray(input []float32) []float32

func (*SinglePoleIIRFilter) FilterArrayBuffer

func (f *SinglePoleIIRFilter) FilterArrayBuffer(input, output []float32) int

func (*SinglePoleIIRFilter) GetPreviousOutput

func (f *SinglePoleIIRFilter) GetPreviousOutput() float32

func (*SinglePoleIIRFilter) SetTaps

func (f *SinglePoleIIRFilter) SetTaps(alpha float32)

type Squelch

type Squelch struct {
	// contains filtered or unexported fields
}

func MakeSquelch

func MakeSquelch(threshold, alpha float32) *Squelch

func (*Squelch) GetAvgLevel

func (f *Squelch) GetAvgLevel() float32

func (*Squelch) GetThreshold

func (f *Squelch) GetThreshold() float32

func (*Squelch) IsMuted

func (f *Squelch) IsMuted() bool

func (*Squelch) PredictOutputSize

func (f *Squelch) PredictOutputSize(inputLength int) int

func (*Squelch) SetAlpha

func (f *Squelch) SetAlpha(alpha float32)

func (*Squelch) SetThreshold

func (f *Squelch) SetThreshold(dB float32)

func (*Squelch) Work

func (f *Squelch) Work(data []complex64) []complex64

func (*Squelch) WorkBuffer

func (f *Squelch) WorkBuffer(input, output []complex64) int

Directories

Path Synopsis
Package fft provides forward and inverse fast Fourier transform functions.
Package fft provides forward and inverse fast Fourier transform functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL