取消
显示结果 
搜索替代 
您的意思是: 

signal identifying, splitting, tracking and sorting

Dear all,

 

I tried to get the following working but have not succeeded (using loop structures, case structures and shift register).  It would be very nice if somebody could help me with the following:

 

System description:

 

PCI NI-5122 Digitizer

NI Scope 2.8

LabVIEW 7.1

 

 

Problem description:

 

Multiple waveforms (1D arrays) are acquired using a PCI NI-5122 digitizer.  Each of these, e.g., 256 waveforms consists out of seven signal peaks.  As example, the attached figure shows three subsequently acquired waveforms with their signal peaks.

 

As shown in the waveforms, the series of five individual signals peaks repeats itself constantly.  Therefore, the 1. waveform consists out of four valid individual signal peaks (1-4), which cross a defined signal threshold, and one invalid signal peak.  Additionally the waveform covers the last peak of the previous signal series (4’) as well as the first peak of the next signal series (1’).  As result the signal peaks 1 and 1’ as well as 4 and 4’ etc. are identical.

 

The series of individual signal peaks can (but must not) rotate clockwise as shown in the attached figure (see 2. and 3. waveform).  The series of peaks can also rotate anti-clockwise (not shown in figure).  This rotating behaviour is slow, and its direction would also change slowly.  The hight between the valid individual signal peaks may differ, but not much.   However, the order of the individual signal peaks does not change.

 

 

Now I need to achieve the following:

 

(a) Identification of valid individual signal peaks and assignment of its individual peak number e.g. 4’, 1, 2, 3, 4, 1’ (as shown in the 1. waveform).

 

(b) Then each individual valid signal peak has to be extracted (its 1D array) and sorted into its individual “storage array” (e.g., storage array 1 stores 1D array of signal peak 1 etc.).

 

(c) Tracking of peak position as shown in 2. and 3. waveform.  Again, each valid signal peak has to be extracted and sorted into its individual “storage array”.  In the end, each of the four 2D storage arrays would consist out of 256  1D arrays of one individual signal peak.  The 1D arrays in each of the four 2D storage arrays would then be averaged together for noise reduction.

 

(d) In addition to the above issues, I have to keep constant track of the distances between the valid individual signal peaks (Delta1, Delta2 etc.).  The distance values would then be used as “feedback signals” to instruments to minimize the drift of the individual signal peaks to each other.

 

 

Thank you very much for your help!

 

Beam

 

0 项奖励
1 条消息(共 2 条)
2,725 次查看
Hi Beam,
To start with, I recommend that you look at the "Peak Detect" function.  I built a couple of simple demos to demonstrate how various parts of your program could be organized.
 
This shows how to find the locations of each valley and separate the array into sub-arrays.
Here you can see how to use the indexed locations of each peak to find the distance between peaks.
Note that in both of these examples, I used an array of data which has no time information.  All of the data returned will be in terms of sample count.  You will need to multiply the sample count by the sample rate and add the initial time reading to recover the time information.
 
Hopefully that helps.
 
Let us know if you have any more questions.

Message Edited by Luke G on 06-18-2007 04:09 PM

Luke
Applications Engineer
National Instruments
0 项奖励
2 条消息(共 2 条)
2,688 次查看