I've done similar things before. A few thoughts for you:
1. I'm assuming you're doing a buffered period or frequency measurement on the incoming encoder pulses, right? First key point is that you'll have data that is spaced equally in position, but not equally in time. If you are looking for a time-based FFT such that increasing speed will shift your spectrum, you're going to need to go through an interpolation process to resample your data as though equally-spaced in in time.
2. Your 149 pulse per rev encoder may be a significant source of error unless its 149 pulses are placed with extreme accuracy. Any error in pulse placement violates your underlying assumption of data that is equally-spaced in position. It'll be very helpful to send your data through a software lowpass filter to attenuate those artifacts.
3. I am not sure what you mean by "decompose the buffered data (array) into a single datastream." You'll get an array of periods / frequencies from the call to DAQmx Read. If you want to use it in a LabVIEW waveform datatype, you'll first need to do the resampling to create equally-spaced-in-time data. The LabVIEW waveform datatype (and all the analysis functions like FFT that use it) depend on receiving data with a fixed constant time interval between samples.
-Kevin P.
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.