TFA STFT Spectrogram (waveform) VI

Hello, Can you give me the formula for the calculation of the spectrogram in the TFA STFT Spectrogram (waveform) VI?Right Click->Help: There is no detailed information about the math used in this VI.Please, see attachment. Regards, asipers

elset191 wrote:
truplicate post
 ... sigh
Cory K

Similar Messages

  • TFA STFT Spectrogram: log scale on frequency axis

    Hi,
    I'm trying to get my spectrogram to display a logarithmic scale on the frequency axis, but whenever I go to the graph properties->y-axis, turn off autoscaling, check the log scale box, hit okay, and then run the vi, I still have a linear scale.  I tried creating a property node for the spectrogram's y-axis and setting the scale to logarithmic, but this doesn't work either.  Does anyone have any suggestions? 
    Thanks a lot,
    Chris K.
    Attachments:
    Front Panel.png ‏267 KB

    log (0), log (1), log (2), log(3), ... ?
    The Intensity graph uses the array indices (0,1,2,3,...) for the axis, not the values of Y.  If your frequencies are 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, ..., you would need an array with >=1001 elements to get the axis values where you wanted them and it would still plot the axis linearly.  You can certainly put the Z-values for frequency 10 in the 4th column of the array.  To get the labels to display the Y-axis frequencies might require overlaying an X-Y graph with logarithmic mapping of the Y-axis on the Intensity graph.  By making the appropriate parts transparent, you should be able to get the Y-axis display you want.  Tedious, but probably not too difficult.
    Lynn

  • # frequencies in STFT spectrogram

    The help file info for STFT Spectrogram says, in part:
    STFT Spectrogram {X} is a 2D array that describes the time waveform energy
    distribution in the joint time-frequency domain. The number of rows (time
    axis) in STFT Spectrogram {X} is given by the following equation.
    # rows = # elements in X / time increment,  then rounded down
    The number of columns (frequency axis) in STFT Spectrogram {X} is given by
    the following equation.
    # columns = (# elements in X / 2) + 1,  then rounded down
    By experimenting I have confirmed that the help file is correct, but I am
    surprised that the number of columns (i.e. frequencies in the STFT) is what
    it is.  If the window size is N (I assume that means N time points are
    used to compute each spectrum estimate), then the number of frequencies in the
    spectrum should be N/2 + 1, even if the number of elements is much
    larger.  Can someone clarify? 
    Thank you.
    Maybe all the points in X outside the N point window ARE used, but set to zero. 
    In essence this would amount to zero-padding an N point long signal to make
    it as long as the original signal.  Why would this be a good idea?  It increases
    the computational effort with no increase in actual information about the signal. 
    It also can make one think the spectrum has a much
    higher frequency resolution than it really does have.  The spectrum of a zero-padded
    time series has no more "real" frequency resolution than the unpadded series -
    it is just a resampling, with interpolation, of the spectrum of the unpadded signal.

    That's an interesting question. If you open up the STFT Spectrogram Vi to look at the algorithm being employed, you can look at exactly what process is going on. It does appear as though a type of zero-padding is being used.
    Zero-padding before the FFT to a power of 2 would actually decrease processing time due to the FFT algorithm used, but that doesn't seem to be the rationale here.
    Jarrod S.
    National Instruments

  • How to connect read sound file from chart to Moving STFT PtByPt

    Hi!
    I got a

    Hi sean1985,
    The Sound File Read Simple.vi returns the data as an array of waveforms, while the STFT Spectrogram PtByPt.vi accepts a single waveform.  In order to pass the data from Sound File Read Simple.vi to STFT Spectrogram PtByPt.vi, you will need to index into the array and pass each individual waveform to STFT Spectrogram PtByPt.vi from the array of waveforms that is generated by Sound File Read Simple.vi.
    Thanks,
    Jonathan C
    Staff Application Engineering Specialist | CTD | CLA
    National Instruments

  • Darren's Occasional Nugget 07/17/2014

    Today's nugget has to do with Intensity Graphs and Intensity Charts. By default, they have a blue color map for the Z scale:
    If you want to reconfigure the colors, you can right-click any of the numbers in the Z scale and choose Marker Color. It is also possible to programmatically manipulate the scale with the Color Table property of the Intensity Graph/Chart. 
    I have attached a VI below called Intensity Color Tables.vi that allows you to select between several pre-defined color maps for your Intensity Graphs and Charts. The VI generates the Color Table array that can be wired to the Color Table property. I think my favorite color map is "fire":
    Check out the demo VI (in LabVIEW 2009 or later) to see the Intensity Color Tables.vi in action.
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman
    Attachments:
    Intensity Color Tables.vi ‏28 KB
    demo_Intensity Color Tables.vi ‏26 KB

    And this shipping example shows an practical usage of this feature:
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments

  • Stft from sound input VI dat to plot spectrogra​m, whats wrong?

    Hi everybody,
    I listen continously
    via a microphone and sound card to 25ms long pulses in the range of
    9kHz to 12kHz. I get 10000 samples from my Sound Input VI and use the
    STFT Spectogram to plot a spectrogram(frequency versus time). Using the
    default settings or any other window lengths results into the error
    message:"...possible reasons: invalid windows length".
    What's wrong?
    Thank you very much,
    Martin

    Hey Brian,
    I would like to listen to 25ms long pulses in the range of
    9kHz up to 14kHz
    +by using a microphone and a standard PC sound card
    +continuously up to 1.5 hours.
    The VI should display a real-time spectrogram(frequency versus time) like in the example VI "Moving STFT PtByPt.vi". It is important that the spectrogram always shows the last 5 minutes and the current frequencies. It is not necessary that the spectrogram is very real-timed(up to 600ms delay is ok), BUT it has to be 100% CONTINUOUSLY to not miss any of the short 25ms long pulses.
    In addition I also would like to determine the frequencies of the received pulses, which are somewhere between 9kHz and 14kHz and I need to count the amount of received pulses.
    My issues are:
    1. missing some 25ms pulses due to problems with continuous sampling of SI Read VI in a while loop(I guess there is a small break between the 1000 samplesets)
    2. How connect SI Read VI output to STFT VI or STFT PtByPt VI to perfom moving spectrogram?
    3. Why doesn't show my spectogram no frequenciues at all?
    I hope this helps to understand what I try to achieve and in what problems I have run.
    Here is a corrected and more use-friendlier version of my VI.
    Thank you very much,
    Martin
    Attachments:
    spectrogram_NI.vi ‏142 KB

  • Short time fourier transform (STFT) frequency axis

    Could someone please explain the frequency axis output of the short-time fourier transform spectrogram? The help menu indicates that the number of output columns will be equal to (# of input samples)/2. I would expect that the number of output frequency bins would be equal to half the size of the fft and that the bin width would be determined by the sample rate.

    STFT is implemented using the windowed Fourier transform. Before applying the Fourier transform, the windowed signal can be zero-padded to get the same length as the input signal. So in this case, the FFT length is equal to the signal length. Such zero padding can get a smooth spectrogram for the detailed visual investigation of frequency contents.
    NISH DSP
    Medical ultrasound and signal processing

  • STFT help

    hi,
       I am trying to use the STFT to plot the spectrogram of a signal. The signal was sampled at 50000. I am down sampling it to 3000 samples per second and feeding it to the STFT module. Here is what the vi looks like
    signal -> resampler(to 3000 samples/s) ->STFT->intensity plot
    What would be the optimum settings for the STFT as far as the following go,
    Window:
    Window Size:
    Time Steps:
    Frequency Bins:
    I have the intensity graph set up to use auto scaling for now.
    Thanks in advance.

    Your image links point to your C: drive and only you can see them. We don't have access to your drive.
    You should attach images or host them on a public server.
    LabVIEW Champion . Do more with less code and in less time .

  • How can i display Waveform chart in a subpanel using Vi templates.

    Hi All
    I am new to Labview hence need  some help. I am trying to develop an application which reads some data from a Wireless Sensor Network (WSN). The WSN consists of base station connected to the USB port which recieves data from other sensor nodes.  The data comes in a certain format.  Node name, temperature reading, humidity reading etc. I want to read the data from the serial port and  based on the Node name, i want to display the information for each node in s separate window or subpanel etc. So if a new node is detected then a new window is created for that node. Since all the nodes have the same sensors on board i only need a one template. I can read the data using the serial port, parse the data to detect which node it is and also what the sensor readings are. I have created a template VI for the sensor node. I am having problems in displaying the template VIs in a subpanel. I can succesfully display a Waveform graph in the subpanel but i am having problems in displaying a waveform chart in the subpanel. I can see the actual waveform chart in the subpanel, but i cannot see the plot. Would be greatful if someone could point out what i am doing wrong here.
    Many Thanks
    Raza
    Solved!
    Go to Solution.
    Attachments:
    template_graph.vi ‏16 KB
    graph_template.vit ‏11 KB

    Hi All
    I think i have solved the problem. It seems like i was running the Vi in a loop. I have taken the Run Vi outside the while lopp and this works fine. Also i need to close the reference at the end.
    Raza

  • How can i print out the waveform chart?

      hello everybody,
    how can i print out the "waveform chart". can i do it just push the button. ( example; stop button is stop the program etc..)
    i checked the NI examples but i can't understand. i'm new to the Labview.
    pls help me.
    i added the my program
    look forward your reply
    regards from turkey...
    Message Edited by hknmkt on 05-29-2008 04:15 AM
    Attachments:
    29.05.2008_11.vi ‏37 KB

        hi jim,
    i tried the program but it's not running. When i run the program, it's print out without run the program
    i added the printed file.
    look forward your reply
    hakan
    Attachments:
    error8.JPG ‏8 KB

  • How can I tell if an arb is currently generating a waveform? (LabView 8.5)

    I have a VI which configures the load impedance of a 5421 arb card by changing the value of the property node "Load Impedance".
    This only works if the arb is not generating at the time of the call to the VI.
    I wish to be able to call the function when the arb is either generating, or not generating a waveform.
    Is there a way I can determine whether the arb is generating a waveform so that if necessary it can be aborted, then the Load Impedance changed, then the output re-initiated?
    Thanks
    Alan

    The fastest way to do this is to Disable the output (with enable output.vi) change the impedance and re-enable the output.
    Of course if you want to wait untill a generation session is complete you will need to configure the Done event to output something you can monitor (hardware only for unknown reasons) and use that to gate your changes.
    Jeff

  • Missing Waveform Monitors - New Install, Most Recent Premiere CC 2014

    Hi,
    I recently downloaded and installed Premiere Pro CC and related apps with a cloud subscription on a new Mac Pro tower. I connected by working RAIDs and opened a PPro project originated on my previous edit system, an iMac.  Right away I noticed some strange behavior and key features missing when I went to color correct my footage.
    With the desired timeline active in the "Editing" workspace, I used the keyboard shortcut (I also tried this with the dropdown menu) and switched the workspace to color correction. Rather than the timeline activated in the "editing" workspace, a completely different timeline in the project appeared in the "color correction" space. This occurred multiple times with seemingly every timeline, but the one I desired to correct activating in the "color correction" space.
    Also, the waveform monitors are absent from both the reference and program viewer menus. I can't seem to the find them anywhere. This leaves me feeling a bit crazy, as I was operating in the most current PPro CC version on the iMac just yesterday and everything was in its place.
    Thoughts on what  is going on here?
    Here are my system specs:
    Mac Pro
    Yosemite 10.10.1
    Processor: 3.5 GHz 6-COre Intel Xeon E5
    Memory: 32 GB 1886 MHz DDR3 ECC
    Graphics: AMD FirePro D700 6144 MB
    For now I suppose, I'll try uninstalling and re-installing the app. Other ideas? Anyone else experiencing this?
    Lindsay

    Thank you for all of the feedback. I have tried un-installing and re-installing twice now. Once using the cleaner tool and once without. Neither has remedied the problem. I was sure to check "Remove Preferences" when performing the un-install, but when I opened a new project after the re-installation, PPro opened in the "Color Correction" workspace rather than opening in the standard editing workspace and still no scopes.
    Other ideas?
    I found this thread, which isn't boosting my confidence in a healthy Premiere / Mac Pro relationship, but I have seen no mention of the missing scopes issue I am experiencing. And really I haven't progressed to the point of attempting an export or render. As you well know, scopes are vital, and there's no point exporting if I can't properly polish a product.
    Premiere Pro CC and the New Mac Pro (2014)

  • What deterimes the amount of data in a waveform from a TDS 1012 scope

    Hello,
       What determines the amount of data that is in a waveform that comes out of a TDS 1012 scope? I am assuming that I will have to look at the driver vi to determine the commands sent to the scope to figure it out. I am in a situation that I need to have the y axis to have a high resolution, that results in very little data being collected from the scope.
    Regards,
    Kaspar
    Regards,
    Kaspar

    Hello,
        The amount of data that comes out of the TDS 1012 scope is determined by the data start (DATaTARt)  and data stop (DATaTOP)  commands that are defined on page 58 (2-38) in the  346 page programming manual for the scope. I found of that the data start was not set to 1, which is the beginning of the data.
        I also had a very low level signal on channel that was all most unreadable by the scope that caused me to think that I was not getting all of the data.
    Regards,
    Kaspar
    Regards,
    Kaspar

  • Time delay between 2 waveforms

    Hi,
    Please bear with me while I explain what I’m trying to do :-)   Basically, in the attached LabView file (“flow vis + trigger-m.vi”), I am generating 2 signals: a sinusoidal waveform (used to drive an actuator) and a square waveform (used as a TTL signal to trigger image capture on a CCD camera). Currently when I run the program using LabView 7, both signals are started simultaneously. I would like to introduce a time delay that can be manually specified in the VI, such that when the program is started (i.e. at time t0), the sinusoidal waveform also starts (i.e. at time t0) before the square waveform (i.e. at time t0 + delay time). In a practical sense, this means allowing the actuator to run for several seconds before capturing any images.
    It sounds like it should be quite straightforward to do, but I’m not so sure how to progress. I have begun to modify the original VI (“flow vis + trigger-m_2.vi”, as attached), but would be much appreciative of any help or suggestions on how I can complete the VI to meet the above requirement.
    Many thanks,
    Mark
    Attachments:
    flow vis + trigger-m.vi ‏939 KB
    flow vis + trigger-m_2.vi ‏895 KB

    Please refer this URL for an example VI I made to solve the problem:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=227603
    Way S.
     NI-UK Applications Engineer

  • Creating a Time Delay Between 2 Waveforms

    Hi,
    Please bear with me while I explain what I’m trying to do :-)   Basically, in the attached LabView file (“flow vis + trigger-m.vi”), I am generating 2 signals: a sinusoidal waveform (used to drive an actuator) and a square waveform (used as a TTL signal to trigger image capture on a CCD camera). Currently when I run the program using LabView 7, both signals are started simultaneously. I would like to introduce a time delay that can be manually specified in the VI, such that when the program is started (i.e. at time t0), the sinusoidal waveform also starts (i.e. at time t0) before the square waveform (i.e. at time t0 + delay time). In a practical sense, this means allowing the actuator to run for several seconds before capturing any images.
    It sounds like it should be quite straightforward to do, but I’m not so sure how to progress. I have begun to modify the original VI (“flow vis + trigger-m_2.vi”, as attached), but would be much appreciative of any help or suggestions on how I can complete the VI to meet the above requirement.
    Many thanks,
    Mark
    Attachments:
    flow vis + trigger-m.vi ‏939 KB
    flow vis + trigger-m_2.vi ‏895 KB

    Hi Mark,
    I forgot that all analog waveforms generated needed to have the same number of samples in a single task. By introducing a delay into your square wave, I effectively added samples that waveform. So the same number of samples added to the square wave has to be added to your sine wave. I added code that extends the number of samples of your sine wave (# delay + square wave samples). Let me know if this works for you.
    Regards
    Way S.
    NI UK Applications Engineer
    Attachments:
    flow vis + trigger-m70.vi ‏872 KB

Maybe you are looking for

  • How do I use map coordinates in Apple Maps to set up my GPS?

    I'm trying to use an address in Apple maps that is a rural route.The rural route is not precice enough to help me set up a route in the GPS.  I have the lattitude and longitude coordinates.  How do I use the coordinates in Apple Maps to set up my GPS

  • Configure PCP in 11.5.10.2

    Dear all, Our environment is like : Node 1: 11.5.10.2 (AppsTier, Sun Solaris) Node 2: 10.2.0.4 (RAC 1, Sun Solaris) Node 3: 10.2.0.4 (RAC 2, Sun Solaris) Node 4: iSupport (Windows 2003 Server) As of now all the Apps services are in Node 1 and in our

  • HELP!  I can't publish my Iweb to Mobile Me

    Hey Everyone! I am currently in Nigeria and the internet is sketchy at best. It is very slow but does have a continuous signal. I've tried five times to publish my iweb and I keep getting the signal that it couldn't connect to Mobile Me. This is afte

  • How to modify an existing query to add a column

    Hi all, I have an existing query : SELECT 2 as SOURCE_SYSTEM_ID, LI.IPROD AS SYSTEM_ID, LI.IPROD AS PART_NUMBER, LI.IDESC AS PART_DESCRIPTION, IsNULL((SELECT LZ.CCDESC FROM HCMEUP01.FRDA385A.LBPCSF.ZCC LZ WHERE (LZ.CCTABL = 'SIRF2') AND LI.IREF02 = L

  • Installing Apache Derby

    Hi All, I'm having huge problems finding all the required software and following the myriad of instruction threads for installing Apache Derby. I desperately need some help to get me going. I'm particularly interested in producing AIR desktop applica