Accord.Audio.Generators.ImpulseGenerator.Generate C# (CSharp) Метод

Generate() публичный Метод

Generates the given number of samples.
public Generate ( int samples ) : Signal
samples int
Результат Signal
        public Signal Generate(int samples)
        {
            Signal signal = new Signal(Channels, samples, SamplingRate, Format);

            int ti = interval * Channels;

            unsafe
            {
                if (Format == SampleFormat.Format32BitIeeeFloat)
                {
                    for (int c = 0; c < Channels; c++)
                    {
                        float* dst = (float*)signal.Data.ToPointer() + c;

                        for (int i = 0; i < samples; i += interval, dst += ti)
                        {
                            *dst = ampMax;

                            if (Pulses > 0 && i / interval >= Pulses)
                                break;
                        }
                    }
                }
                else if (Format == SampleFormat.Format128BitComplex)
                {
                    Complex campMax = new Complex(ampMax, 0);

                    for (int c = 0; c < Channels; c++)
                    {
                        Complex* dst = (Complex*)signal.Data.ToPointer() + c;

                        for (int i = 0; i < samples; i += interval, dst += ti)
                        {
                            *dst = campMax;

                            if (Pulses > 0 && i / interval >= Pulses)
                                break;
                        }
                    }
                }
                else
                {
                    throw new UnsupportedSampleFormatException("Sample format is not supported by the filter.");
                }
            }

            return signal;
        }