FFT vi truncate the FREQ of signal.


I noticed that the FFT vi truncate my signal. See attachments.

I'm basically the noise of a signal (I have both the phase - I - and out of phase - Q-signals...)

(Ignore the vi curve, it is just to remove the continuous component of the signal, it's irrelevant to this discussion).

Kind regards



You lose your calendar information for data going to the graph of the PSD.  It works on arrays.  The FFT functions assume a dT or dF 1.  So when things are placed in the chart, you will see values up to 0.5 since Nyquist limits you to 1/2 of the sampling frequency.  PSD2 graph doesn't have this problem because the blue wire of the DDT keeps the calendar data.

If you build your table in a type of waveform data and the boot in the value of dT, your data should look like the other graph.

Tags: NI Software

Similar Questions

  • Should I reset the FPGA FFT when changing the input signal?


    I have an application based FlexRIO where I do FFT on several incoming signals. The signals will be ranked so that I get first for example 4096 samples of Ch1 and Ch2 4096 samples, etc. This means that I don't have to do it in parallel of the FFT and I would like to reuse the implementation of FFT and windowing to reduce the use of resources.

    I intend using the VI Express followed by the Express VI of FFT window scaling



    and I'll use them inside a SCTL.

    This figure comes from the section using the FFT and help illustrate the issue:

    There is a discount to zero terminal for the fenestration and the FFT VI.

    Are there internal registers in the windowing and FFT which force the image 1, image 2,... from the same signal or is it possible for the first entry in a framework of Ch1, the next frame belonging to Ch2, Ch3 gaze and so on and always get reliable results?

    Another way to ask the same question: if I have to reset the window and FFT when changing the input signal?

    Thank you


    Hi Cyphish,

    When using the FFT of the LabVIEW FPGA vi express and windows nationwide express vi calculations are make it point by point so there will be no problem when going through different types of measures. Therefore, you should have no problem with your application.

    Best regards


  • subset of table truncate the end of the 2d array

    The intention was to make a program that would generate asynchronous several different signals in a buffer.  Then something would consume the buffer - an output daq, and signal processing.  I created a dummy consumption which takes only 1% over the beginning of the buffer.  Whenever the buffer is smaller than the specified size, more signal will be added at the end.

    I ran into a problem where the function of the subset of the Array is truncate the end of the subset sometimes, so I disassembled the program until a congruent portion of the code exists to cause the problem.  It seems to be the use of memory or related allowance.  Maybe I'm doing something that I shouldn't be, but it seems like a bug in labview.  In the block diagram, I have a note that shows a waveform wire that goes to a case statement.  Just remove this thread causes it to work properly as seen by the consistency of the waveform on the front panel.

    I'm using Labview 2014 (without SP1)

    I would be grateful for any ideas.

    To work around the problem, use the copy always at the moment. I'll try to engage someone R & D of LabVIEW to get the last word.

    In any case, it seems unnecessary to carry all these t0 (which is always zero!) and dt (which is always the same. Constantly from waveforms to bays and back just really clutters the code. If dt would be different between the waveforms, you would have a much bigger problem .

    I understand that your actual code is much more complicated and what you show is just the tip of the iceberg lettuce.

    Here is a general overview of execution project ideas.

    • Use 'building the table' (concatenation mode) instead of "insert into array. It's cleaner.
    • Use simpler and easier to read the code to find the size of the table smaller
    • Only use tables. You can define once and dt for all graphs.
    • Use the correct representation for buffer size controls.
    • Don't place unnecessary sequence structures.
    • I don't think that you really need that local variables, the terminal is written often enough (stops you extra copy of the immense tables in memory!)
    • Do not know what is the structure of matter, but I left it in for now.
    • Add conditionally empty bays, just wire the table via unchanged instead.
    • ...

  • create a spectrum of the order from scratch (i.e. get a fft-based on the position of the same time deductions in the sample data)

    Hello people,


    I play on 2 parameters of a system based on the sampling time: Rotary position and vibration (accelerometer g increments).  I want to take a fft based on the post to create a spectrum of the amplitude-phase speed order in / s.  To do this, perform the following:

    1 integrate (and scale) g vibration signal in the / s (SVT Integration.vi)

    2 signal sampled vibration resample the same time at an angle similarly charged signal (ma-resample unevenly sampled input (linear interpolation) .vi)


    Order in which operations should be carried out, integrate then resample or vice versa?  I didn't order would be important, but using the same set of data, the results are radically different.


    I have the NO order Analysis Toolset 2.0, but I could not find a way to get the speed profile generation live to work with signals of position encoder DAQmx (via pxi-6602) quadrature.  In addition, it seems that I have to specify all the commands I'm interested to watch, which I don't really know at this point (I want to see all available commands) so I decided to do my own fft based on the post to get a spectrum of the order.

    Any help is greatly appreciated.


    The order is to integrate the time domain of first - creating a speed channel.  You now have a new channel of data.  In general I would put this in the same table of waveform with waves of acceleration time.

    Then re - sample your acceleration and/or your speed signals, and then you can calculate the spectrum of the order.

  • Satellite A210-129: can I send the full HD signal on TV?


    I would like to ask if there is possibility to send videos in full hd laptop (it has only the D - Sub port). Thank you for your attention.

    Can you please tell me how to send the full HD signal from your laptop without HD-DVD player and HDMI output? I think that it cannot work.

    As far as I know that something like this is possible only on Qosmio G30 with HD-DVD and new Qosmio G40 player. The two laptops have the HD - DVD and HDMI output.

  • How do I get the analog input signal and send it to output analog (real time)

    Hello world

    I do a simple task in Visual C++ and I use PCI-6221(37 pin).

    Basically, I want to send the same signal of "analog input" to the "analog output".

    at the same time (or almost), to make real-time application.

    Can someone provide me with sample program please.

    I would be grateful if you could provide me with the great tutorial that explains

    step by step everything about NOR-DAQmx for C/C++ programming.

    Best regards


    This is my code in C++, you can optimize it if that seems too messy. This code reads the analog input signals and exports it through the analog outputs.

    To make this code additional work of the directories include and library directories must be added to OR.

    I hope it helps someone.

    #include "NIDAQmx.h".

    #define DAQmxErrChk (functionCall) {if (DAQmxFailed (error = (functionCall))) {goto error ;}}

    int main (int argc, char * argv [])
    Int32 error = 0;
    TaskHandle taskHandleRead = 0, taskHandleWrite = 0;
    Read Int32 = 0;
    float64 context [1000];
    char errBuffRead [2048] = {'\0'};
    char errBuffWrite [2048] = {'\0'};
    bool32 done = 0;
    Int32 wrote;

    DAQmxErrChk (DAQmxCreateTask("",&taskHandleRead));
    DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandleRead,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleRead,"",100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,0));
    DAQmxErrChk (DAQmxCreateTask("",&taskHandleWrite));
    DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandleWrite,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleWrite,"ai/SampleClock",100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000));

    DAQmxErrChk (DAQmxStartTask (taskHandleRead));
    DAQmxErrChk (DAQmxStartTask (taskHandleWrite));

    While (! fact &! _kbhit())


    DAQmxErrChk (DAQmxReadAnalogF64(taskHandleRead,1,10,DAQmx_Val_GroupByScanNumber,dataRead,1000,&read,));

    DAQmxErrChk (DAQmxWriteAnalogF64(taskHandleWrite,read,0,10.0,DAQmx_Val_GroupByChannel,dataRead,&written,));


    If (DAQmxFailed (error))

    DAQmxGetExtendedErrorInfo (errBuffRead, 2048);
    DAQmxGetExtendedErrorInfo (errBuffWrite, 2048);
    If (taskHandleRead! = 0)


    DAQmxStopTask (taskHandleRead);
    DAQmxClearTask (taskHandleRead);
    If (taskHandleWrite! = 0)


    DAQmxStopTask (taskHandleWrite);
    DAQmxClearTask (taskHandleWrite);
    If {(DAQmxFailed (error))
    printf ("error DAQmx: %s\n",errBuffRead); ")
    printf ("error DAQmx: %s\n",errBuffWrite); ")
    printf ("end of the program, press the Enter key to quit\n");
    GetChar ();
    return 0;

  • Update generation of over-the-air analog signals

    Is there a way I can change this VI to allow real-time changes in the frequency, phase, amplitude and type of waveform to the continuous output through an acquisition of data NI 9263? For the moment, changes to these variables only happen in the output signal if the program has these variables set correctly when running.

    The solution to this problem:

    I found this VI, and this allows me to have the hardware buffer to be continually updated with new information of signal. The 2010 version, it works very well for me in the transmission of signals in direct update via my NI 9263 measurement system.

  • Black screen and mode standby with the message "no signal".

    Correctly, it's... kind of weird, I use my computer and the monitor for a year or 2 now and don't never had real problems. The thing is that when I got home last night I found my black screen and standby mode (as if the computer was turned off (which it wasn't)). I thought that the reset will solve the problem, and so I did and didn't get the message "no signal". All tried, reconnecting cables, reset several times I could count... nothing helped for awhile.

    At any given time during one of my restarts it reworked all of a sudden no aparent reason. So going on my daily buissiness I want to get back in the saddle, when I accidentally hit the side of my computer with a book and the screen went to 'no signal' again. Just tried again and even used my cell phone to check if the monitor was working,... now comes the weird part,... also on my laptor monitor is having problems with "no signal", but only when I do my main screen. It works as a secondary screen, but I can't get the context in which to work. (finding that I'm guessing that this problem is not related to my normal computer, but I'm not sure).

    I am running vista and got a nvidia 8800GT graphics card. Also, I noticed something that is at any time using both the hdmi cable on the graphics card or using the socket with the internal chipset of my computer makes no difference. in both cases, I get "no signal" and the screen goes to sleep... Is there someone who can help me and tell me what probably is the problem here? I'm really looking forward to the answers, thank you very much for your time and effort.

    Hi Ron Suykerbuyk,

    If you are comfortable, then try to remove the CPU cover and check if the graphics card is well connected to the motherboard. Even if it is connected correctly, you can try to reconnect the graphics card and check.

    Hope this information is useful.

  • ID (CLI of the incoming caller SPA-3102) truncates the last digit when the telephone number is longer.

    Hi team

    Depending on the subject, when the number of the caller is Longer (i.e. International call with Country code etc.) as 11 digits, it truncates the last digit of the incoming phone number. See picture attached. Full number is 60126140235, but he loses the last digit is 5. Any suggestions?

    Also, there are comma (,) before the number that consumes valuable space. How elimiante that?


     FXO:Start CNDD fxo cnddwrap_feed parse ok 0060126140 status=2 -- Caller ID: -- Name = (null) -- Remote Number = 0060126140 -- Dialable Number = (null) -- No Number Reason = (null) -- No Name Reason = (null) -- Message Waiting = (null) -- Date and Time = 07/22 18:06 FXO:CNDD name=, number=0060126140 FXO:Stop CNDD FXO:CNDD Name= Phone=0060126140

    According to the newspaper that you have provided, the number of callers number claimed 0060126140.

    Length maximum support of the number in the E.164 format is 12 digits, including the country code. SPA don't know any used number format, so it has no reason to truncate 10-digit - I guess that he supported at LEAST 12 E.164 numbers.

    As the number seems to be broken on the side operators (00 superfluous as prefix, truncated to 10 digits) there's nothing you can to with him on the side SPA. We cannot guess figures sent by the operator to you...

    I can explain what is happening even on the side of the operators (although I'm only guessing) - I guess that we are talking of two digit country code country, so 10 digits is the maximum length of the national number. It seems your operator to consider the number national number and truncate them to 10 numbers on their side.

  • I'm running a gateway DX4300 while running the monitor loses signal, etc...

    I'm running a gateway DX4300 while running the monitor loses signal, switch / stop out no computer and computer will not respond unless you unplug the wall.  When you plug the computer into the fans turn on automatically but the computer will not start.

    Hi shermanproffitt,

    Check if the physical connections are connected correctly.

    Try the steps from the following links:

    Frequently asked Questions

    Desktop computer - no POST / no video

  • How to truncate the output of the field in the column "LONG".

    Hi all

    I have been asked to retrieve all records from a table with a column that has been initially formatted with the format "LONG".

    How can I truncate the output of this area without having to show the Junk characters?

    Very appreciated


    Wrong forum!

    This forum is ONLY for questions/problems on Sql Developer and your question has NOTHING to do with this product.

    Please mark the thread ANSWERED and repost it in the SQL/PL/SQL forum.

    SQL and PL/SQL

    When you repost you must SHOW an example of what you are wanting to do. You should also explain what you mean by 'LONG Format' - I have never heard such a thing.

  • Data export of the Disqualification to the table in step should not truncate the table.

    Hello friends,

    Please find blow my requirement and do the necessary.

    We export data cleaned to staging tables, whenever we export data, Disqualification truncates the table and inserts the new data sets into this table.

    My requirement is instead of truncating the table before inserting the data in it, Disqualification must add these records, should not truncate the table.

    Please let me know how to configure this in OEDQ, your help is appreciated.

    Thank you, Prasad

    Could not be easier. Double-click the task to export in your work and change the mode append.

  • How to truncate the query


    with this sql:

    SELECT c.country_name, l.city
    FROM countries c, locations l

    I have 575 lines,

    How can I truncate the output to 100 lines?

    Add this predicate:


  • truncate the ADDRESS table

    Hi all

    I'm unable to truncate the parent table, even I deleted data in the child table.

    Truncate table ADDRESS

    ORA-02266: permit to unique/primary keys in table referenced by foreign keys

    Thank you


    Right; in versions prior to version 12.1, TRUNCATE TABLE will not work if it has enabled foreign key refers to this table, just like DROP TABLE will not work.  If all the rows in the child one or several tables made reference to refer to the parent table is not serious.  As Tsharma said, you must disable foreign key constraints before making the TRUNCATE TABLE, like this:

    Emp_address_fk DISABLE the CONSTRAINT;

    Address of TRUNCATE TABLE;

    CONSTRAINT to ALLOW emp_address_fk;

  • Photoshop CS6 using javaScript to truncate the name of the alpha channel


    I am a production artist and I work with PSD files created in Adobe Scene7's Image Authoring Tool. These PSD files contain a background as well as the alpha 1-20 layers layer. My script should make a new empty layer for each alpha channel in the document. He then fills the new grey layer. So far, my code accomplishes this mission. However, I would like to apply the alpha channel of the layer name, but I need the name will be truncated. Each alpha channel begins with one or more characters, followed by a bar backslash and then ends with one or more characters. Here is an example:

    An alpha channel can be named: Floor\floor

    In this example, I need my name of layer to be fair: floor. This means that all characters to the left of the backslash, including the backslash itself needs to be scrapped. I used the subSring() for this statement. When I try to step through the code line by line in ExtendScript, I immediately get an error that says no complete string constant and line 31 of my code is highlighted. I think that he doesn't like the way I wrote the backslash character, although I have it surrounded by double quotes to define it as a string.

    Can someone tell me why I get this error?

    Here is my code with a lot of comments to guide you through the process. I wrote where the error occurs in red characters.

    I'm new to JavaScript, so I'm not sure that my while loop is accurate.

    #target photoshop

    #target photoshop makes the script execution in PS.

    declare the variable to contain the active document

    var myDoc = app.activeDocument;

    declare the variable to hold the number of alpha channels, excluding the RGB layers

    var alphaChan = myDoc.channels.length - 3;

    Alert ("alpha channels exist" + alphaChan);

    create a loop to make new layers depends on the number of channels alpha, fill layer with gray and apply the name of alpha channel to the new layer

    for (a = 0; a < alphaChan; a += 1) {}

    make new Virgin layer

    myDoc.artLayers.add ();

    fill empty layer with gray

    var color = new SolidColor();

    Color.RGB.Red = 161;

    Color.RGB.Green = 161;

    Color.RGB.Blue = 161;

    myDoc.selection.fill (color);

    variable stores the name of the alpha channel

    var alphaName = myDoc.channels [3 + a];

    variable stores the length of the name of alpha channel

    var lz = alphaName.length;

    declare the index variable to initialize the character position 1 the name of alpha channel

    var x = 0;

    truncate the name of the alpha channel by removing all characters preceding the symbol "\".

    While (alphaName.subString (x)! = ' \ ') { (ExtendScript gives an error for this line and highlights the backslash and surrounding quotes) }

    alphaName = alphaName.subString ((x+1), z);

    x += 1;

    z = 1;

    Return alphaName;


    remove the backslash in name of alpha channel

    alphaName = alphaName.subString ((x+1), z);

    apply name truncated to the corresponding layer alpha channel

    myDoc.artLayers [a] .name = alphaName;


    While (alphaName.subString (x)! = ' \ ') {}

    should be

    While (alphaName.subString (x)! = ' \ ') {}

Maybe you are looking for