Accord.Audio.ComplexSignal.FromArray C# (CSharp) Method

FromArray() public static method

Create complex signal from complex array.
public static FromArray ( Complex array, int sampleRate, ComplexSignalStatus status ) : ComplexSignal
array Complex Source complex array.
sampleRate int Sample rate of the signal.
status ComplexSignalStatus Status of the signal.
return ComplexSignal
        public static ComplexSignal FromArray(Complex[,] array, int sampleRate, ComplexSignalStatus status)
        {
            int samples = array.GetLength(0);
            int channels = array.GetLength(1);

            // check signal size
            if (!Accord.Math.Tools.IsPowerOf2(samples))
            {
                throw new InvalidSignalPropertiesException("Signals length should be a power of 2.");
            }


            byte[] buffer = new byte[array.Length * Marshal.SizeOf(typeof(Complex))];

            GCHandle handle = GCHandle.Alloc(array, GCHandleType.Pinned);
            Marshal.Copy(handle.AddrOfPinnedObject(), buffer, 0, buffer.Length);
            handle.Free();

            return new ComplexSignal(buffer, channels, samples, sampleRate, status);
        }

Same methods

ComplexSignal::FromArray ( Complex signal, int sampleRate ) : ComplexSignal
ComplexSignal::FromArray ( float array, int sampleRate ) : ComplexSignal

Usage Example

Ejemplo n.º 1
0
 /// <summary>
 ///   Create complex signal from complex array.
 /// </summary>
 ///
 /// <param name="signal">Source complex array.</param>
 /// <param name="sampleRate">Sample rate of the signal.</param>
 ///
 /// <returns>Returns an instance of complex signal.</returns>
 ///
 public static ComplexSignal FromArray(Complex[,] signal, int sampleRate)
 {
     return(ComplexSignal.FromArray(signal, sampleRate, ComplexSignalStatus.Normal));
 }