public static float[] MakeLowPassKernel(double sampleRate, int filterOrder, double cutoffFrequency, WindowType windowType) { filterOrder |= 1; float[] array = FilterBuilder.MakeSinc(sampleRate, cutoffFrequency, filterOrder); float[] window = FilterBuilder.MakeWindow(windowType, filterOrder); FilterBuilder.ApplyWindow(array, window); FilterBuilder.Normalize(array); return(array); }
public unsafe IQBalancer() { this._dcTimeConst = 0.0001f; this._dcRemoverIBuffer = UnsafeBuffer.Create(sizeof(DcRemover)); this._dcRemoverI = (DcRemover *)(void *)this._dcRemoverIBuffer; this._dcRemoverI->Init(this._dcTimeConst); this._dcRemoverQBuffer = UnsafeBuffer.Create(sizeof(DcRemover)); this._dcRemoverQ = (DcRemover *)(void *)this._dcRemoverQBuffer; this._dcRemoverQ->Init(this._dcTimeConst); float[] buffer = FilterBuilder.MakeWindow(WindowType.Hamming, 1024); this._windowBuffer = UnsafeBuffer.Create(buffer); this._windowPtr = (float *)(void *)this._windowBuffer; this._isMultithreaded = (Utils.ProcessorCount > 1); }
public IQBalancer() { _dcRemoverIBuffer = UnsafeBuffer.Create(sizeof(DcRemover)); _dcRemoverI = (DcRemover *)_dcRemoverIBuffer; _dcRemoverI->Init(DcTimeConst); _dcRemoverQBuffer = UnsafeBuffer.Create(sizeof(DcRemover)); _dcRemoverQ = (DcRemover *)_dcRemoverQBuffer; _dcRemoverQ->Init(DcTimeConst); var window = FilterBuilder.MakeWindow(WindowType.Hamming, FFTBins); _windowBuffer = UnsafeBuffer.Create(window); _windowPtr = (float *)_windowBuffer; _isMultithreaded = Environment.ProcessorCount > 1; }
public static Complex[] MakeKernelFromFFT(Complex[] buf, int len, WindowType window, int order) { float[] array = FilterBuilder.MakeWindow(window, order + 1); Complex[] array2 = new Complex[order + 1]; for (int i = 0; i < order + 1; i++) { int num = i - order / 2; if (num < 0) { num += len; } Complex.Mul(ref array2[i], buf[num], array[i]); } return(array2); }
unsafe static IQBalancer() { IQBalancer._windowBuffer = UnsafeBuffer.Create(FilterBuilder.MakeWindow(WindowType.BlackmanHarris7, 128)); IQBalancer._windowPtr = (float *)(void *)IQBalancer._windowBuffer; }