Jump to content

Gary Rubin

Members
  • Posts

    633
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Gary Rubin

  1. Aside from the other things previously mentioned, have you tried reading a 6-element row from the big array, then reading the individual elements of that 6-element vector?  

    It's been a while since I've played with this stuff, and I don't currently have LabVIEW installed on this machine, but I found that optimization was greatly aided by turning on the memory allocation dots.  You may find that your approach is making lots of copies of the big array.

  2. Very nice!

    My kids' elementary school has the district's only school-based MakerSpace program.  I volunteer teaching 3rd-6th graders to use Lego Mindstorms NXT.  With that giving them the background into graphical programming, this would be a great next step.

    • Like 1
  3. I really think you want to use a matched filter.  It's basically the cross-correlation that infinitenothing mentioned, and is very standard in radar signal processing to find the time of arrival of an echo even in the presence of noise and clutter.  You just need to have a copy of the signal that you originally sent out.  It can be implemented as a sliding point-by-point multiply in the time domain or in the frequency domain as a vector multiply (with some FFTs involved).  Some googling on Matched Filter should get you there pretty quickly.

    Gary

    • Like 1
  4. I must be missing something - doesn't that only help you half the time?  What happens when i=2*usersize and both of your buffers have to roll over at the same time?  

    If you knew your max resize, you could probably size them so that both the smaller and larger buffer aren't integer multiples in length and are unlikely to wrap-around within the same read block size.

    Okay, I was missing something.  For some reason, I thought the idea proposed was 2 buffers so that one wraps around when the other doesn't.  I see that's not what SDietrich was suggesting, but I still don't see how his extra-long buffer keeps a wrap-around from happening.  I guess I'm still missing something.

  5. one way to avoid rotating the buffer and still be able to use the Array Subset Node is the following:

    • allocate a buffer twice the size the user requested
    • apply writes to buffer also to buffer[usersize + i]
    • use Array Subset Node to return any contiguous part of the buffer very efficiently as a contiguous subarray

     

     

    I must be missing something - doesn't that only help you half the time?  What happens when i=2*usersize and both of your buffers have to roll over at the same time?  

    If you knew your max resize, you could probably size them so that both the smaller and larger buffer aren't integer multiples in length and are unlikely to wrap-around within the same read block size.

  6. At this point (and this may change), I'm looking at LINX as  just a set of driver functions, much like a dll.  I don't really care what's going on in the middle - all I know is that I make a function call and get the proper response.  

     

    If I get to the point that I'm writing code to run on the Arduino and using LINX to talk to that code, my opinion may change.  Right now, I'm more than happy thinking of it as a black box.

     

    EDIT: I've used plenty of non-NI acquisition hardware for which I've written LabVIEW wrappers around the vendor's dll functions.   I see the Arduino/LINX combination the same as those hardware/dll combinations.  That may be why you and I see this differently - I'm used to having black box functions sitting between me and the hardware, so I didn't even look into the LINX VIs.

  7. Along the same line of thought, why should source code need to be well documented, it will just go into an EXE where the user doesn't see it anyway.

    From a user standpoint, it doesn't.

     

    If user experience isn't affected, do you care if MS Word source code is well documented?  Or even well-written? 

     

    Unless you need to modify or support code, I don't see why in-code documentation matters.

  8. So far LINX works and at this point, that's really all I care about from my middleware.

    If I start trying to make it do things that outside its current scope, then I might care about the LINX VI architecture and design.  But isn't the whole reason for downloading such a library is so that I don't have to worry about such things?.

  9. Except that when you follow the link from Dave's post you get to a page which looks like the card he is talking about and in red letter New Product! afterwards. After about 8 years it would seem a little strange to still claim it's a new product. CPCI isn't as quick paced as general computer technology but that slow!!!!???

    Yes, I know.  One board that I was looking at says "Coming Soon", although it's been discontinued and replaced by a next generation.

    That's why I was hoping for some first-hand experience that might indicate whether their hardware/software is better than their web presence.

  10. I don't have LabVIEW installed on this machine and I may be confusing LabVIEW and MATLAB primatives, but I've seen a pretty fast approach that relies on a cumulative summation.  Textually, the algorithm is:

    B=CumulativeSum(A)

    SlidingAverage(i)=(B(i+windowsize)-B(i))/windowsize

    Adjust indices as necessary to center your window in the right place and be careful with the edge conditions.

  11. I'm more interested in the programming than the electronics aspect.

    For that reason, I'd rather get buy some sensors/shields than sit there with my Horowitz & Hill on my lap.

    Maybe once I get something going, I can try some circuitry.

  12. Regarding LIFA, I just saw this little disclaimer:

     

    Note: The Arduino microcontroller must be connected to the computer with LabVIEW through a USB, serial, Bluetooth, or XBee link. This toolkit does not provide for headless operation. 

     

    Does this mean that the LIFA toolkit just supports the Arduino as an I/O device for code running on the PC?  I was hoping for something that would actually run on the Arduino microcontroller.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.