Surface graph of a Fourier Transform

Hi there -
I want to make a surface graph of my Fourier Transform. My z-axis should be the amplitude coefficients, My y-axis should be Time and my x-axis should be Frequency. However, when I use the FFT vi I only get a z matrix of one column. Yet the surface graph VI requires a 2D array for z. How can I account for this?
Thanks
Cameron

Duplicate post
See http://forums.ni.com/ni/board/message?board.id=170&message.id=193793&jump=true

Similar Messages

  • Fourier Transform of an Exponentia​l Function

    ok. this is something which i had tried earlier. I'm supposed to do a fourier transform of this signal.... exp(-alpha*t) where alpha is greater or less than 0.. the upper limit is inf and lower limit is 0. the waveform i got is a straight line, and there's this error -20003 i.e number of samples > 0.
    I thought I had already defined the number of samples? Is that anything which I had missed out? Please see attached.
    Attachments:
    FT for real decaying exponential (eg 3-24) test v02.vi ‏25 KB

    I cannot find your function exp(-alpha*t) anywhere in your VI. -- Where should I define this?
    On the block diagram!
    Where do you enter alpha? -- As above.
    Maybe you want to add another control to the front panel.
    Quote: "... where alpha is greater or less than 0...". Is that the same as "where alpha is not equal 0"? - Nope. Sorry poor definition there. The equation applies only when alpha is Smaller or equals to 0
    Are you sure? So why would the function have negative alpha in the formula? A more reasonable assumption would be that alpha is positive and thus "-alpha" negative.
    I assume that "t" is probably related to the array index. However, you are taking the plain exponential of each array value instead. Why?  To reflect the original waveform into the waveform chart.
     You talk about an exponential function, but you actually generate a sine function, which is not even mentioned in the problem description. Could it be you want a sine function with an exponentially decaying amplitude?
    Why do you integrate? As the question goes, I need to find a decaying exponential over time. That's why I integrate the function.
    Integrating a function does not generate a decaying exponential. Makes no sense!
    What is the purpose if the derivative without signal input? Don't get your question
    In the lower right of your diagram you have a second graph terminal connected to the output f the derivative function. There is no input wired to that function.
    Why don't you put indicators on the error outputs? Alright, will do that.
    What's up with the blue diagram constants. Make them orange to avoid coercions. - May I know how I can do this?
    Easiest would be to just delete the constant, then right-click in the desired function input and select "create constant". Now you have the correct representation, guaranteed.
    If you later want to change it, right-click the diagram constant and change the representation.
    LabVIEW Champion . Do more with less code and in less time .

  • Fourier Transform and the DAQ Assistant

    Hi,
    I'm trying to take the fourier transform of a analog voltage measurement in Labview 8.6 and I'm having a problem with the data.
    The measurement is an anaolog input voltage signal taken using the USB-6211 box.  I am acquiring the signal on ports 15 and 16 (differential) with the DAQ Assistant at a rate of 5KHz, 200 samples.  The setup works perfect thankfully, and a very nice waveform plot is generated on the VI.  I would now like to add a fourier transform of this plot to do some frequency analysis.
    I found the FFT function, but when I tried to add the DAQ output to it, I got an error about dynamic data.  It takes me to a screen which I don't understand about dynamic data conversion, and I'm not sure what to do from this point.  My FFT graph is basically just a flat white line, which is wrong.
    How can I just take the basic fourier transform of a waveform in this setup?

    Hi
    Your thinking is not bad. You have only some scaling problems. You may toy with the vi I am sending. Change the log/linear control and see the result.
    You will find all information you need here http://zone.ni.com/devzone/cda/tut/p/id/4541 and http://zone.ni.com/devzone/cda/tut/p/id/4541. The dt value is the reciprocal of the sample frequency(1/x) The unit is second, and it will give you the time interval between two samples.
    Also note how I use the "Dynamic To Waveform Array.vi" to convert the dynamic data. This VI is not documented by NI, but you find it here ...vi.lib\express\express shared\transition.llb\Dynamic To Waveform Array.vi
    Good luck
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)
    Attachments:
    Spectrum Analyzer.vi ‏32 KB

  • After fourier transform

    Hi all, A simple question do ask. I have this input signal which is being generated by Signal Generator by Duration.vi. I got another output signal generated after applying the Fourier transform to the signal above.
    I believe the signal generated by the first vi is to be a signal in the time domain, and the signal after applying the fourier transform, I get a waveform in the frequency domain. Is there any way where I can view the waveform under the same waveform graph?
    Thanks a lot in advance,
    Gareth

    Hello Gareth,
    Have you taken a look at this thread yet? It is about showing two waveforms on the same waveform graph. Briefly, you will need to use the Build Array function to combine the two data signals together (e.g. if you are using ExpressVIs, combine the two Dynamic Data Type outputs) using the Build Array function, and feed it into the graph. Some properties of the waveform graph needs to be modified to show separate axes for each signal.
    While this is technically possible, it might not be a very feasible idea as the x-axis will be common to both waveforms. Thus, you might not be able to view both waveforms clearly at one go. I have attached an example in this post. "Bothsignals.jpg" show both the time domain and FFT signals together in the same graph. However, if we zoom into the green area, we can see the actual time domain signal ("timedomain.jpg"). The time duration is about 100ms. But for the FFT, the x-axis should represent frequency (Hz), and is centered at 50Hz, which is much bigger than 100milli.
    Thus, I think it might be a better idea to separate the two. But this is a personal view.
    Best regards,
    Victor
    AE, NI ASEAN
    Attachments:
    bothsignals.jpg ‏148 KB
    timedomain.jpg ‏163 KB

  • Fourier transform coefficients

    I have a ser of a biomedical signals that I want to get their fourier transform coefficents and compare the coefficents. however when i use the FFT block in labview i only get the ooutput as a graph. is there a method for getting the coefficents of the fourtier transform?

    i have attached my vi and the two bocks im trying tou use for FFT but not sure which one is more suitabe for my purpose
    i want to read the data file and then perform FFT to get the coefficents and categorize them into ranges to normal and abnormal signals.
    i will than use IFFT to redraw the waveform of the data set using DAQ. my problem is how to get these coefficients from the FFT blocks ex: a, bn, ,,, ect
    Thanks
    Attachments:
    Data.vi ‏51 KB

  • 3-d surface graphs in Linux LV 8.6

    I need to draw a surface graph from data where the z axis can take one of 14 values and the (x,y) coordinates range from 0 to 1, with no fixed intervals.  In essence, I have 14 horizontal slices of a surface, with 50 random surface observations on every slice.  How can I display this as a surface using LV 8.6?
    Earl

    Hi Earl,
    Unfortunately, the 3D graph object in LabVIEW uses ActiveX, which I'm sure you know only works with Windows. However, there some work arounds that others have posted in these other threads:
    http://forums.ni.com/ni/board/message?board.id=170&requireLogin=False&thread.id=186413
    http://forums.ni.com/ni/board/message?board.id=170&message.id=259968&requireLogin=False
    http://forums.ni.com/ni/board/message?board.id=170&message.id=84789&requireLogin=False

  • Why not use Fourier transforms for filtering?

    Are there any resources for constructing filters using discrete Fourier transforms (DFTs)? Or is it as easy as it seems. For example, for lowpass filtering I obtain the DFT of my signal, zero out components above the selected cutoff frequency and then transform back to get my signal minus the high frequency (noise) components. It seems to behave correctly for the signal I've applied it to, but am I missing something. Upsides would appear to be (1) no time delay between the input and output and (2) the filter is sharp with no transition band. Downside is that this method is slower than using impulse filters, but are there other upsides, downsides, or considerations I'm missing?

    The technique of filtering using frequency domain truncation and IFFT is used in specific areas where computation time is essential (to avoid the time domain convolution with a long impulse response), like image processing. However the technique also has some downsides you should be aware of.
    The frequency domain filtering performed on a data record is totally equivalent to a circular convolution made on your time signal with the impulse response of your ideal low-pass filter (typically a sin(x)/x function). The fact what we are doing a circular convolution will result in unwanted artifacts and you'll see some "parts" of the beginning of your signal at the end of the filtered signal and vice-versa.
    Try for example to create a short signal (like a sharp pul
    se) and extend it with zeros. After filtering you will see a sort of "pre-shoot" of your original signal at the very end of your signal. If you then rotate your time signal you'll discover that the signal is actually continuous (in a circular way).
    You can reduce the problem by, for example, adding "some" zeros at the beginning and at the end of your signal (zero-pad) before your filtering operation (before the FFT) and then remove these additional samples again from you filtered signal (after the IFFT).

  • How to create fourier transform properties using labview

    Hi everyone
    i am a new user to Labview and i only have 2 weeks left to complete an assignment.
    This assignment involves the implementation of the various types of fourier transform properties using Labview. These properties include linearity, time shifting, frequency shifting, time scaling,
    I do not really know how to implement them using Labview
    PLS HELP!!!
    Thanks

    i am refering to the fourier transform properties listed below:
    A) time shifting
    x(t-a) ------- >  exp (-jwa) X(w) 
    For the time shifting property above, i have problem creating the exponential term using labview
    B) time scaling
    x(at)-----------> 1/a X (w/a)
    C) Time convolution
    Y(w) = F[h(t) * x(t)] = H(w)X(w)
    where * stands for the convolution operation and F stands for fourier transform
    Please provide diagrams if possible. Thank you
    PLEASE HELP!!!!!!!!  THANKS!!!!!!!

  • Facing memory error during shifting from 3d stem graph to 3d surface graph in labview 2010

    hello all,
    earlier I was using 3D Stem graph in labview 2010. Now we want to move to Surface plot for same data.when i am trying surface graph it shows memory error.
    I have  10240 data.
    I was using vector method in stem graph so now for Surface graph i have thought that i have to make matrics of 10240x10240 and its diagonal elements should be my Z co0ordiants.
    plz help me out here.
    thanks & regards, 

    hello mikeporter,
    thanks for reply.I am attaching my Vi. It has some error also.plz look into it.
    X and Y are my co-ordinates pairs.I will be having values for these and have to update for same.
    Attachments:
    Untitled 2_surface.vi ‏184 KB

  • Aren't -180° and 180° the same for a 3D parametric surface graph?

    Hi
    everyone,
    I need to
    plot some results using the 3D parametric surface graph and these 3 matrix :
    First
    matrix “theta” : Each column ranges from -180° to 179°    (180x360)
    Second
    matrix “phi” : Each line ranges from 0° to 89.5° (increasing by 0.5°)   (180x360)
    Third matrix “z” : 180x 360 matrix initialised to 7
    First and
    second matrixes are converted to a polar representation.
    My problem
    is that I reach my goal, a full red circle, only if my matrixes range
    from -180° to 180° and not when they range from -180° to 179°. Aren’t -180° and
    180° the same for this graph? I must be doing something wrong...
    Any help
    would be great,
    Thanks.
    Regards,
    User
    Solved!
    Go to Solution.
    Attachments:
    Forum.vi ‏671 KB
    Pb circle.JPG ‏20 KB

    Seems obvious that you need to have the first and last point the same in order to close the curve.
    A simpler, but equivalent example is a circle on an xy graph, Unless the first and last point coincide, you won't close the loop.
    LabVIEW Champion . Do more with less code and in less time .

  • LV 6.1, 3D Surface Graph sometimes collapses (doesn't work stably); plus blocks use of remotely controlled panel by LV run-time engine (error #26:"window.cpp", line 11518

    1) "3D Surface Graph" does not work stably; sometimes it changes its properties (e.g. plot style) without me doing anything prior to that; a couple of times it lost a complete sense so that I had to delete the graph and install it again
    2) I tried to remotely run a VI which contains a 3D Surface Graph in it. It turns out, the use of the "3D Surface Graph" somehow blocks the remote control over the panel. As a result of that, I got the following error message: Error #26: "window.cpp", line 11518 (with LabVIEW version 6.1).
    3) Is it possible to plug into the 3D Surface Graph a few plots at
    the same time since there is a built-in control "plot number" (somehow by bundling them up or putting into an array - I tried both but didn't work) or it can be done merely by use of 'case' structure preceding the Graph, where case structure decides which plot to pass into the 3D graph?
    Attachments:
    3D_Graph_ver_1.bmp ‏214 KB

    Hello mjoler,
    Thank you for contacting National Instruments.
    The following example will show you how to plot multiple 3D plots on a single 3D graph. Modeling your VI after the example may also alleviate the instability that you have been experiencing.
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B123AE0CBA19111EE034080020E74861&p_node=DZ52038
    As far as the error you are receiving, it's difficult to say what could be causing this. ActiveX controls embedded on a front panel sometimes do not display on a remote client because they draw and operate almost completely independent of LabVIEW. If possible, try remotely controlling your VI with a client computer that has a complete installation of LabVIEW. The error could also be a bu
    g. Try downloading the evaluation version of LabVIEW 7.0 from http://www.ni.com/labview. By doing this, we can determine if it is a bug in the older version that has been fixed in the latest version.
    Let me know how this goes.
    Matthew C
    Applications Engineer
    National Instruments

  • Passing data from Microphone to FFT (Fast Fourier Transform) Class

    I am quite new to Java and trying to find a way to use microphone and pass the data from microphone to a FFT Class and get the result back as one number (which will be the frequency). Because I am quite new, I am in need of some advice and description to solve this problem.
    I will be glad if anybody experienced on this issue can help me.
    Regards.

    You need to read a good bit about signal analysis before you tackle this.
    The FFT is an algorithm for the implementation of the Discret Fourier Transform (DFT). If you just perform an FFT of your data how are you then going to extract the frequency. For example, if you take the DFT of 1024 samples you will generate 1024 complex values with the to 512 pairs being complex conjugates of the bottom 512 pairs.
    If you just choose the frequency with the largest magnitude then you will suffer from 'windowing' effects. You will need first to apply a 'window 'to your data so as to minimize the effects of only being able to use a limited length of data.
    OK, so you have applied a window, performed the DFTand found the sample with the largest magnitude then how do you relate this frequency index to the real frequency?
    If you Google for Java FFT I know you will be able to find an FFT implementation but that is just the start. You need to understand the DFT and how to use it and what it's limitations are and how to relate the results to the real world. You almost certainly cannot get that information from a Java forum. Java forums are for dealing with specific Java problems.
    So! Go study some signal analysis before you start using the FFT on your microphone data.
    A few words of warning. If you download an FFT implementation, make sure you test it extensively before you use it on your real data. I have tested about 10 and there are some rubbish implementations out there.

  • Plotting data in a 3d surface graph

    I�m having trouble plotting data correctly on a 3d surface graph in my routine.
    The goal of the vi is to plot a 3d image of a region of interest (ROI) from an intensity graph. The user selects the ROI with the cursor from the Intensity Graph (top left plot). The vi shows the region of interest in the ROI intensity graph (lower left plot). The goal is to create a 3d plot from this ROI. The 3d plot appears on the right.
    The problem is that the 3d plot seems to shift the values of the data if data is selected anywhere other than from the 0,0 region of the Intensity Graph. If the user selects data from 0 upwards along the y-axis or to the right along the x-axis, the data plots fine. When the user selects data from the
    center of the plot the data shifts off the 3d plot. The data is not missing. It is shifted. You can actually see the values when you left click and change the view of the 3d plot. The data appears as individual points off the surface graph. Each data point is the correct z data value. The scale on the 3d axes adjust correctly.
    I've attached the routine below in the form of an llb file. The correct version of the main file is "mouse_to_select_area_hamilton4_laura". Do not run the main "mouse_to_select_area_hamilaton4" as it contains an error.
    Attachments:
    Mouse_t1.llb ‏557 KB

    I have the same problem with one of these graphs. I have a surface plot that has been normalized to zero. However, the data is not centered on zero when plotted. I have an X and y vector input to the graph, it doesn't help. I have looked at each column of data and verified programmatically that the mean is zero of each column. There are gobs of data (some are 1 - 2 Mbytes big). Can that cause this? I use other graphs and a polar plot within the same application, they all look fine. I did get the 3D graph to plot correctly once, but the X vector values weren't displayed correctly (my X vector range is from .5 to 240 inches, the graph displayed 0 to 117 - which was the number of inch positions, not the inches positions themselves).

  • Real Fourier Transformation: confusing phase spectrum

    When setting sample rate and block size both to 1024, the Real Fourier Transformation of a sin-wave with Frequency=1 and PhaseAngel=0 calculates the phase spectrum as displayed in the left part of the image.
    Setting sample rate and block size both to 512, results in the phase spectrum as displayed in the right part of the image.
    There are a few things I don't understand:
    *) Why is the phase of frequency 1 equals -90, when I set the phase angel of the input signal to 0?
    My explanation is that the phases are calculated relative to a cos-signal. Is that true?
    *) Why does the phase spectrum contain more than one value, when the input signal just contains one single frequency?
    *) Why do the phase spectra (is this the plural of "spectrum"?) look different for different sample rates / block sizes?
    Maybe someone is able to answer these questions
    Thanks!
    Roman

    This is not my area of expertise, so, I went to one of the experts, and he gave me this. I hope that it helps.
    *) Why is the phase of frequency 1 equals -90, when I set the phase angel
    of the input signal to 0?
    My explanation is that the phases are calculated relative to a cos-signal.
    Is that true?
    The important information of the
    phase spectrum is how the different sine waves forming a signal are shifted
    in relation to each other.
    In a typical signal analysis you
    cannot force your analysis interval to be in phase with a specific sine
    wave,  so the offset of the phase spectrum
    is arbitrary.
    If you try to analyse the composite
    signal of several sine waves with different frequencies, you will see that 
    they all have the same offset. 
    I would also have expected an
    phase offset of 0 in this ananlysis, but it does not make a difference.
    *) Why does the phase spectrum contain more than one value, when the input
    signal just contains one single frequency
    At all other frequencies the amplitude
    value (and also the complex frequency value) should be 0. But 0 does not
    have a defined phase.  
    The values come from rounding
    errors and it cannot be determined by software whether there is a meaningful
    information.
    Typically you should only take
    those phase values into account where the corresponding amplitude value
    is larger than 0. 
    The software cannot determine
    whether this is inherent to the signal ar an artifact of the rounding errors.
    *) Why do the phase spectra (is this the plural of "spectrum"?)
    look different for different sample rates / block sizes?
    Same reason as above, different
    settings yield different rounding errors.
    - cj
    Measurement Computing (MCC) has free technical support. Visit www.mccdaq.com and click on the "Support" tab for all support options, including DASYLab.

  • Calculating magnitude of fourier transform

    Hi all,
    I'm currently working on a section of code where I've got to input a JPG, perform Discrete Fourier Transform on it and calculate the magnitude. I'm hoping to return the DFT as a float array
    My questions are:
    When the image is put in, the number of bands is set at 6. Does this represent R,G,B for real and R,G,B for complex?
    When I try and calculate the magnitude, I ideally want an array of floats returned to represent the magnitude of each vector, but I get 3 bands returned. Can I combine these into one band?
    Here's my code listing
    //add image to parameter block
    ParameterBlock pb=new ParameterBlock();
    pb.addSource('my buffered image goes here');
    pb.add(DFTDescriptor.SCALING_NONE);
    pb.add(DFTDescriptor.REAL_TO_COMPLEX);
    //Create the DFT operation.
    PlanarImage dft = (PlanarImage)JAI.create("dft", pb, null);
    System.out.println("Num bands="+dft.getNumBands());
    // Get the DFT image information.
    //Create the ParameterBlock specifying the source image.
    pb = new ParameterBlock();
    pb.addSource(dft);
    // Calculate the magnitude.
    PlanarImage magnitude = JAI.create("magnitude", pb, null);
    // Retrieve the DFT data.
    Raster dftData = magnitude.getData();
    //at line below i get 3 bands returned...can i combine these
    System.out.println("Num bands="+magnitude.getNumBands());
    Thanks for your help!!!!

    Would you like to create a greyscale image?

Maybe you are looking for

  • How to use a substitution variable in a load rule?

    I need to use a substitution variable in a load rule in a column, as I will receive a parameter to fix the Month and Year values within the data loading, could somebody tell me if this is possible. I put an expresion "&Yearproc" in the column value b

  • Apple logo displays then disappears

    I have an iPad 3rd Generation Model Number A1430. I am able to get the apple logo to display on the iPad's screen by holding the sleep and home button down for 10 seconds. The logo displays for about a futher 10 seconds then the screen returns to bla

  • [SOLVED] Pointer on second monitor distorted after XOrg 1.9 upgrade

    I updated to XOrg1.9 and my mouse pointer becomes distorted into a garbled rectangle of noise whenever I move to the second monitor. It's fine on the first. Using Catalyst drivers. I can still use it, but its a giant garbled blob... anyone else exper

  • Trouble with exchange. I can't add the accountedge to iPad

    Trouble with exchange. I can't add the accountedge to iPad

  • MacBook screen randomly gets very dark

    My MacBook is from 2007, so it is old and has its problems. I am currently in college and use my iPad primarily for school work. Thank God I got this iPad a few weeks ago because I did not know my computer would have such a huge problem!  When I turn