LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

complex convolution problem

I design very simple comlex convolution example. However I am not able to run it since error message appaer and LabView is closed.
 
Any idea?
0 Kudos
Message 1 of 6
(3,439 Views)
Please post the subVI My_convolution.vi. Without that we cannot identify the problem.

Lynn
0 Kudos
Message 2 of 6
(3,437 Views)

Excuse me, it was my fault.

 

0 Kudos
Message 3 of 6
(3,435 Views)
Since the algorithm is hidden inside the dll, I cannot tell what is happening. It crashes LV on my Mac also.

I created a modified My_convolution.2.vi by using the FFT method shown in the help for LV's built in Convolution VI. It does not crash. I have not verified that it is accurate. Try substituting it in your test VI and see if it works.

Lynn
0 Kudos
Message 4 of 6
(3,428 Views)
Kozlov,
I don't believe you can just take the Convolution.vi from the advanced analysis library and convert one of the inputs to complex. I seriously doubt the lvanlys.dll can handle that! As expectedm it crashes here too.
 
Lynn's example is not quite the same, because the circular convolution implementation requires the two arrays to be the same size. The plain convolution allows different sizes for the two inputs and the output size will be the sum of the input sizes minus one.
 
In your case, the complex array is size 10000 while the real input is only size 40. This would result in an output array of size 1039.
 
Alternatively, you could do appropriate padding to duplicate the plain convolution using fourier transforms or you could simply implement the direct method as described in the online help (x*y[i] = Sum(x[k]y[i-k]).
0 Kudos
Message 5 of 6
(3,420 Views)

Thank all for assistance.

I am rather newcomer of LabView however I have built a lot of large data acquisition and control systems based on Agilent VEE.

LabView 7.1 offers polymorphic VI. Convolution.vi is a polymorphic VI. I guess it will be useful if NI offers an approach that restrict polymorphic VI inputs to only correct data type.

On the other hand I guess that NI uses a dll for Convolution.vi since  direct method (x*y[i] = Sum(x[k]y[i-k]) implemented by VIs is rather slowly.

Mikhail

0 Kudos
Message 6 of 6
(3,407 Views)