In my application, I am trying to analyze a sound signal.
I have used spectral measurements vi for get FFT peaks.
Now I want to know the number of instances at which amplitues goes beyond a certain limit, say 0.01.
Since I am not an expert, I could really use some help.
I am attaching my vi along with an example sound file.
Solved! Go to Solution.
The result of the power spectrum is an array of clusters. Each cluster has three elements: f0, df and an array of magnitudes. Unbundle all elements, use the array with a peak detector function. Multiply the "Locations" with df and then add f0. The resulting array contains all peaks with the configured threshold already scaled to the currect frequencies.
Well, what you say is that you want to create a histogram of threshold exceedances.
What you have to do is to compare the peak threshold exceedances of time n with the threshold exceedances of time n+1.
If a new peak (frequency) shows up, you have to increment its histogram value. So essentially you keep the histogram as counter per frequency bucket. Each peak you detect is part of one bucket (e.g. 5-10 Hz). Once a peak occurs newly in n+1, you increment that bucket.
Once you have done that for the whole sound file, you got the histogram of frequency buckets showing you how often the sound exceeded the specific bucket threshold level.
here I posted a vi that also migth do the job. It uses tone detection to find the n max frequencies ... detect one frequency, remove it, look for next.. instead of fixed n for loop searches you can use a while loop and define an end ...
Try this one
Or google Filtering-Noise-amp-Its-subharmonics