Imports System Imports System.Text Imports CenterSpace.NMath.Core Namespace CenterSpace.NMath.Examples.VisualBasic .NET example in Visual Basic showing how to use the correlation classes. Module CorrelationExample Sub Main() Correlation of a Harr wavelet with data. Define a harr wavelet and some signal data. Dim harr_kernel As New DoubleVector(1, 1, -1, -1) Dim data As New DoubleVector(1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1) Create the correlation class. Dim corr As New Double1DCorrelation(harr_kernel, data.Length) Compute the correlation. Dim result As DoubleVector = corr.Correlate(data) Remove edge effects - trim result to areas with full kernel overlap Dim result_trimmed As DoubleVector = corr.TrimConvolution(result, CorrelationBase.Windowing.FullKernelOverlap) Console.WriteLine() Console.WriteLine("Double precision 1D correlation computed.") Console.WriteLine("-----------------------------------------" + Environment.NewLine) Console.Write("Kernel = ") Console.WriteLine(harr_kernel.ToString()) Console.Write("Data = ") Console.WriteLine(data.ToString() + "" + Environment.NewLine) Console.WriteLine("Correlation = ") Console.WriteLine(result.ToString() & Environment.NewLine) Console.WriteLine("Correlation trimmed to areas with full kernel overlap = ") Console.WriteLine(result_trimmed.ToString()) Correlation with a complex Hermitian kernel Define a Hermitian wavelet and some signal data. Dim hermitian_kernel As New FloatComplexVector("(1,1)(2,1)(3,0)(2,-1)(1,-1)") Dim signal = New FloatComplexVector(1, 2, 3, 4, 5, 6) Create the correlation class. Dim zcorr As New FloatComplex1DCorrelation(hermitian_kernel, signal.Length) Compute the correlation. Dim corr_result As FloatComplexVector = zcorr.Correlate(signal) Create and compute the convolution for comparison Dim Zconv As New FloatComplex1DConvolution(hermitian_kernel, signal.Length) Dim conv_result As FloatComplexVector = NMathFunctions.Conj(Zconv.Convolve(signal)) Console.WriteLine() Console.WriteLine() Console.WriteLine("Complex float precision 1D correlation computed.") Console.WriteLine("------------------------------------------------" + Environment.NewLine) Console.Write("Hermitian kernel = ") Console.WriteLine(hermitian_kernel.ToString()) Console.Write("Signal = ") Console.WriteLine(signal.ToString() & Environment.NewLine) Console.WriteLine("Correlation = ") Console.WriteLine(corr_result.ToString() & Environment.NewLine) Console.WriteLine("Complex-conjugate of convolution = ") Console.WriteLine(conv_result.ToString()) Console.WriteLine() Console.WriteLine("Finished. Press enter key to exit.") Console.Read() End Sub End Module End Namespace← All NMath Code Examples