LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

how to estimate peaks in a signal?

hello guys
 
i have a small sound signal which i break down into smaller segments for pitch estimation based on the cepstrum algorithm. the cepstrum gives a clear peak indicating the pitch period in a (voiced) segment. i have checked that also by using the autocorrelation function (for period estimation) that gives me the same result for the same segment under investigation.
now what i want to do is to estimate/calculate at what point in time this peak occurs in the cepstrum so i can further move on and estimate the pitch period for each (voiced) segment. i have read the online help in labview and also the article in the NI https://www.ni.com/en/support/documentation/supplemental/06/peak-detection-using-labview-and-measure... and used the peak detect vi. but i cant seem to be able to make it work. i am missing something there.
has anybody used this before so he/she can give me some pointers?
 
any help would be appreciated
 
regards
madgreek
 
p.s i have attached my vi with a sample sound file in a zip file.
by the way, how can i post a vi. without having to attach a seperate file? (as a jpg or something)
0 Kudos
Message 1 of 4
(3,262 Views)

Have you looked at the shipped example called Peak Detection and Display. I think this is a good place to start if you want to use the peak detect vi's. If you want to find the maximum value from an array of y-values then you can use Array Max & Min. This function will return the index of the maximum value which in turn can be used to get you the x-value.

Do mean post a vi diagram as an image? You still have to attached the jpg file. After that you can use the url of the attached image to Insert an Image using the message body toolbar.

David

0 Kudos
Message 2 of 4
(3,248 Views)
david hi
 
thanks for the reply
i have seen the examples and i tried to implement them in my vi. what exactly i want is for each segment of the signal i have, to check and find a peak of a certain amplitude between a certain section of that segment (for each segment) i.e if a segment is lets say 20 msecs long, i want to look if there is a peak from 5 msecs to 20 msecs and display the results for all segments in an array for further processing.
do u or anybody else knows how to do this? 
 
regards
madgreek
0 Kudos
Message 3 of 4
(3,234 Views)

Hi madgreek!  It sounds like what you might need to use is the Peak Detector PtByPt (details are available in the LabVIEW help).  Additionally, this tutorial may be of interest.

 
Lorielle P.
Applications Engineer
National Instruments
0 Kudos
Message 4 of 4
(3,205 Views)