01-29-2016 06:31 AM
Please refer the attached labelled screenshot. In the screenshot i have three signals with three frequencies and three durations in a single plot. How can we get the unknown frequencies and unknown durations of the signals from a single plot?
01-29-2016 07:28 AM
You don't say enough about the waveforms. From your picture, it looks like the situation is you have periods of silence and periods where a single pure tone plays for some amount of time, I'm assuming some integer number of cycles, all at a fixed amplitude.
If this is the case, the following algorithm should work (here I'll assume the sinsuoid has amplitude 1, and is zero-mean):
Such code is not difficult to write in LabVIEW. Give it a try, test it on some data such as you showed us, try to figure out by yourself how to do this, and come back if you get "stuck".
Bob Schor
01-29-2016 07:53 AM - edited 01-29-2016 07:55 AM
There are functions in the signal processing palette which can identify/return the amplitude / frequency / phase of signals in a waveform (e.g. Extract Tone / Extract Tones) - the only thing I'm not sure on is how it will behave if the signal is not continuous - you might need to find a way to split the waveform into its distinct parts and then use Extract Tone(s) on each part.
02-01-2016 09:21 AM
Hi,
Thanks!!!
Adding to Kongot Query, Actually we need to extract the audio signal information (frequency, Duration, Start time, End time) of all the signals present in the captured duration. These signals may occur in different instances or any combinations which is dynamic. Some expected combinations below.
Tone1-Freq-500Hz, Duration-50mS, Start time-5mS, End Time 55mS
Tone2-Freq-600Hz, Duration-80mS, Start time-1mS, End Time 81mS
Tone3-Freq-600Hz, Duration-60mS, Start time-4mS, End Time 64mS.
Scenario1-Tone1-Delay-Tone2-Delay-Tone2-Delay-Tone1-Delay-Tone3
Scenario2-Tone1-Delay-Tone1 -Tone2-Tone3-Delay-Tone3
Scenario3-Tone2-Tone3-Delay-Tone2-Tone3-Delay-Tone3.
Delay is Dynamic say 5ms, 40mS etc.
02-01-2016 10:21 AM
It sounds like what you are looking for is called a "spectrogram". If you open LabVIEW and go to Examples>Toolkits and Modules>Time Frequency Analysis, you will see a variety of good examples. Basically, they give an intensity plot of frequency vs.time.
02-01-2016 10:31 AM
Attached is a screenshot of what I mean by a spectrogram.
02-02-2016 07:45 AM - edited 02-02-2016 07:45 AM
find a software that transposes music to MIDI and analyse the midi stream ? 😄
Spectrogram is the first part: with a simple level monitoring of the 2D array output of the spetrogram vi cut out the coarse tone parts and use tone detection to finalise the frequency.
Detecting the start and beginning is also possible the spectrogram, depending on the accuracy you want you need to play with the step and window size.
02-02-2016 10:49 AM
A spectrogram is certainly a possibility, particularly if you have situations where the tones are (a) other than pure sinusoids and (b) can overlap. However, your statement of the problem makes it seem as though both of these conditions are false -- your tones do seem to be pure sinusoids and (b) there appears to be "blank space" between them.
If my assertions above are true, the simple algorithm I described earlier is (a) fairly easy to implement, (b) requires little sophistication in Signal Theory (you don't need to understand FFTs, for example), and (c) doesn't require any specialized LabVIEW functions or toolkits.
Bob Schor
02-17-2016 09:45 AM
Hi,
How to measure the frequency and duration of each frequency captured using analog channel of NI DAQcard. Signal is an audio signal captured at 22050 samples per second. There will be sinewaves of different frequencies in the captured data. I need to find all frequncies present in the data and duration of each frequency.There will small gap between each frequency. Attached two different signal captued and expected frequency and duration of frequency is mentioned.
Thanks in Advance!!!
02-17-2016 10:05 AM - edited 02-17-2016 10:06 AM
You forgot to store the data in the controls. You need to do: Edit > Make Current Values Default, and then save the VI.
Since this smells like schoolwork our next question will likely be: What have you tried? Have you managed to separate the signal sections from the silent sections? There is a Get Waveform Subset VI that will help once you find valid signal thresholds...