LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I perform Peak detection on an array of data with a varying threshold level?

For example I have an array of amplitudes between frequencies of 30 and 1000 MHz at intervals of 0.12MHz, below 75 MHz the threshold is 44dBuV, between 75 and 400 MHz the threshold increase is linear (+0.5 dBuV per 16.25 MHz) and above 400 Mhz the threshold is 54 dBuV.

Currently i'm fixing the threshold at 44 and using the peak detect function with a width of 5.
0 Kudos
Message 1 of 3
(2,690 Views)
If I understand your request correctly, you are trying to locate the the peak that exceeds the threshold by the gretest amount. If not, disregard this reply.

I would suggest you contruct an array of thresholds such that ther is a one to one corespondence between the values in this new array and your array of amplitudes and that each value (in the new array) is the threshold that applies to that frequency.

Then subtract the threshold array from your amplitude array. The resulting array can then be used to locate the peak you are seeking.

Trying to help,

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 2 of 3
(2,690 Views)
I'm trying to locate all the peaks in the array as the array holds the captured amplitude of an EMC emissions.

I tried your idea to offset the amplitude array by the treshold value. I passed the new array into the peak detect vi, but set the threshold level to zero.

It seems to work fine.

Thanks.

Mark.
0 Kudos
Message 3 of 3
(2,690 Views)