Transformée de fourier

Bonjour,
J'ai un signal que j'ai normalisé sous forme de tableau de sorte à avoir 10 000 valeurs, ce qui me donne un pas de 1 seconde. (en fait je n'acquière que 2048 points, et je complète mon tableau de zéro).
Je voudrais appliquer une transformée de fourier à mon signal, mais je ne trouve pas d'exemple simple de code qui utilise la transformée de fourier, et si je mets ma transformée juste à la sortie de mon tableau, ça ne me donne pas un beau pic, c'est que je dois manquer une étape.
Je suis donc à la recherche d'un exemple simple de transformée de fourier afin de pouvoir m'en inspirer.
Merci d'avance.

Bonjour,
Etes vous sur que vous devez obtenir un pic ?
Quelle est la forme du signal ? Avez vous calculé la transformée théoeique ?
Avez vous pensé a effectuer un fenêtrage ? (Hamming, Blackmann, etc)
Cordialement,
Da Helmut

Similar Messages

  • Image format... gif, jpg, targa

    Well our graphic artists says targa is the best image format to use with games etc.
    However, java does not support it?
    What format should we use? Jpg was said to be too slow and gif to support to few colors...

    RE: "A quantitative measure of lossiness is a useful
    thing." - there are various existing formulas, though
    there is a difficulty over a commonly agreed scale
    that can be applied to all instances, I think it's
    something like 'Cillic' - ? Can't find any info on 'Cillic'.
    And yes, 'Discrete CT' -hmmm, you seem to
    enjoy correcting people and putting people downNot true. You must not have read the part about "the only reason I'm correcting you is that the name is signicant". The "discrete" part is very important. If you would have typed something like "discrete sine transform" or something, I wouldn't have said anything, because I did know what you meant. And even if I couldn't figure out what you meant, I wouldn't have said anything about it any way because it wouldn't have mattered. It's like if you said "Fourier Transforms" were useful. I would have corrected that because "Fourier Transforms" and "Fast Fourier Transforms" are different things.
    Ballu ... -whoever is clearly a kid and quite
    inexperienced and you've really humiliated him.He made himself look ridiculous. If you don't want to take shit from people, don't act like a fool. People shouldn't let message board posts get to them that much anyway.
    BACK TO LOSSY:
    The lossy scale that I refer to is NOT quantitative -
    please read the earlier submissions. Poor word choice on my part. My bad.
    ... I will
    try and find a suitable resource when I get time - The
    original source was in a a textbook called
    'Multi-Media Technologies' and I couldn't recall the
    author if a free drink depended on it. I will get back
    to you on this.I look forward to it.

  • Human vibration frequency weightings

    Sound and vibration toolset includes audio weighting filters (A, B, C etc). I need human vibration filters, Wk, Wd, Wb, Wh etc to apply in the time domain to raw acceleration signals. I have the parameters required to specify the filters in the s-plane. They are broken up into high and low pass butterworth (I can cope with that) but I don't know where to start for the 'a-v transition' and 'upward step'. Any tips would be gratefully received!
    Thanks a lot for the help,
    Neil.

    I'm not sure about the a-v transition or upward step but you could use either the fourier transform or inverse fourier transform VIs to get your signals in the same domain.

  • Problème de détection de fréquences propres

    Bonjour,
    cela fait maintenant 3 semaines que j'ai découvert Labview pour automatiser une expérience, et je bloque sur une détection de fréquences. Je vous explique mon projet:
    J'excite un plaque vi un patch pietzoelectrique en faisant un balayage fréquenciel, puis j'enregistre via un vibro laser la réponse de cette plaque. Je peux donc visualiser les fréquences de résonnance. J'utilise ensuite la transformée de Fourier de la réponse enregistrée pour avoir un graphe amplitude/fréquence (le spectre) et non plus un graphe amplitude temps. Je cherche ensuite à faire en sorte que labview détecte les fréquences correspondant aux pics d'amplitudes du spectre. J'utilise pour cela le VI "peak detection", mais les valeurs obtenues sont étranges... alors que mes fréquences sont (visuellement) 24, 86 et 149 Hz, il me donne plus ou moins 12000, 3600 et 6800.... Je me demande donc s'il ce n'est pas un problème d'indexation... Quelqu'un aurait-il une solution à ce problème? Je vous joint ci après le VI que j'ai réalisé.
    Merci pour votre aide!
    François
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    sweep2.vi ‏132 KB

    Bonjour François,
    D'apres l'aide de la fonction Détection de Pics, la sortie Positions donne l'emplacement sous forme d'indices ce qui explique vos résultats.
    Voir ci dessous la copie de l'aide avec l'équation à utliser pour retrouver vos "emplacements"
    Bon courage.
    Cordialement,
    Eloise
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    LabVIEW Tour
    Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014

  • Extraire des données d'une FFT

    Bonjour,
    J'ai un VI qui me sert à échantillonner une tension alternative à 25000 Hz (à l'aide d'un accéleromètre, en fait un relevé de vibration), et je souhaite effectuer une transformée de fourier de ce signal afin d'obtenir un spectre et récuperer des valeurs spécifiques à certaines fréquences afin d'alimenter un tableau excel... (Valeur efficace de différents pics)
    une idée ?

    Bonjour,
    Pour effectuer une transformée de Fourier d'un signal, vous avez plusieurs possibilités, en fonction que votre signal soit représenté par un tableau de doubles, ou par une waveform.
    Vous pouvez utiliser la fonction FFT.vi, que vous trouverez dans la palette de fonctions Traitement du signal>>Transformées.
    Vous pouvez également utiliser la fonction Analyseur de Distorsion Harmonic.vi , que vous trouverez  dans la palette Traitement du signal>>Mesures sur Waveform.
    Cependant, ces deux fonctions ne sont disponibles qu'à partir de la version Full de LabVIEW. Si vous disposez d'une version de base, ces fonctions ne seront pas disponibles.
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Utiliser la fonction Refft ou fftex?

    Bonjour,
    Voilà le questionnement:
    Je mesure une signal et j'obtiens alors un tableau de valeur correspondant à 1 période du signal.
    Je souhaite enfait comparer ce signal avec un signal de référence et donc utiliser leur transformée de fourier. Quelle est la fonction la plus adaptée, refft ou fftex?
    Autrement, si j'utilise la fonction ReFFT je voudrais savoir si je peux écrire cela :
    TF=ReFFT(mon_signal, nbre_point, partie_im);
    ce qui impliquerait que TF soit un tableau lui-aussi avec par exemple : TF[2][5] pour avoir le 5 eme point du tableau de la partie imaginaire. Est-ce vrai?
    Vu que dans l'idée j'aimerai faire : diff=TF_mon_signal - TF_signal_ref;
    De plus, si c'est le cas, comment définir la variable TF ( type TF; mais quel type?)
    Le but de tout ça étant d'éviter le plus possible l'utilisation de boucles for pour calculer la différence entre les fft.
    Merci ,
    _trent_
    Résolu !
    Accéder à la solution.

    Bonjour,
    Merci d'avoir posté votre question sur les forums de National Instruments.
    A l'heure actuelle, la fonction ReFFT est classée comme obsolette.
    National Instruments ne vous conseille pas de l'utiliser pour vos applications.
    Notre recommandation est d'utiliser plutôt la fonction FFTEx pour réaliser votre programme.
    Vous pouvez d'ailleurs utiliser la fonction CreateFFTTable en conjonction avec FFTEx pour utiliser plusieurs fois votre calcul de FFT.
    J'espère que ces informations vous aideront dans votre développement.
    Bien cordialement,
    Guillaume H.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • 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!!!!!!!

  • 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.

  • 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?

  • 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 of rectangle function

      We know that the fourier transform of a rectangle function is  a sinc function.Now I want to use Labview to simulate
    this process.How to do it? I input a rectangle function to FFT vi ,but the result is not a sinc function,why?

    With the FFT you are attempting to approximate the FT of a continuous function using discrete sampling for a finite time.  The approximation is "perfect" when the continuous function is bandwidth limited.  The Rectangle function is not, you require an infinite number of terms in its Fourier series approximation.
    A simple way to imagine the relationship between the finite sample on which you are going to perform the FFT and the continuous function you are approximating is to periodically extend the finite sample in positive and negative time.  When you put in a simple rectangle pulse into the FFT you are seeing the approximation to the FT of a square wave with some duty factor, not of a single pulse.  This probably explains most of the confusion.
    The details of the relationship between the FT of a continuous function and the approximation via a discrete FT is detailed and subtle and you should probably study a signal processing or mathematics textbook.

  • 2D Fourier Transform of an image to remove grating

    I'm trying to remove a grating that has been added to my image:
    My plan is to perform a 2D Fourier transform of the image. The grating will come up as a block signal, so that's an infinite series of frequency, growing weaker as it goes to higher and higher components. So I want to block those frequences whilst at the same time preserving my image as much as possible (I know this is kinda contradictory).
    Unfortunately, I am failing at the first step: transforming it to the Fourier domain. This is my code:
    When I try to run it I get this error.
    Anyone have any ideas to fix this?
    Attachments:
    Fouriertransform.vi ‏12 KB

    Hi Choisai,
    I found a Knowledge Base that possibly will help you, check the following link: http://digital.ni.com/public.nsf/allkb/12039EFD213​AD08086257B6E0030FDC6?OpenDocument
    One more thing.. I do not see anywhere assigned path to get the image, which in future will throw an error for sure.
    Best,
    Bozhidar

  • How to simulate discrete fourier transform using CMOS on multisim11.0

    Please tell me how to simulate discrete fourier transform(DFT) using CMOS implementation in Multisim 11.0..

    vlsi,
    If I am reading your question correctly, I think this is more of an issue of IC design rather than how to use Multisim (the circuit you describe is likely very complex and would involve many CMOS/transistor components).   If you have an existing or partial circuit already ready to start with, the group could better assist with how to implement or use in Multisim for simulation.   Although it is possible to model a comlex digital parts with CMOS equivalent logic and gates, most of the more complex digital parts in Multisim are modeled in XSPICE, which allows the behavior to be described by a truth table and timing descriptions and the pins are modeled in SPICE.
    However if you want to use a predefined DFT algorithm inline within a circuit simulation, you can likely use with a custom LabVIEW VI, we have several Fourier Transfer algorithms in which you could process a signal coming from a circuit simulation in which the transform and simulation could be run together.
    http://zone.ni.com/reference/en-XX/help/371361B-01/lvanlsconcepts/discrete_fourier_transform/
    There is an example of how this can be done with an FFT (which is a type of DFT)
    https://decibel.ni.com/content/docs/DOC-7438
    Another idea is to use our co-simulation technology in Multisim v12 together with the LabVIEW Control Design tools.   The LabVIEW Control Design package has several discrete signal processing algorithms built in and you could use them together for very precise mixed signal co-simulation between an electrical simulation and a discrete processing algorithm.
    http://www.ni.com/white-paper/13663/en
    Regards,
    Pat N

Maybe you are looking for

  • How to stop multiple auto-switching to address bar every time I open a new tab and try to type something anywhere outside of address bar?

    How to stop multiple auto-switching to address bar every time I open a new tab and try to type something anywhere outside of address bar? Like something just wants me to use that embedded search when u type something not-web-address in address bar an

  • Error message "No internal transfer number found"

    Hi everyone, I'm trying to setup the self-billing- (ERS)-functionality for scheduling agreements.  The problem I'm currently facing is that I created a test-iDoc which while being processed causes an error. The test-iDoc is sent out with the basic ty

  • I've recently upgraded to OS 10.6.8 and now can't get my Corel Painter IX to run.

    :II've recently upgraded to OS 10.6.8 on my desktop and have had to reinstall all my software programs. I can't seem to get my Corel Painter IX to run. It appeared to install correcly and will open momemtarily, but then stops the process and shuts do

  • Lines in all prints

    My company utilized a M1530MFP to print out shipping documentation (Packing slips, Sales orders, etc...) After about three months of owning the printer, with the factory cartridge, the printer began printing lines with a 60% full cartridge. These lin

  • TDMS Error -2503 at Open TDMS

    Hi everyone, I'm facing a wierd error since yesterday. I'm recording data on a PXI using the Embedded Data Logger Custom Device (VeriStand), before yesterday, I was able to retrieve the TDMS File (.tdms file only, not the .tdms_index file) and open t