Measuring Superimposed Frequencies on a Sine Wave

Hi,
Just looking for advise on the best way to measure superimposed frequencies on my raw data. The raw data (voltage versus time) is ultimately a noisy sine wave with a frequency of 1Hz. I need to determine where the noise is coming from, i.e. is it vibrational, electrical or surrounding noise, hence requiring the frequency of the noise if possible.
Any advise on the best way of filtering the data would be appreciated. Currently I am using a butterworth filter with a cutoff setting of 1.5Hz. The original data was sampled at 1.5KHz so the noise was measured and so could be filtered during postprocessing.
Also when filtering I don't want to loose important data i.e. sudden peaks or drops.
Regards,
John.

John,
Have you tried spectrum analysis of your data? That will give you the frequency content of the signal plus noise. One peak will be at the 1 Hz sine signal and other peaks will correspond with the supeimposed signals. With a 1.5 kHz sampling rate you would get information on frequency content up to the Nyquist frequency of 750 Hz. A peak at 50 or 60 Hz will likely be power line frequency interference. Gears, bearings, and motor armature slots produce characteristic frequencies which are related to the rotational speed.
Lynn

Similar Messages

  • How do i measure the frequency of a sine wave using a field point counter module

    I need to measure the frequency of the sine wave using field point. is it possible and if yes how. do i need to convert the sine wave signal to square wave. Please let me know.

    It probably would be easiest to convert the sine wave to a square wave with a simple external circuit and then use a counter module to measure the frequency. There is a shipping example in LabVIEW that shows how to measure frequency with a FieldPoint Counter module.
    JRA

  • How to measure relative phase of several sine wave inputs

    I'm using a USB-6229 to acquire 10 sine waves, and I would like to output their rms amplitudes and relative phases.  The rms amplitude is not a problem, but I wasn't sure how to go about determining the phase of one signal relative to another.  Do I need to use the Frequency Response analysis step?  Thanks.

    Hi,
    There are some functions you can use to measure the relative phase. You can either measure the phase of every signal related to another one using like you said: a frequency response function step. Using one of these to functions might do the job: “Frequency Response, Express VI” or “Frequency Response Function (Mag-Phase).vi, if you are working in LabVIEW. The first one of these functions "Frequency Response" is also found in signal express and is the one I think you are refering to.
    Although this functions is use for a stimulus response approach they will give you the relative phase of Y with respect to X, “Typically, time signal X is the stimulus, and time signal Y is the response of the system.  in signal express your options is the frequency response step.
    I would also like to point you to some references that might serve you as reference when doing spectrum analysis: An Overview of Frequency-Domain Measurements and FFT Analysis.
    Message Edited by Jaime F on 02-06-2008 11:42 AM
    Jaime Hoffiz
    National Instruments
    Product Expert
    Digital Multimeters and LCR Meters
    Attachments:
    frf.png ‏37 KB

  • How can I calculate the frequency of a 2-4Hz three phase sine wave in 50msec?

    I want to calculate the frequency of a sine wave using either all three phases or just one, but I want to know the frequency after 50 msec, I don't want to have to wait for a full period.

    I have a mathematically sound suggestion but I do not know how well it will work in application. Most period measurements measure the time between a full period or several periods to eliminate the error introduced by the measuring device. Essentially the device error is made insignificant.
    Mathematically you can do much more but there is a tradeoff between recording less information and knowing (or assuming) some values. For instance, if one knew the amplitude and could calculate the derivative of the signal, one could calculate the frequency. A sine wave can be represented by the function: A sin (BX)=C , where A is the amplitude, B is the frequency, C is the present measured value. If the equation is solved for X, we get: X=(sin^(-1)(C/A))/B. The d
    erivative of the first equation is AB cos(BX)=C. If the equation for X is now substituted into the second equation, we get, AB cos(B (sin^(-1)(C/A))/B)=C. Solving for B we get B=C/(A cos(sin^(-1)(C/A))). Remember, we already know A and C, so we are done.
    Practically every step and assumption in the above argument introduces possible error which will affect the accuracy of the frequency. Unfortunately it is a trade off and that is why at least a whole period needs to be measured to get an accurate frequency.
    Jeremy Braden
    National Instruments

  • Outputting sine wave to motor -- While loop placement?

    I'm having trouble creating a basic Labview program to drive a motor with a sine wave. I'd like to output one sine wave at a time to my motor and look at the response to eventually get a Bode plot. I'm using the Sine waveform VI and I've got a PXI-7358 controller card.
    I'm having trouble figuring out what goes in the while loop. I'd like to output, for example, a 10Hz sine wave to my motor. But when I create a VI as shown below (& attached), my output waveform frequency is nowhere near my input frequency. When I type 10Hz I get no movement out. At 10.01 Hz input the motor oscillates at a few Hz, and at 10.1Hz input the motor oscillates wildly. I don't think it's a problem with my motor or my PID settings, because even when I eliminate the motor commands altogether (second figure below), I get the same unpredictable relation between the frequency I type in and the Waveform graph.
    It seems that the output waveform depends on some sort of difference between the while loop execution rate and the PXI-7358 command generation rate. It seems to me that the Sine Waveform.vi should be outside the while loop, but in that case the Load Position.flx only seems to grab one position. Is there a good way to have direct control over output frequency of the sine wave?
    Attachments:
    one_axis_move11.vi ‏20 KB
    one_axis_move12.vi ‏12 KB

    matthewg,
      Dennis is right, let’s keep this to one forum since it is the same topic of discussion, and I will address some of the issues with your code there.
    Chris_G
    Sr Test Engineer
    Medtronic, Inc.

  • LabVIEW FPGA Sine Wave Generator Reset Input Behavior

    I would like to know what the output from the Sine Wave Generator express VI is while the reset input is true, and what happens to the output immediately after the reset input is set false.
    I need to generate a regular sequence of positive half-cycles of a sine wave, with an arbitrary delay between them that is not related to the actual frequency of the sine wave. So my plan is basically to periodically fire a trigger in the fpga software that resets a sine wave generator and directs its output to an analog output until the sine wave goes negative, at which point the analog output is set to 0 until the next trigger.
    Thanks

    Muchas gracias por responder steve.bm
    El problema que tengo es el siguiente, estoy desarrollando un proyecto en el cual uso los conversores DAC y ADC de la  tarjeta FPGA Spartan 3E para lo cual use como base el proyecto que esta subido por la NI que se encuentra en uno de los enlaces que me dejaste,( Lesson 8 - Linking Existing VHDL Code from WebPACK into LabVIEW FPGA) del mismo solo modifique para usar el ADC y el DAC mediante el cual adquiero una señal senosoidal y la tengo que reconstruir, el problema es que como uso un generador de señal de laboratorio al ingresar la frecuencia de muestreo para obtener una buena reconstruccion, la frecuencia se baja lo cual en el proyecto real no podra pasar ya que la frecuencia ya en proyecto final la adquiero de la red electrica publica pero ahora para pruebas estoy con un generador, la verdad no se que pasa porque tiene un retrazo la señal.....
    Te parece si te puedo dejar mi proyecto subido en enlace para que lo revices ??

  • How to measure time difference between zero crossing of a sine wave and rise time of a pulse on a same graph?

    I have a 50Hz sine wave and a pulse signal on a same graph. The phase difference between two is between 0-90 degrees.
    Now I need to calculate the time difference between (when the sine wave crosses zero volts) and (when the pulse rises). The frequency will stay approximately same for both signals.
    The application is for a three phase generator. In simple words, when the time difference between the zero-crossing of sine wave and the pulse rises increases, that means that the load on the generator has increases.
    I am a beginner user of LabView (version 9, 2009), maybe it is a very simple problem but I've been pulling my hair out for the last few days and coudln't figure anything out. Any help would be greatly appreciated. I am using DAQ USB-6008 to measure these voltages and pulse from the generator and a sensor
    I have attached a jpg (a graph that i just made with excel to explain). The time 't' is what I am trying to measure
    Cheers
    Awais 
    Message Edited by awais.h on 03-30-2010 11:20 PM
    Message Edited by awais.h on 03-30-2010 11:21 PM
    Solved!
    Go to Solution.

    Hi
    Thanks for the code but I'm afraid it won't work. Like you said the probability of choosing a value that is on both graphs may not happen. This is something that I would like the code to do automatically.
    But I did use the previous code posted and made some modifications to it and it seems to work perfectly. Now the next thing is to be able to get just that one value that tells you the first time difference.
    Here is what I get using that code.
    As you can see from the t Values. I only need the one that is highlighted. If there is a way to filter out the rest it would be great.
    I was thinking of a while loop and as soon as the value is higher than 3E-5 it would store the number and stop the loop, but I'm not too familiar with arrays in labview.
    Here is the the code modified.
    As you can see, it wasn't that big of a modification and it still is your code.
    I will keep trying.
    Thanks for the help
    Attachments:
    FinalShockSpeed.vi ‏55 KB

  • Measuring Sine wave deformation

    Hi Folks.
    I am trying to measure the signal deformation coming from a scope. Its a typical sine wave that distorts as the input increases (shown in the attachments). I was initially just going to subtract a known signal from the recieved signal to give the difference. The point by point error is to big for this. I am also trying to determine the slope over time and the rapid change of slope would indicate the point. However point by point calculation of the slope gives too much error to. Is it possible to generate accurate slopes or is there a function that determines if a signal is non-sinusoidal??
    Thanks,
    Mark.
    Solved!
    Go to Solution.
    Attachments:
    Sine1.jpg ‏26 KB
    Sine2.jpg ‏26 KB
    Sine3.jpg ‏26 KB

    For a quick visual check you can use the tone detection vi and export the residual signal, maybe the rms value of the residual is a nice value (THDN)
    Measures of deformation of a periodic signal are (usually) often done in the frequency domain and called harmonic distortion. There are also vis that already can do that for you.  (SINAD) . The THD level is usually used.   Look under signal procesing - wfrm measure
    Your traces look like a 1g steel ball accelerometer calibration to me.  
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • Measuring lag between input and output sine waves...

    Hi,
    I am using a Labview VI to control an array of servo motors, each receiving a sine wave input (with different phase offsets for each servo). I'm using a NI USB-6229 DAQ system to monitor their movement via a wire that I've soldered onto each servo's potentiometer. I've written another VI that recieves both the initial sent signal and the returned DAQ signal and plots both on a waveform chart. Both signals show up on the plot as expected, with an obvious phase shift between them. I'm having problems accurately measuring the phase shift, and I'd rather have an automatic method that gives accurate numerical values instead of a more qualitative visual method.
    So far I've tried to use triggers and peak to peak comparisons, but I've been having problems getting results in real time. My incoming signals are time stamped, if that helps. Is there a quick and easy method to extract phase shift data from two sine waves on a waveform chart?
    Thanks for the help...

    Since I work with lock-in amplifiers I came up with this. I guess it will work in your case. This method has some limitations. It will work up to 180 degree. It also measure absolute phase lag. You can not say if the signal is leading or lagging. But in your case it will always be lagging. I posted a VI showing the method in another discussion. Here is the link. http://forums.ni.com/ni/attachments/ni/170/409516/1/demo_v2.vi. Since your DAQ unit do not have simultaneous sampling you will get a small phase error due to inter-channel delay. This is also true if you use the FFT method. What is your signal frequency and which samplerate do you use?
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • Measure Every Peak Value Sine Wave

    Hi 
    I have a sine wave that has an average peak to peak value of 1.2V. The sine wave has a dc offset of around 2.5V. Each cycle in the sine wave varies in width. 
    I can feed the signal into the express vi to tell me the maximum Positive pulse peak value and minimum negative peak value. 
    Unfortunatly i would like to measure the Maximum and Minimum Positive Pulse Peak value and Maximum and Minimum negative peak values. 
    Im a little bit lost on how to do this. 
    the frequency of the signal is around 10-20 hz. 
    If i could get the Postivie peak value for every cycle and negative peak value of every cycles stored in two seperate 1d Array i could then search the 1d array for maximum and minimum. Problem is i am unsure how to find each indiviaul peak value. 
    i have attached my code. I am using at 9229 to monitor the signal. I am sampling at 10000 samples per second and recording about 2 seconds of data.
    Thanks 
    Attachments:
    Sine Wave Hystersist Calculator.vi ‏88 KB

    I tried using the you put into the VI and unfortunatly it doesnt work. Im using a 20hz sine wave. I have set my threshold to be the dc offset of the signal so around 2.5V but this changes by around 20mv each time. 
    I have uses an Max and Min array function. It chucks out the highes Peak amplitude but the lowest peak amplitude is incorrect. It counts that there is over 2000 pulses, but that is impossible as there is only 20 high pulses. 
    Any more ideas or help would be great. 
    Attachments:
    Sine Wave Hystersis Calculator.ldj (1).vi ‏109 KB

  • Sine wave frequency error

    Hi! I'm pretty new to labview so any help will be appreciated!
    I'm trying to generate a 6-sine wave pulse using the attached generating and detecting vi. It all looks good, however, the frequency which I want the pulse to be generated ain't quite right no matter how I tweek it. For example, I keyed in the rate of generating pulse to be 1MHz in this case, but the detected signal is only 1 kHz (period = 0.001s). There should be no loss in this case. Other frequencies keyed in are also reduce by a thousand times. I think it is due to my Fs=1000 and #s=1000, because if i change my Fs to be 100 and #s=100, the detected frequency will be reduced by 100 times only. But if I reduce it, the resolution of my signal will be poor and I cant reduce it below 50 for a clear signal. Is there any way I can get the signal generated to be that which I typed in? Help!
    Thanks!
    Attachments:
    detect.jpg ‏48 KB
    generate.jpg ‏29 KB
    graph.jpg ‏118 KB

    Hi, I am using PXI-8331 with analog output PXI-6733 and analog input
    PXI-6133. I am generating voltage signals and collecting voltage
    signals as well.
    The problem I have is that when I
    intend to generate a 100kHz, 4 sine wave in a hanning window pulse, the
    received signal tells me that the signal generated was actually only
    100Hz (reduced by 1000 times) for Fs and #s of 1000, and it will be
    1000Hz (reduced by 100 times)  for Fs and #s of 100. What I hope to
    achieve is for the detected signal to show me that the actuated signal
    is indeed that which is keyed in. I am currently using DAQ assistant to
    control the frequency of my windowed sine wave. Is there any other way
    to go around doing it?
    On a side note, yes, I understand
    Nyquist theorem. I tried using 10kHz generating signal and 1MHz
    sampling frequency (100 times difference) for signal detection, but the
    results is exactly the same as that received using 10kHz sampling
    frequency and thus I believe there should be something I am not getting
    quite right about my signal generation since the frequency is always
    reduced by Fs times and I can't change its period.
     I have attached the vi I am using. Thanks a lot for your reply.
    Attachments:
    combining_testing2_6_2_testtest.vi ‏395 KB

  • Sine wave frequency problem

    hello
    i have some part of my program that is not working well.
    the idea is to sample a 2V sine wave of various frequency and record down the max and min values
    by right i should get around +2 and -2 for my max and min values
    however at frequencies multiple of 5(5k,10k,15k...) i get a reading of 0.0628215 for my max and -0.0628215 for my min.all other frequencies have no such problem.
    i tried changing the sampling time and rate but i still get a close to 0 result for frequencies at multiples of 5.
    may i know what causes the problem and how can i resolve this?

    Hi
    It may sound silly - but do you acquire data fast enough?
    Just have a look at the Nyquist Theorem.
    Thomas
    Using LV8.0
    Don't be afraid to rate a good answer...

  • How to dynamically adjust Frequency, Phase and Amplitude for a Generated Sine Wave in C/C++?

    Hi,
    I wonder if anybody know how to dynamically adjust Frequency, Phase and Amplitude for a Generated Sine Wave in C/C++? This is a part of my project: I need to dynamically generate a sine wave voltage signal by some calculation using the data from a simultaneous analog input and another signal.
    Your help will be appreciated so much!
    Marlon

    Hello Marlon,
    Here is an example of changing frequency and ampliude for an E-series device in Labwindows/CVI. The programming should be similar in C for your S-Series device. As is says on the linked webpage above, this process is going to be very processor intensive since you will continually be creating a buffer.
    Nicholas C
    National Instruments
    Applications Engineering

  • Unable to read the frequency from this output sine wave of amplitude VS time

    my programe reads through a labjack programe works up until the LJ stream graph process reads to "scaled data v's seconds" graph.where it outputs a sine wave (amplitude vs time)
    for some reason the "freq. amp." analyser won't read the frequency correctly. when i run the programme it outputs a frequency of zero.
    note: the amplitude is reading correctly
    see both programmes attached..................
    Attachments:
    problem.vi ‏77 KB
    LJstream_graph_processing.vi ‏46 KB

    I don't really see the utility of this VI, however, the variable "scan rate", of the "LJstream graph processing", it's an arbitrary value, why?...
    What is the idea with these VIs?, tell me more, please.
    Bye.

  • How to get, write the sin wave frequency

    hey,
    How can I get the sin wave frequency from sin wave?- on the diagram. Problem is about saved this parametr to the fille. I have just only last one. I would like to have fequency adequate to the Im and Re  (Im, Re: parametrs witch are saved correctly) 
    Best regards,
    Marek

    Your program will not work because you because many of the functions you use must have timing information. And that information is not included by you as programmer. You have just included some functionality without reflecting over what these functions do and what they need as input. A programmer must have attention to details. You can not just throw out some VIs in a happy go lucky style. 
    Much of your problems is caused by the pesky dynamic data type. This is something that NI have glued ontop of Labview using very cheap glue. The whole concept is just flimflam and you should avoid using it.
    I can see you are a beginner. And that is OK we have all been there sometime. A very powerful function in Labview is the online help option. Then you start a new Labview session go to help in the toolbar. Then select "show Context Help" (ctrl+h). Then in doubt use the "detailed help option" in the online help window.
    I have included something to push you in the correct direction. As you can see many of red dots at the connector panes is gone. That is a good sign. Post again if you have more problems
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)
    Attachments:
    some help.vi ‏11 KB

Maybe you are looking for

  • CRM fields not populating in BPS layout for opportunity Planning 0crm_order

    Hello Support,                                                                                We are using SAP CRM 5.0 SP09 with BW 7.0 SP 09.                                                                                When creating an opportunity

  • How to Activate Viber on iPhone and iPad

    Hi, I try download Viber to iPhone and my iPad mini. It work only on 1 device. Every time when is Viber activated on iPhone and I try to do it on iPad iPhone automaticly delete activation on and then Viber work only on iPad. If I will try to activate

  • Error validating xml with xsd schema on JSDK 1.4

    Hi All, Asked to me do it a Web Service client in Java and validate its xml answer with an xsd file using 1.4 plataform. I googled and I saw many samples to 1.5 plataform, and few samples to 1.4, but anyway I tried to do what they asked to me. I got

  • One of my disks broke and want to install from backup

    Hi I have a large Lightroom catalog and one of my external hard drives stopped working. fortunately I have a backup of the pictures, but I have a lot of keywords assigned to many pictures in the broken drive. How can I fool Lightroom into believing t

  • MAKING THE TIMELINE EXPORT WIDESCREEN

    Hey Guys: I've been working on different settings for a while and can not seem to find the right combo. I have DV NTSC footage that was shot 16 x 9 (widescreen). I take those clips after importing and try to put into my timeline. I set the timeline s