Inverse FFT's

I am using Fourier Transforms to filter a signal I have. I noticed that for one perticular waveform the waveform returned after the inverse transform was performed was messed up. In the course of finding the problem I step up the filter so it would not filter the signal at all. The waveform returned is still wrong. ie has real and imaginary part. I have used this program on a number of waveforms and never encountered this problem before. Anybody have similar experience?

You don't have to make your time data complex by adding an imaginary part that is zero, just use the Real FFT.vi. This VI takes your real time domain data and returns the complex spectrum. Likewise the Real IFFT.vi will take your complex spectrum in and return a real time signal that is equal your original signal.
The attached VI is doing this on a random input signal and it seems to work fine.
If you are using the Complex IFFT.vi the output data will be complex, but the imaginary part very small compared to your real data (typically a ratio of 1E-15 to 1E-16). Is this what your see?
Attachments:
FFT-IFFT_or_random_signal.vi ‏26 KB

Similar Messages

  • Frequency Response Function & FFT & Inverse FFT (problem of unit Volts-RMS)

    Hello everyone,
    I am currently working on a VI in order to compare two analog signals : the first one corresponds to the output signal (my reference) which is sent by my data acquisition card to a shaker and the second one corresponds to the input signal recorded by an accelerometer fixed on the same shaker. The final goal of the VI is to correct the analog output signal by using the analog input recorded signal in order to have the vibrations on the shaker which corresponds to what we really want.
    To summary, I have a problem of unit with the Volts-RMS...
    So this is my method for the VI :
    First, I have to calculate the Frequency Response Function between the two analog signals (output and input). For it, I use the " Frequency Response Function (Real-Im).vi " which returns the complex values of the FRF in Volts-RMS (but I don't want to use this unit).
    Then, I want to calculate the FFT of the analog output signal (my reference). There are two different blocs which can be used : " FFT Spectrum (Real-Im).vi " and " FFT.vi ".
    The " FFT Spectrum (Real-Im).vi " returns the FFT complex values of the signal in Volts-RMS and the " FFT.vi " returns the FFT complex values in Volts (or say me if I am wrong, thank you). I really would like to use the second one because of the unit.
    Then, I divide the FFT just calculated with the Frequency Response Function calculated just before.
    For the end, I calculate the inverse FFT of that with the " Inverse FFT.vi " which use the complex values with the same unit than for the " FFT.vi ".
    I don't want to use the Volts-RMS unit because I absolutly want to use the blocs " FFT.vi " and " Inverse FFT.vi ".
    The problem is that I don't find a bloc which use the same unit for the Frequency Response Function. The " Frequency Response Function (Real-Im).vi " returns only the complex values in Volts-RMS unit. Maybe it is possible to convert it correctly? Or maybe there is an other bloc which can be used in order to calculate the Frequency Response Function with the same init than for the FFT and Inverse FFT ? Because I can't mix everything for the moment...
    Thank you for your help,
    Best regards,
    Sebastien

    Hello Preston,
    No, I have not use the Sound and Vibration toolkit. I have only used the signal processing toolkit with the two toolboxes " Waveform measurement " and " Transforms ".
    But I think that what I have done for the moment in my VI is correct (I have finished the complete VI). But I am not sure of the units (Volts, Volts-RMS...) and I would like to understand.
    I have tried with the Sound and Vibration toolkit for the frequency response function (because you say me that it deals with all the unit conversion) and I can obtain the same results than with the " Frequency Response Function.vi " of the toolbox " Waveform measurement ".
    But I would like to understand the units (see my previous post please). For example, for the FFT (the result is a complex), why sometimes it is in Volts, sometimes it is in Volts-RMS ? Is it possible to convert it ? How ?
    If you want, I can attach on the forum my VI and that will maybe help you to explain me. Maybe it will help other people interested.
    And if someone else can give me other precisions or advices about it, do not hesitate.
    Thank you for your help,
    Sebastien

  • Calculate frequency response using FFT and inverse FFT

    Hi,
    Attached is the program using FFT and inverse FFT to filter a time domain signal. The frequency response of the LPF can be obtained by using the chirp signal from 0 to 5kHz. However, I don't know why the signal obtained from a sine wave input is so strange. The amplitude is wrong and has a envelope outside. Please help to point out what's wrong with that.
    Bill
    Attachments:
    fft filter.vi ‏87 KB

    If you check the help text for sine wave.vi you'll see that it generates the sine wave based on the following formula:
    yi = a*sin(phase[i])
    for i = 0, 1, 2, …, n – 1 and where
    a is amplitude,
    phase[i] = initial_phase + f*360*i
    This means that when you input a=1, f=0,1 and initial_phase=0 you will get a sine wave that is based on samples at every n*36 degrees; i.e. at 0, 36, 72 etc...due to this sample rate you never see the full amplitude (+/- 90 degrees), the wave is clipped at the top. If you input an initial phase of 64 degrees you will get the full amplitude, but the wave is still deformed due to digitalization...
    The lower the frequency you put in, the closer the digitalized representation will be to the true sine.
    Use the Waveform Generator VIs from the analyze palette if you want to have more control over the wave generation (sample rates etc.). (Not available if you have the base package.)
    MTO

  • Filter the data and then do an inverse FFT

    Hi everyone,
    I know this subject has ever been treated but it's not been solved so here's my question :
    First I want to make an FFT on datas. Then I want to filter values (replacing the values I want to filter by 0) and finally make an inverse FFT to get back the time signal without the high frequencies.
    Now my question is, how do I modify complex datas or how do I make my modified array acceptable for the inverse FFT vi ? 
    Thanks a lot
    David

    I think your problem is that you need some more FFT information. You are uncertain on how the output from the FFT VI is organized. Or more specific how to map the array content to different frequencies
    I suggest you read this http://zone.ni.com/devzone/cda/tut/p/id/4278, and this http://zone.ni.com/devzone/cda/tut/p/id/4541. In the last one they used an older labview version. Some of the functions mentioned has minor changes in newer Labview versions. But the theory still apply
    If you can answer this question I can help you some more.
    If I sample a 5Hz sine wave with 1Khz sample rate for 1 second, and then perform a FFT, at which array indexes will I find information about the 5Hz sine wave
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • FFT conversion to spectrum display?

    Man I need to bone up on spectral analysis. I would hope this is an easy one but I really have no clue.
    I have an application where I am reading some FFT data from a file and displaying to a graph. Heres where my ignorance kicks in full speed. I *thought* that an FFT was the same as a spectrum analyzer but I guess not. The lower frequencies on the graph are almost always full scale where the higher frequencies fall off in what looks like a logrithmic fashion. While this does give the effect of a spectrum analyzer it leaves most of the graph unwritten to which looks funny.
    Ive been doing some reading on FFTs and spectrum analyzers but, so far, I have not found the correlation if any. The main gist of the question is though if I already have some FFT data is there a way to convert this to what I want?
    Included is a quick picture of the array and the formatting I am putting it through to stick it on the graph so it wont move...
    Attachments:
    Snap.gif ‏4 KB

    I can't speak to any of the high-level mathematics, but it seems that you could do a reverse FFT transform on the data, convert it to a waveform, and spectrum analyze it in LabVIEW. I'm assuming that by "spectrum analyzing" it you mean that you want to display the signal on an amplitude vs. frequency graph. Below I've listed the necessary VIs to implement the process I described above:
    Inverse FFT: All Functions»Analyze»Signal Processing»Frequency Domain
    Build Waveform: All Functions»Waveform
    FFT Power Spectrum: All Functions»Analyze»Waveform Measurements
    That last function will return a waveform in the amplitude/frequency domain, which you can then route directly to a graph. Hope this helps!
    Regards,
    E. Sulzer
    Applications Engineer
    National Instruments

  • FFT in diadem

    Hello,
    I found some information from the DIAdem help and DIAdem manual as follows.
    "Note  DIAdem calculates the FFT to powers with a base of two and therefore might not use all the measurement data. Example: If a time signal has 340 values, DIAdem only uses the first 256 (28) values for the FFT."
    "DIAdem calculates a FFT for the entire length of the specified channels, even if the channel length is not a power of two."
    I don't understand which one is right?

    Hello xzhcong,
    They are both right, but I agree this is a little misleading.
    The original FFT calculation did require a power of two number of values, but it has since been replaced with the improved DFT calculation (and can be switched back to the original algorithm with a configuration setting in DIAdem).
    The setting can be changed from the "Settings" menu in DIAdem, in the Settings > Options > General dialog under "Compatibility"
    That setting Specifies whether DIAdem uses the improved FFT algorithm. If the variable has the value TRUE, DIAdem uses the new algorithm.
    Description:
    Note If the variable has the value FALSE, DIAdem uses the FFT algorithm from DIAdem 10.0 and earlier. DIAdem calculates the FFT of the older FFT algorithms to powers with a base of two and therefore might not use all the measurement data. Example: If a time signal has 340 values, DIAdem only uses the first 256 (28) values for the FFT.
    Only use the older FFT algorithms if you want to compare your results with earlier data. The functions ChnFFT1, ChnFFT2, and ChnInverseFFT including the related dialog boxes FFT with one time signal, FFT with two time signals, and Inverse FFT are affected by these changes.
    The default setting for this variable is True, so the new algorithm will be used unless you specify otherwise.
    Please check the attached PDF for more details about the FFT calculation ...
    Let me know if you have additional question,
          Otmar
    Specifies whether DIAdem uses the improved FFT algorithm. If the variable has the value TRUE, DIAdem uses the new algorithm.
    Definition
    UseNIFFT, Boolean variable
    Note If the variable has the value FALSE, DIAdem uses the FFT algorithm from DIAdem 10.0 and earlier. DIAdem calculates the FFT of the older FFT algorithms to powers with a base of two and therefore might not use all the measurement data. Example: If a time signal has 340 values, DIAdem only uses the first 256 (28) values for the FFT.
    Only use the older FFT algorithms if you want to compare your results with earlier data. The functions ChnFFT1, ChnFFT2, and ChnInverseFFT including the related dialog boxes FFT with one time signal, FFT with two time signals, and Inverse FFT are affected by these changes.
    Otmar D. Foehner
    Business Development Manager
    DIAdem and Test Data Management
    National Instruments
    Austin, TX - USA
    "For an optimist the glass is half full, for a pessimist it's half empty, and for an engineer is twice bigger than necessary."
    Attachments:
    FFT_Use_in_DIAdem.pdf ‏682 KB

  • Como hacen la reconstruc​cion en una FFT

    tengo un sofware que me enviaron que obtiene la FFT y la anti-FFT y hay una parte del proceso en la parte de la reconstruccion que no entiendo es donde dividen el cuadrado del tamaño de archivo entre dos, asi que me gustaria me aclaran ese punto
    de antemano agradesco su pronta respuesta
    Attachments:
    FFT and Inverse FFT.vi ‏97 KB

    Estimado Enrique,
    Te envio un ejemplo de login, el login está formado por dos VI's, uno que adquiere el user name y el password y otro que verifica la información. Basado en la información proporcionada, se otorga o no el acceso. Ojo es necesario dar de alta en una tabla el o los usuarios con permisos.
    Espero te sirva el VI.
    Sólo una pregunta, de que parte nos escribes? de México? de que estado? o de que país?
    Saludos
    Attachments:
    Login.zip ‏21 KB

  • Fft find frequency

    I am new to Labview. I need to plot the data (2 cols, one is time, x array, the other one is signal intensity,y array)provided by my instructor in time domain, which I already did. Then I need to convert the data into frequency domain. What should I do? I tried FFT function for my y array. But how can I find out the frequency informaiton?  From the x array, I know it's sampling rate is 2500Hz. T= 40s, N=100,000. the effective maxmium frequency should be 1250Hz, right?
    And I also need to isolate the 1000Hz signal... I am totally confused.
    Hope you can help me. Thanks in advance.
    John
    Solved!
    Go to Solution.
    Attachments:
    raw.vi ‏17 KB

    Norbert makes some good points- you need to have a play and maybe get a good book on signal processing (not LabVIEW specific).
    The 'effective' frequency you talk about is I assume the Nyquist frequency=sample rate/2. If this is what you mean, you don't have to do anything about it- just be aware that the maximum frequency your power spectrum will show is sample rate/2.
    You can isolate a specific time domain signal in the manner you mention, FFT->zero spectral bins you're not interested in->inverse FFT, (use FFT not power spectrum for this). A standard FFT will put out a double sided spectrum, which is symmetrical for time series that do not contain complex numbers, so you will need to blank a given bin on both sides of the spectrum- which is maybe what you were talking about RE: effective frequency. Use the whole thing (not just +ve half) to reconstitute the original signal.
    The 'blank a bin and inverse FFT' method is not considered a 'good' way of obtaining time series in a reduced band for real signal processing for reasons I won't explain here. You usually just use a filter on the time series, of which LabVIEW provides many. 

  • Can anybody help with some subtleties to this code?

    Hello,
    I was wondering if anyone could take a look at the code in general for me, which is to go in an 'effects' pedal.  The first while loop is for a footswitch that either reads high or low.  It controls the mode of the pedal.  the first mode is the default, where no signal manipulation occurs, and what comes in the audio input just comes out; the second mode stores data (fundamental frequency, average FFT amplitude from 3 kHz to 5 kHz) from the E string of a guitar, which is plucked after that mode is actuated; the third mode does the same for the A string; and the final mode takes in a note on the E or string, recognizes it as either on the E or A string, and adjusts the frequency content to be in tune based the data stored in modes 2 and 3.  then the new magnitude vector is put through an inverse FFT and output through the DAC and sounded.
    What I'm curious to know is, are there any blatant errors I've made?  Will the signal coming out of the inverse FFT be sounded through the DAC? does it need to be changed from a double to an I32?  I am trying to debug, but right now I'm having problems getting the correct output voltages on the Blackfin (the SPORT 0 pinout doesn't seem to match what is on the board....).
    also, I was wondering if I will lose any phase information on the signal that I get out compared to the signal I put in.  Will it be detectable by ear?  Or would it all sound the same?  along with the phase change for some signals, using an inverse FFT resulted in a loss of amplitude (from about 1 to on the order of 10^-5.  that's a lot!).  but when the test program was played on my computer, the phase change was not noticeable from the output signal, and neither was the magnitude change!  the output played at the same volume as in the input, despite the waveform chart on the front panel showing an amplitude five orders of magnitude less!  can you help explain that to me?  what can I do, will it matter coming out of the Blackfin and into an amplifier?
    i appreciate any input anyone can give me on all this!!  thank you!!
    Attachments:
    102 project.vi ‏287 KB

    Hi noahgrant,
    I've had a look at your vi and can make some suggestions that you can try.
    From what I can see, your while loop with the wait timer of 100 ms and continue if true condition on it (we shall cool this loop 1) will always keep running.
    The other while loop (loop 2) is nested within a couple of case structures and will only run once (false to a continue if true condition). The default case has a different condition and will always run, instead.
    From what I can make of this, loop 2 and all its case structures will only run once (except for case 0, default). WHEN it runs will depend on how it was compiled on the Blackfin - case structure/loop2 may go first or loop 1 will go first.
    If you want loop 2 to go first (and only go once) then you need to link the output of the case structure to the input of loop 1 - this can be done by simply wiring up a boolean to it (data flow rules).
    If you want loop 2 to always be checking the status of the mode then you need to place the whole case structure within a while loop, to run continuously.
    That is a very quick interpretation of what you are trying to do. There are a lot of question marks (missing vi's) and some heavy use of local variables. I would consider using sub-vi's, in particular functional global variables (FGV's).
    I hope that helps.

  • IFFT is slow, if input is NaN

    Dear users,
    I am posting an answer to a question, which bothered me for some time. I was working out, why a certain part of my program runs slowly. Well, the answer was that the slow part performed an inverse FFT (Fast Fourier Transform) on an input, which was an array of NaN. If iFFT receives an array of NaN, it takes orders of magnitude longer to process the data. On my array of 7601 cells, the ratio of execution time was 0.1ms (using meaningful) to 120ms (using NaN data) in average. I corrected the code with a case structure as follows:
    I am posting this fact and the issue, because I was suprised very much about this behaviour. I know, many functions can easily and quickly process NaN data. But iFFT.
    Cheers,
    Solved!
    Go to Solution.

    Craig, similar to the matlab discussion mentioned earlier, LabVIEW shows the same difference between 32 and 64bit versions. One of the responses seems to hint at some sse issues).
    LabVIEW 2013(SP1) 32bit: 220x slower for NaN
    LabVIEW 2013(SP1) 64bit: Same speed for NaN!!!!
    (And yes, the 64bit version is quite a bit faster overall for good data... 10.5µs vs 13.5µs on my machine)
    Does the FFT use the Intel MKL? (maybe we can blame Intel )
    LabVIEW Champion . Do more with less code and in less time .

  • How do I apply a uniform phase shift to a waveform?

    In LabVIEW 6.0, I am attempting to apply a uniform phase shift to a non-periodic waveform but have run into a problem. Theoretically, if I take the Fourier transform of the signal, apply an offset to the phase and then take the inverse transform of that, the output of this process should be my original waveform with all of its frequency components delayed by the same number of radians (different amounts of time). However, I am not getting this result from LabVIEW. In the attached example code I generate a sine wave burst, take the FFT, convert from cartesian to polar, apply an offset to the phase, convert back to cartesian and take the inverse FFT. However, instead of getting a phase-shifted, same-amplitude versio
    n of the input at the output, I get an amplitude shifted, same-phase signal. What am I doing wrong?
    Attachments:
    phase-shift.vi ‏51 KB

    This only works (partially) if your array size is an integral power of 2 (e.g. 512, 1024, etc.), i.e. in cases where the fast fourier transform can be used.
    You need to use the complex FFT (and the hilbert transform)
    Please see my example posted HERE
    LabVIEW Champion . Do more with less code and in less time .

  • Respiratory rate

    Hi,
    I have a data acquisition vi. I dislay respiration signals and trying to calculate respiratory rate per minute. In order to calculate RPM(respiratory perminute) I’ve used a threshold peak detector. I calculate the difference of the index of the first peak and the index of the second peak,the result generates the number of total samples between two consecutive counts. To count respiratory rate I divided the sample rate by the number of samples per breathing.Then I’ve multipiled the result by 60 to generate RPM.
    I ‘ve put the width value for the threshold detector 30.
    You can see the frontpanel of my vi and diagram as attachment.
    The problem is everything is ok while fast breathing however, while breathing slowly the difference of the index of the first peak and the index of the second peak(you can see in the front panel as x-y ) is negative. Thus the RPM is negative.Also the RPM values lower than 30 is always negative.
    What should I do?
    Attachments:
    bre soru.JPG ‏51 KB

    After doing some analysis, this approach helps some, but maybe not enough to help you.
    Essentially the Hilbert Transform does the following. Perform an FFT on your signal, negate the negative frequency values and perform an inverse FFT to get back to the time domain. This relates and even signal to its corresponding odd counterpart (i.e. the Hilbert transform of a cosine signal is a sine signal and vice versa).
    Here is a procedure that works for the simulated data that I have.
    1. Subtract the value of the first point of data from all of your data to make your first point equal to zero.
    2. Use a Butterwork Filter (filter type = Bandpass, order = 2, fh = .1, fl = 0.005) to filter your data (Advanced Analysis->Filters).
    3. Use the Derivative function to take the derivative of your data (Advanced Analysis -> Time Domain)
    4. Use the Peak Detect function to capture the peaks (Advanced Analysis -> Time Domain)
    This will hopefully enhance the peaks in your respiration data making it easier to capture them with the peak detection function.
    If you have data you can send me to work with I can see if it works well. I am using LabVIEW 7.1 so I will attach a JPG of the code.
    Randall Pursley
    Attachments:
    respire.JPG ‏58 KB

  • How do I generate an array of random numbers that relate to an output wave that falls within a certain frequency range?

    I have been creating random numbers that I'm using within a system, the system is working fine, but now I have realised that the random numbers must be outputted to speakers in such a way as to filter out all but a low frequency range.
    I was thinking about generating a dither signal with a bandpass filter, but could not get it to give me out a full array of 250 values which I could then manipulate.
    The sampling frequency of the output is 200Hz and the 250 data points must fall within the 0-100Hz range.
    Another course of action I am considering is to use an FFT and an inverse FFT to get the data that I'm looking for, but I'm fair
    ly inexperienced with using labVIEW and can't quite get it to work.
    Thanks for the help,
    Hank.

    As you may already know, in the Functions palette/Analysis VIs/Filters VIs are VIs for filtering. There are also some examples for using these filters under Examples/Analysis/fltrxmpl. You may find some of these are related to your situation, especially for filtering out the higher values.
    An option is to simply output the random values to a Comparison/"less than or equal" function, where only values <= to 100 would be sent to an array which is in a For loop. Use the iteration counter of the For loop to count up to 250, at which time you would pass the whole array to your next node. This would let you have 250 values between 0 and 100 for your final array.
    Good luck.

  • How do I get displacement from accelerometers?

    We work with an ultraprecision lathe measuring vibration during machining using a NI Labview acquisition system and 2 PCB accelerometers. Signal from accelerometers goes through a conditioner box, where it is also amplified, then to the acquisition board. This signal is treated in Labview with a bandpass filter (which is supposed to take off all DC) and it�s also sent to a FFT box that shows it has a strong component around 600 Hz .
    This signal resembles a sine wave and represents of course acceleration. In order to have displacement we tried to integrate it twice (2 Integral x(t) Labview boxes).
    First problem is that the integrated signal becomes very oscillatory, much like a cosine wave superimposing a ramp that switc
    hes from increasing to decreasing (and vice-versa) almost randomly (we didn�t expect to have any DC component).
    Also, changing �dt� value of de Integral x(t) box in Labview changes our signal completely. What should be the best �dt� value?
    We have no experience with that. Has anyone successfully obtained displacement with accelerometers? Your help is highly appreciated.
    Thanks
    Erick

    What do you want to do with the data? Do you need displacement time or a
    displacement spectrum?
    We have a commercial dll that gets displacement time and spectra but we use
    filtered forward and inverse ffts instead of the routines that you mention.
    Duncan
    http://www.vibrotek.com

  • Surprising indeed

    Wow, overall Lion is a pretty big gain especially for $29 bucks.
    I am more than a bit shocked at some very basic things that function so poorly. I manage quite a few macs from desktops to macbook pros, etc, so I will only point out my issues I am seeing on all/most machines.
    • Textedit, not even sure how this made it out the apple developers door. What was once a speedy program that just worked and you never had to think about is now a combersome beast that takes an insanely long time to open even the simplist of files, save files, etc. Not to mention the common sense factor here is gone.
    • System crashing. Lion is crashing far more than Snow Leopard ever did, but maybe this will be fixed with an update soon hopefully.
    • Adobe software issues. I guess ya gotta blame adobe for this one, but for us folks trying to make a living with their products these issues are tough to live with for now. Maybe this is Adobes payback for the apple flash dis.
    • Random "jumps to restart". Out of the blue a mac will restart. The sound is cool though.
    • When opeing some apps, mainly Textedit it opens every document thats been opened lately, and very very slowly.
    • Lack of any lion manual. Now doing computer work for a living I can figure this stuff out, but **** there is virtually NO documentation that I have seen that I can send to clients, friends, relatives, etc on the Lion basics. Info on versions, autosave, etc good luck with that. And the Help menu ***** big time. Why isn't there a simple icon on each of the main areas with a help video, pdf, tutorial, or whatever? For instance the first time mission control is opened why not have a simple help video? This ain't rocket science folks.
    • Launch pad. Cool feature but seems to lack any way to edit these apps. The iPad like folder structure is great, but I'm seeing on most macs I've worked on that for instance there is 3, 4 5 or more copies of calculator, address book, ichat etc and no real way to delete all of the extra copies. Well you can do the press and hold, but will that just delete the "extra app" or will it delte the app itself. And the apps I don't want to be displayed in Launchpad, if I delete those will it just delete them from the launchpad view, or from the mac completely.
    Again, overall Lion offers many new great feature sets. And if you are on this forum answering questions you are an advanced user that knows most of these things. But my friends, relatives, neighbors, etc are very lost, mainly for the insane lack of any helpful documentation....

    To get a better idea of the exact processing, you might want to attach the processing VI itself. This would also allow others to experiment with different solutions.
    I can bring in one detail to keep in mind when performing a single block frequency-domain filtering operation (a more complex method such as "overlap and add" should be used for continuous frequency-domain filtering). When you take a real FFT of your real signal, the complex result is symmetric about the Nyquist frequency for the real part, anti-symmetric for the imaginary part (Nyquist index is N/2). You must maintain this symmetric for all frequency domain data (signal FFT AND filter FFT) and operations so that the resulting inverse FFT is purely real. Other important indices to maintain are FFTre[0
    ] and FFTre[N/2] which are the "DC" and Nyquist frequency components. The imaginary parts FFTim[0] and FFTim[N/2] must be zero for a real signal.
    I can help you more with more detailed processing information or the processing VIs themselves.

Maybe you are looking for