Jump to content

Norm Kirchner

NI
  • Posts

    823
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Norm Kirchner

  1. Maci, You have two basic knobs to deal with. Signal Acquisition Time Signal Sampling Rate If you want a finer resolution the you MUST capture for a longer time. If you are concerned about data size and time to process the FFT then you can utilize the 'Zoom FFT' (See more details here) But the jist of the Zoom is that you still sample for a longer time(to get finer frequency resolution), but a lower sampling rate accompanied with band filtering is applied and you 'zoom' into a section of the spectrum. So the net effect is that you don't decrease your capture time (in fact you increase it) but you decrease the data size and processing power needed. Hopefully that gives a better picture of what we're getting at. So for your situation, where you're sampling at 50k, you're taking unneeded samples. But if there is significant spectral content above 1/2 what you would like to sample at (12.5k) then it would get aliased into your signal and skew your results. That is where the filtering of the zoom FFT comes into play. So for you, go ahead and turn down the sampling rate to what you really want, sample for a longer time and put the data into a zoom fft function and you'll get what you're looking for. Enjoy
  2. How long are you acquiring for. in sec The bin size of your FFT is dependent on the timespan of your acquisition. Now I am not a signal processing guru, but I am working my way up the treacherous part of the learning curve, so perhaps I'm not getting your point. But step 1, how long are you acquiring for? If you want 1hz resolution I believe you need 1 sec worth of samples. Your resolution is 1/(acquisition time)
  3. If I had to do it I would like to do it like this
  4. Just edited my post to make the fact that I was wrong about the zero pad. But as the edit states, there still is a memory resize which for the sake of argument we want to get rid of at all costs
  5. Something that I thought would be a simple act of making some code better has spawned into something very unexpected. It started with this and I realized that there was a new buffer acquisition and went wtf? So I started to think, how can I prevent this allocation?....In-place structure!!! But all is not as simple as I had hoped. Must be fully reverse compatible/compliant NO EXCEPTIONS. The reason this falls short is that w/out the in-place structure, if the arrays are 2 different sizes, the output sizes up and pads zeroes w/ the in-place structure, the result array size is cropped to the size of the Waveform 1 array size (not the same functionality) So now it's necessary to determine who is bigger and then let that one be the element that is 'in-place' operated on. And now we even need a memory swap function, that unfortunately shows memory allocation as well (but I'll ignore that for now) But now we're showing buffer allocations on the output of the bundle by name!!! Crap. Ok, so now I put the inplace structure around my array size logic. So {aside from the allocation at the memory swap} I think I have the most efficient coding of this very simple VI....which is now not simple. So would any of you, if you put on the hat of memory efficiency, choose to do this any other way? Going to be testing speed and memory now. Download File:post-208-1232497642.vi So the last step is
  6. There used to be a bit of a hack that always had promise, but had some technical issues because of it's hack status. The jist is that you generate a reference off of an element in an array, Register that for the mouse down or choice of event, have an event structure handle that event and when it fires, use the CtlRef that is presented and suck out the value from the ref or whatever other info you need (although index is not one of those). So that being said the LAVA CR might be your best bet, but I always liked this trick or the potential it possessed. See link http://screencast.com/t/rtgvYhF7Yt7
  7. I have an architecture that requires a notifier to be part of the class data. This is so that wherever the class gets sent to, it can send itself back via what would now be waiting on the created notifier. (I know there are other ways but roll w/ me on this) So would you think that it's a bug or rather should be illegal to embed a notifier which has the data type be that of the class that it is contained within? I understand this feels a little chicken-eggy, but I see no real reason why I should be prevented from doing this. (because every time I do try, it breaks the class) See the attached code and simply replace the data type within the notifier to be a variant and everything is ok. Open project, look at class data def, observe simple data structure, open write notifier.vi, observe dead wire, open typedef and replace Download File:post-208-1229833042.zip So before I harass an AE that I might actually run into on the elevator, I thought I would see what y'all thought.
  8. Well in your system (if memory serves correct)you only have 3 primary portions of the program going (the main host, the device control and the data analysis) so it's rather fixed if you think about it like that.
  9. Actually my feeling is that each choice has it's place and time. Some have more times than others. In this case though, where he's sending messages/commands to the slaves and standard messages back to the host, the most flexible solution for him I feel would be utilizing strings. I know that there is a mixture of typedef enum and string throughout the program he's working on so it would also depend on how he wants to use it. So my 'should' stands with the realization that 'always' did not precede it in my comment
  10. QUOTE This was your original problem. Why not have a Q Reference manager (assuming that they are string based (as they should be)). This would be a LV2 Style Global from which you could pass in an enum which would dictate which ref you passed out. Inside of this you would register the slave and master Q and as the slaves go dead and are replaced w/ another one you just register the new ref. That way everyone can access everyone elses q's as needed in the same manner. Also then each plug-in has a standard method of registration of Q and access to the master. Whadayathhink?
  11. QUOTE (crelf @ Dec 9 2008, 08:20 AM) Boy do I love the "Random Image" feature of the forums on your UI page. Talk about more than just a pretty face!
  12. QUOTE (Jim Kring @ Dec 8 2008, 05:53 PM) I'm a quick study.... that and they've been sending me this great drinking water for the past 2 weeks for free! it's great and it tastes yummy too! Did I mention that nothing beats PXI!... where did that come from.... sheesh... that's strange
  13. Yes, I understand that I have a nice eagle next to my name now, but as well I now have the google adds too!! and no access to the premium topic (not like anyone uses it,) but I'm assuming that the other perks are gone as well.
  14. Now after losing my champion status since joining NI, apparently the admins @ LAVA have removed my premium member status. What's that about! If anything, NI folk should be granted premium status just by the sheer fact that they support the careers of most people on the forums and anything to make our lives easier in turn makes your lives easier. So there...
  15. Looks good enough for some Zazzle action!!
  16. So if you haven't realized Mike A. is addicted to video blogging. But deep down inside, this is how he feels. LV2009.vi
  17. I believe that crelf is correct I hear that some people who shall remain aivaliotisless shall attempt to thwart any attempt by me to hold it as *inactive* Fair enough. Being champion is like being given the keys to the castle. Now it looks like I'll me manning the radar towers inside the walls anyways so other than the title, I still probably get the same action!
  18. QUOTE (Justin Goeres @ Dec 1 2008, 11:02 AM) In that case, would the G in the OMG be the FSM??
  19. I was going to ask did you know something that I didn't know (regarding the prep H) but then I read my own quote! nice
  20. We'll see how badly it changes me but you are all free to give me as much grief as you can dole out to keep me grounded back in the 'real' world
  21. As of Tuesday 11/25 I have accepted a position deep in the bowels of NI. For those of you who hadn't known, I was recently returned to the free agent job pool. I interviewed around and was offered gainful employment @ NI that in turn I have accepted It will be in the RF group and I am getting more excited about it by the day. The only change though that might happen w/ me here is they may make my relinquish my blatant copyright infringement on the NI ~,~ Captain Logo. More will be revealed in weeks to come, but actually as I will be away from home and family in Austin most of the week to start, so my evenings will be free to contribute to the community.... or so I tell myself now! So I really didn't think that this was post worthy, but a few gripes have arisen about not noting this en mass. And yes, I will be attempting with all my power that I might have to become a presenter on stage at NI week although I might not have enough clout to fill Tim Dehne's shoes.
  22. Didn't you guys know that I worked it into the offer that I would get to present at NIW 09?
  23. Just a warning. This sounds like a real bad attempt at getting some help w/ homework. And you might get some nasty replies. Now getting help w/ homework isn't so bad, but you have to put some effort forth to show that you have tried to understand how the hell you're supposed to do it before just asking a blanket "how do I do this" First, do you understand how it's supposed to be done w/out even thinking about LV? Do you understand what the different curves mean? If you had a source and a sink and a multimeter, could you do it manually. These things need to be answered before anyone can help you on a program to do this. Also we would need to know the hardware that you would interface with to help direct your future questions
×
×
  • Create New...

Important Information

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