Beispiel #1
0
 unsafe public PowerSpectrum(int fft_size)
 {
     this.mode          = PowerSpectrumMode.OFF;
     this.position      = PowerSpectrumPosition.PREFILTER;
     this.fft_size      = fft_size;
     this.results_size  = fft_size;
     this.window        = new float[fft_size / 2];
     this.ps_results    = new float[fft_size]; //don't overrun results buffer
     this.scope_results = new float[fft_size];
     this.phase_results = new float[fft_size * 2];
     this.fft           = new FFT(fft_size);
     this.filt_design   = new FilterDesigner();
     fixed(float *ptr_window = &window[0])
     {
         filt_design.makewindow(WindowType.BLACKMANHARRIS_WINDOW, fft_size / 2, ptr_window);
     }
 }
Beispiel #2
0
        unsafe public void DoPowerSpectrum(float *real, float *imag, PowerSpectrumPosition positon)
        {
            if (mode == PowerSpectrumMode.OFF)
            {
                return;
            }

            switch (positon)
            {
            case PowerSpectrumPosition.INITIAL:
                switch (mode)
                {
                case PowerSpectrumMode.PHASE2:
                    this.PowerSpectrumPhase2(real, imag);
                    break;

                default:
                    break;
                }
                break;

            case PowerSpectrumPosition.PREFILTER:
                switch (mode)
                {
                case PowerSpectrumMode.PANADAPTER:
                case PowerSpectrumMode.SPECMODE:
                    this.PowerSpectrumSignal(real, imag);
                    break;

                default:
                    break;
                }
                break;

            case PowerSpectrumPosition.POSTFILTER:
                switch (mode)
                {
                case PowerSpectrumMode.HISTOGRAM:
                case PowerSpectrumMode.WATERFALL:
                case PowerSpectrumMode.SPECTRUM:
                    this.PowerSpectrumSignal(real, imag);
                    break;

                case PowerSpectrumMode.SCOPE:
                    this.PowerSpectrumScope(real);
                    break;

                default:
                    break;
                }
                break;

            case PowerSpectrumPosition.POSTAGC:
                switch (mode)
                {
                case PowerSpectrumMode.PHASE:
                    this.PowerSpectrumPhase(real, imag);
                    break;

                default:
                    break;
                }
                break;

            case PowerSpectrumPosition.FINAL:
                break;

            default:
                break;
            }
        }