Esempio n. 1
0
 internal ComplexFirFilterVOLK(Complex[] coeffs, int decimation)
 {
     ctx = VolkApi.libsdr_filter_complex_create(coeffs.Length, decimation);
     for (int i = 0; i < coeffs.Length; i++)
     {
         ctx->coeffsBufferPtr[i] = coeffs[i];
     }
     for (int i = 0; i < coeffs.Length * 2; i++)
     {
         ctx->insampBufferPtr[i] = 0;
     }
 }
Esempio n. 2
0
 internal ComplexFirFilterGeneric(Complex[] coeffs, int decimation)
 {
     VolkApi.WarnVolk();
     coeffsBuffer          = UnsafeBuffer.Create(coeffs.Length, out coeffsBufferPtr);
     insampBuffer          = UnsafeBuffer.Create(coeffs.Length * 2, out insampBufferPtr);
     insampBufferPtrOffset = insampBufferPtr + coeffs.Length;
     taps            = coeffs.Length;
     this.decimation = decimation;
     decimationIndex = 0;
     offset          = 0;
     for (int i = 0; i < coeffs.Length; i++)
     {
         coeffsBufferPtr[i] = coeffs[i];
     }
 }
Esempio n. 3
0
 public void Dispose()
 {
     VolkApi.libsdr_filter_complex_free(ctx);
 }
Esempio n. 4
0
 public int Process(Complex *input, Complex *output, int count, int channels = 1)
 {
     return(VolkApi.libsdr_filter_complex_process(ctx, input, output, channels, count));
 }
Esempio n. 5
0
 public void Dispose()
 {
     VolkApi.libsdr_filter_real_free(ctx);
 }
Esempio n. 6
0
 public int Process(float *input, float *output, int count, int channels = 1)
 {
     return(VolkApi.libsdr_filter_real_process(ctx, input, output, channels, count));
 }