Ejemplo n.º 1
0
        public static double[] WindowedSinc(int zeroCrossings, int overSampling)
        {
            int n = (zeroCrossings * 2 * overSampling) + 1;

            double[] buffer1 = new double[n];
            double[] buffer2 = new double[n];

            // Generate Sinc
            double a = (double)-zeroCrossings;
            double b = (double)zeroCrossings;

            double r;

            for (int i = 0; i < n; i++)
            {
                r          = ((double)i) / ((double)(n - 1));
                buffer1[i] = MinBleps.Sinc(a + (r * (b - a)));
            }

            // Window Sinc
            MinBleps.BlackmanWindow(n, buffer2);

            for (int i = 0; i < n; i++)
            {
                buffer1[i] *= buffer2[i];
            }

            return(buffer1);
        }
Ejemplo n.º 2
0
        public static void Main(Stream outStream)
        {
            var sinGen = new SinGenerator2(44100);

            double phase = 0;

            for (int i = 0; i < 44100 << 2; i++)
            {
                //outStream.Write(BitConverter.GetBytes(sinGen.Sample(phase)));
                outStream.Write(BitConverter.GetBytes(MinBleps.Sinc(phase)));

                phase += 0.001;
            }
        }