Jump to content

peteski

Members
  • Posts

    177
  • Joined

  • Last visited

Posts posted by peteski

  1. Nice to see from some of the replies that people are actually awake. Okay, ya'll caught me.

    It was actually mostly a nugget to feed to the bears, mostly alfa over on the cosmic consciousness topic or whatever it's called.

    Lately I think it's morphed into a food & wine topic, which is a good thing.

    Well, it is the Lounge , after all. You'd think that it would actually SERVE food and beverages...

    Or at least offer them as part of the menu !

    :D

    -Pete Liiva

  2. Pete,

    Thanks for the response. Since I was taking 2000s point for a record time length of 1e-6 (which corresponds to about 17 periods of the 17MHz signal), my sampling rate would be 2000/1e-6=2GHz. The picture is indeed the FM signal (17MHz), and the x-axis is just the samples. The wave displayed is not superimposed. Below, is the waveform at the beginning of the acquisition.

    Regards,

    Sven

    Sven,

    If you are sampling at 2 GHz, you must have "acquired" a scope other then the agilent 54621a you were using previously - what I see in specifications on that scope seems to indicate that it tops out at 200 MSamples/second.

    From all that you have written, I think your problem is strictly a "signal conditioning" problem. Somehow, high frequency noise is leaking into your 17 MHz signal and slowly increasing in amplitude with time. The noise appears to be >>17 MHz, so it is not acoustic in nature, it seems as if some how the acoustic input to the microphone were modulating an amplifier that was amplifying some ambient high frequency noise source and leaking it into your 17 MHz signal directly.

    It might be worthwhile doing an FFT on a particularly noisy example of your waveform. If there is a large peak somewhere >>17 MHz, then either some digital filtering of the data, bandwidth limiting at the scope, or analog filtering at the circuit may help. However, the fact that it starts out fine and degrades in a matter of a minute or so bothers me, and I would strongly suggest seeking out an electrical engineer familiar with these kind of signal concerns to look over your circuit. I'm afraid I would not be able to help you in that concern, my background is originally mechanical engineering and I have had a 15 year career in testing and measurement, but I have virtually no experience in circuit design. :(

    Hope this helps,

    -Pete Liiva

  3. Happy Birthday Alpha, ooops, that was yesterday.

    Happy Birthday Alpha, ooops, that was 2 days ago.

    Happy Birthday Alpha, ooops, that was 3 days ago........

    Must stop this time regression stuff.

    Please, whatever you do, don't fall into a "recursive" regression!

    You just might live to regret it!

    :D

    -Pete Liiva

  4. Sawadee Korp to you too! Thailand - now there's a beautiful country: I spent three weeks treking through Thailand (Bankok, Aradnapura, River Kwainoi, Phitsanalook, Chang Mai & Rai - excuse my spelling) about five years ago (well, actually two weeks trekking and one week on the beach of Koh Phi Phi Don and my wife's insistance :) ) - the people are friendly, the food's awesome and the scenery is stunning. I haven't found a decent Tom Kha Gai followed by sticky rice here in Detroit (if anyone local has any ideas - I'd sure appreciate hearing them!)

    crelf,

    It's been over 7 years since I've been to the area, but I believe the following place was fairly good, at least back then:

    Thai Palace Restaurant

    22433 Michigan Ave, Dearborn, MI 48124

    It was simple, clean, small, cheap and good. One small disadvantage was that they didn't have an alcohol license. Not only was the food well spiced, the quality seemed above par as well. It was right next to a La Pita, or something like that, which had some good cheap Lebanese food as well, which I would also highly recommend. Alas, no liquor license there either, if I remember correctly.

    If you go, or have already been there, please let me know!

    Good Luck!

    -Pete Liiva

  5. Can you please clarify what you mean by "trying to remain synchronous".

    Since you are triggering off of the zero crossing, I think that addresses my concern for remaining synchronous, at least for now. I was not sure of your trigger settings previous to now, and also unsure of your use of the term "jittery" (see below). Around here, what I see in your plot we tend to call "noisy".

    However, after a minute into the acquisition, the FM signal seems to become very sensitive to sound. And even if I just whisper the sine wave will become jittery as seen in the attached picture.

    If you have behavior which changes on the order of a minute, and all your characteristic frequencies are several orders of magnitude faster, it sounds to me like you are building up some charge somewhere or some bias is developing that is manifesting itself in your data. I'm much more accustomed to jitter be referred to as the temporal uncertainty in the timing of a signal, I *think* what you are seeing is some build-up of high frequency noise on top of your signal.

    Is the picture you attached supposed to be the 17 MHz sine wave? Are the units on the bottom number of samples? What is your sample rate? And finally, is this a single waveform, as opposed to being several waveforms superimposed?

    If this is a single waveform, and it is supposed to be 17 MHz, you obviously have some much higher frequency noise leaking into your system from somewhere.

    Could you post what the waveform looks like when it is not, as you say, "jittery"?

    -Pete Liiva

  6. Pete,

    I ended up using the data acquisition in a loop which records the FM signal with constant time record. At each new iteration of the loop I move the start time by the time record. Thus, if the modulating sine wave is constant, I should be able to obtain a true representation of the FM signal, even if the osc. stops during streaming the internal buffer data to the PC. However, what I noticed is that after some iterations of the loop, the waveform starts "jittering" around. For example, it does not have an exact zero crossing anymore as it jumps up and down a bit. Once I stop the program and auto-setup everything, the waveform is stable again. Do you know what this might be caused by? I guess it must be due to the fact that with each iteration of the loop I move the start time by N*record_time, where N is the current loop iteration. But I don't know what exactly is causing this. Any ideas?

    Cheers,

    Sven

    Sven,

    Hmm, from the text of your message, I'm having a hard time "visualizing" exactly what you are doing and seeing. Could you post some images of what the data looks like? Are you trying to gather a record whose length is exactly the size of a single period of your modulating signal? And how do you trigger your waveform acquisition? By "jittering" around, I assume you mean in the time domain, what have you done to try to remain synchronous? You might be seeing subtle differences in the timebase drift between your signal and your measurement devices.

    -Pete Liiva

  7. to protect the french: ok, their beer is awfull, so I can understand you are a little bit unsure ;) but they can cook meals, you dream off, and the wines from bordeaux are delicious!

    Oh, and don't get me started about the French cheeses!! I've had some of the most fantastic cheese in France during a couple of trips to Lyon. I swear, some of the more nasty looking ones actually promote the release of endorphins or something. That combined with some of the local bread and wines... It's a combination that is hard to compete with! :thumbup:

    -Pete Liiva

  8. I used to play in WAFC, then in an informal pickup game around the Mall on Sundays. I haven't played for a couple years now -- family obligations, like you said...

    Gary

    Yeah, I have to fight negotiate the times I get out. Sign of growing old, I suppose. :(

    -Pete Liiva

  9. Gary,

    Now we veer way off topic! But who needs those lines anyway! :D

    I play with the Goddard Ultimate Frisbee Club, who play Tuesdays and Thursdays 5:30 to sundown. Its strictly pickup, informal, and the numbers showing up vary between being able to play 3's to just having enough to have 7 on each side. I can only make it out on Tuesdays, at least until June when the kids get out of school, at which point I might have to see what arrangements I can make.

    Tuesdays they play at Greenbelt Middle School, and Thursdays at the Goddard Space Flight Center. Its possible for someone to let you on Thursdays, but it requires some coordination to get you in.

    Some of the same group play with these people who play pick up on Sundays at Greenbelt Middle School. I would like to get out there more often, but the "Honey Do" list combined with the family obligations list tends to be too long to allow me to get out much on weekends.

    -Pete Liiva

  10. I've got a binary search VI. I had to modify it to do the interpolation between the two nearest points if the search key is not found.

    What I was wondering in the original post was if there was a reason that this the Threshold Array function is not a binary search, given that caveat in Labview Help that the function only works correctly on a sorted array.

    Maybe this post would have been appropriate for the Wish List forum, as a suggestion that in future releases, the function could use a binary search.

    Gary,

    I think that the real problem is that the following wording in the help file is misleading:

    Note Use this function only with arrays sorted in non-descending order.
    This note seems to imply that the array is supposed to be sorted, which I don't think was the original intension of the vi. The initial description seems to describe the behavior somewhat reasonably:
    Compares threshold y to the values in array of numbers or points starting at start index until it finds a pair of consecutive elements such that threshold y is greater than the value of the first element and less than or equal to the value of the second element.

    I do agree that a binary search function would be a nice simple addition to labview, especially if they could make it faster by making it native. When you need to do a binary search, you are doing it for speed, and every CPU cycle counts in such a case.

    However, I would not agree that the threshold 1-D array should be changed from sequential to binary, unless a choice of search algorthims is added.

    -Pete Liiva

  11. I'm surprised that many of you would think that I would agree to something that let's NI shutdown some of the most popular sections of the site.

    Michael,

    I wouldn't take it too personally, the first thought that came into my mind was "what must have happened to force this", immediately followed by "what kind of evil lawyers must have been behind this" (I should report the disclaimer that my wife happens to be a lawyer, and yes, we are still happily married! :) ) I started wondering if some former Enron business execs had found there way to NI and had their eyes on California, again... :shifty: (I had just seen the movie "Smartest Guys in the Room" a few weeks back, you see...)

    Luckily for me, I didn't have to stew for to long. I saw the posting after the first "April Fools" comment was posted, so although I started from the beginning and felt the blood pressure rising, once I saw the posting by "mec" I realized, and my immenent coranary by-pass was shelved once again. :whew: I wasn't looking forward to downloading all thouse sections of those forums on a Saturday at home.

    BTW, Orson Wells would have been proud. You know, Michael, there might be a slight resemblance to the young Orson Wells in you! Coincidence?!? :laugh:

    -Pete Liiva

  12. The reason I would use the Threshold function, or a modified binary search, is precisely because the timetags are asynchronous. Say I've got position measurements at 1:30:00 and 1:30:01, and I've got measurement data collected at 1:30:00.2. The binary search would give me either the position at either 1:30:00 or 1:30:01, but what I really want is the interpolated location at 1:30:00.2. Granted, this is a piecewise linear interpolation, and I could do better with higher-order curve fitting, but if I want one unique position point per measurement point, then a standard binary search would not be sufficient.

    Am I missing something in your thinking?

    Gary

    Gary,

    No, you are not missing my thinking, I "think" I was missing your thinking. But thats fine, probably about par for the course. I suspect that "piecewise linear interpolation" after a binary search would be as good as anything, and I suspect that a higher order curve fit wouldn't do you much good unless the exact nature of the "asyncronous" timestamping somehow conformed to the higher order curve you decided to use.

    Have you checked the Open G stuff to see if they have a binary search? Or the NI website knowledge base?

    -Pete Liiva

  13. ok, 3 days later, my blood preasure is coming to a normal level, I can turn the pacemaker off and inform the romanian human-rights specialists, that I don't need the 3 pairs of concrete boots ...

    Holy Sh*t ... Michael!

    I have to agree... I seem to remember going over this in a university "liberal arts" course (you know, one of those non-technical courses they forced us to take in college - Philography Science or something like that ;) ). Its that age old question:

    Is it OK to cry "Corporate Take-Over" in a crowd at the LAVA Forum.

    Just think if it weren't the weekend? The stamped alone might have hurt someone!

    :headbang:

    -Pete Liiva

  14. Is that more along the lines of the usage that you were thinking of?

    Gary

    Gary,

    Well, I would agree with you that in your application, a binary search would be far more efficient, especially since your timetag data already comes "pre-sorted" so to speak. In fact your application would be the "poster child" application for exactly a binary search! (especially since they are asynchronous timetags!)

    The usage I've applied the 1-d threshold on has been "unsorted" arrays of voltage waveforms from an oscilloscope. In such a case, there is no guarantee that the threshold might be crossed at any particular point in the array, and quite possibly crossed several times. A binary search would trip at the first occurrence it got to, which would not necessarily be the first occurrence in the waveform sequence.

    I've actually used this function to get a Full Width, Half Max Pulse Width, by putting a pulse waveform through, having it find the first threshold crossing, then "reversing" the array and finding the negative going threshold, which has now become a "positive" slope via the array reversal.

    -Pete Liiva

  15. I'm not sure if I'm posting this in the appropriate forum or not...

    I use the Threshold 1D Array function quite often. According to the Labview Help description of this function, and based on my experience, it only works for sorted data.

    I just did a timing test, comparing the speed of this function to that of the standard sequential array search, and found it to be slower for array lengths of 500, 1000, 2000, and 10000. This tells me that, although the function only works for sorted data, it is using a sequential search, rather than a binary search. Why is this? Can anyone (from NI?) explain why the Threshold 1D Array function was implemented this way?

    I guess I'll be spending some time modifying my binary search vi and going back to my code and doing some replacing... :(

    Gary

    Gary,

    I've always interpreted the Threshold 1D Array function as more akin to a "Trigger Level", and I think that a binary search would be dangerous as such. In a traditional "signal processing" context, you would want to know the first time the "signal" crossed the threshold, and the only way to be sure of that would be do a sequential search for the "crossing of the threshold".

    Now, that having been said, I am somewhat surprised that a basic binary sort isn't a part of the standard labview tools in the array functions. Not that it would be a hard thing to do, at least for any given data type. It could be more "interesting" to do it as a "polymorphic" vi (something I've personally haven't had a need to play with... yet...). Perhaps the Open G guys have produced such a tool?

    -Pete Liiva

  16. Depend of Evolution; yes, for 97.7% this means for the majority is in 2-ply how you liked it.

    Somehow, I'm getting "flashbacks" to old, BASIC written ELIZA programs...

    Ohh... my... must... sit... still... until... spasms... sub.. side... :blink::wacko:;)

    -Pete Liiva

  17. Don't worry Pete, I'm right there next to you :D

    Another Fozzie (and Pete)

    AnalogKid2DigitalMan,

    By the look of your member name, you show all the "Signals" of being a Rush fan! They used to be my favorite band, back when I used to have a favorite band. I still very much enjoy listening to them. Perhaps Fozzie would have been a Rush fan as well?

    -Pete Liiva

  18. Here is what I came up with:

    You Are Fozzie Bear

    fozzie.jpg

    "Wocka! Wocka!"

    You're the life of the party, and you love making people crack up.

    If only your routine didn't always bomb!

    You may find more groans than laughs, but always keep the jokes coming.

    The Muppet Personality Test

    http://www.blogthings.com/themuppetpersonalitytest/

    Ouch! The truth hurts sometimes :rolleyes:

    -Pete Liiva

    (got jealous of other peoples posts! so I just HAD to edit!!) :P

  19. Nope - you have to drink water and watch all of us binge drink instead :) Mmmmmmmm... Shiner Bock....

    Hey! Colin's made us famous! Check out the link in his signature ;)

    Ahh, I see... the pledge becomes the designated driver! How "New Millennium" can we get? Cool! Can I be the designated drinker? :beer: :beer: :beer:

  20. Yes, my circuit modulates a carrier wave (could be any frequency, but happens to be around 17MHz), with a slowly varying sine wave (could be a voice signal). At the moment I do not transmit the FM signal and use a receiver to receive and demodulate the signal to obtain the original modulating signal. But I will do that in the future. Currently, I want to do the demodulation on my PC as I want to test my modulating circuit to see how much of the original sine wave I can get back.

    OK, now that I see more of the pieces, it makes more sense. Well, yes, under the circumstances, you would probably never be able to continuously "stream" data from a 17 MHz signal to allow you to do demodulation in post processing, the throughput of the GPIB interface is just not there. Also, some care has to be taken (and often significant expense) if a continuous stream of such a signal for an indefinite period is sought. Oscilloscopes more often run in modes where they acquire, stop acquiring, then down load, then acquire again, so even if you had an interface that had the clean and clear 170 MBytes / second throughput you would need for transfer of your signal, a well designed double buffered acquisition system would still be needed to cleanly pass the information.

    Continuous data streaming of a <20KHz signal is pretty commonplace these days, by comparison! ;)

    For demonstration purposes, you will most likely, with your hardware, be restricted to gathering about just under 12 ms of data and then transferring that over the GPIB, then repeat until done. Unless there is some way to export your analysis to the oscilloscope. Some scopes can do some analysis and download the reduced data set, so this might be another thing to look for.

    Hope this helps some,

    -Pete Liiva

  21. Thanks for your thoughts. There are many ways of extracting or rather demodulating the frequency modulated signal. In my case I am interested in the zero crossings of the sine wave (the 17Mhz signal). Each positive going zero crossing corresponds to a total phase change of 2PI. The modulating signal varies the phase of the carrier wave and thus varies the positive zero crossings of the signal. After acquiring the sine wave I would hard-limit it in Matlab to make it a pulse train. Then all that is left is to differentiate the signal and I should obtain the original 8kHz signal after low-pass filtering it.

    I will try to make it work with while loops, and/or, using programing.

    Thanks for your help.

    sven

    Ps. I will post any updates.

    Sven,

    I was thinking about it while listening to the radio in the car this morning, that in theory what I was doing in the car seemed to be quite similar to what you seem to be trying to do. It would appear that if you had an FM (Frequency Modulation) receiver that could go down to 17 MHz (my car's FM receiver bottoms out at 88 Mhz ;) ) and a "sound card" capable of continuous recording, you might have something that looks like a solution.

    Just a thought... :lightbulb:

    -Pete Liiva

×
×
  • Create New...

Important Information

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