Overlapping signals with NI USB-6001
4 views (last 30 days)
Show older comments
Hallo,
I have two DAQ-Devices: NI USB-6000 and NI USB-6001.
Listening/messuring on 3 analog channels with NI USB-6000 works fine.
If I use the NI USB-6001 to listen/messure on 3 channels, the signals are overlaping/adding. I use the SingleEnded Mode while aquiering Data with the NI USB-6001.
During a test, I just connected one wire to one port and listen on 2 additional port without any connection. Normally there should only be one Signal. But see what I got on the following picture:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/153950/image.jpeg)
Is this a defect card or what is the problem?
6 Comments
Walter Roberson
on 16 Jun 2016
Certainly something funny going on there. I am still working on figuring out what it means though.
To check my understanding of what the graphs are showing:
In the first series, I see a blue signal up around 2.5 V. Is it correct that the blue there is the signal you are trying to measure? It also appears to me that there are two yellow signals which are normally at roughly -1/10 V. Is the signal generator connected to both of those yellow signals or just to one of them? If it is connected to just one of them, then is the third one unconnected? Is there a documented internal pull-up for floating lines?
In the second series, I see a blue signal normally at about +1/10 V, and I see two yellow signals which are normally at roughly +1/2 V. But I am not sure which of those lines is floating unconnected and which of them is signal? The little pulses on the blue are nice and neat but I do not know if they are injected signal or line being pulled up by signal injected on one of the yellow lines?
I cannot tell for sure from the graphs which of the two yellow lines the signal is being injected on; my guess would be the one that has the higher peak magnitude.
In the first series it looks like voltage is being drawn off of the blue line, but in the second series it looks like voltage is being drawn on to the blue line...
Anyhow, if you run more plots, could you distinguish the three channels, perhaps with different colors for each or different line patterns for the different yellow channels, and add a legend() on?
My speculation is that the USB-6001 might not have good channel separation internally -- rather than it being a matter of the data being scrambled or data being misread by MATLAB.
Do you happen to have LabView? Running that would allow you to cross-check whether the problem is at the MATLAB end or at the device end.
Answers (2)
Walter Roberson
on 19 Jun 2016
My working hypothesis is that there is some kind of channel separation problem in the USB-6001. It might be a malfunctioning device, as the leak is much higher than expected.
As a work-around, a better-than-expected reconstruction of the pulse signal can be done like this:
f2 = medfilt2(force);
fixmask = pulse1 > 0 | pulse2 > 0;
y2 = force + medfilt1(fixmask/10);
plot(time, force, 'b', time, f2, 'r'); legend('original force', 'reconstructed')
With this, you will still see some distortion in the reconstructed force, especially at the trailing edge of the pulses, but the force inside the pulses looks pretty good. What I did here was just plot the original force and the pulse boundaries and used datatips to eyeball the difference in voltage of the force inside the pulses as being about 1/10 V, so I created a mask of where the pulses were and I added back 1/10 V in those locations (the logical mask is 0 outside the pulses, 1 inside the pulses, so 1/10 V is mask/10). My expectation was that I would need to fiddle with the 1/10 a bit to get a decent edge match, but 1/10 looks pretty good except at the trailing edge.
I did not experiment with using a mask based on only one of the two pulses, and I did not do any work on figuring out how the force changed based upon which of the two pulses was present.
The data you attached does not appear to reflect an deliberate experiments with injecting signals of known magnitude and duration to study the cross-talk. You also do not appear to have experimented with selecting different input terminals -- e.g., does it make a difference if you use the first channel, last channel, and one of the center channels?
2 Comments
Walter Roberson
on 19 Jun 2016
Edited: Walter Roberson
on 19 Jun 2016
I made a mistake earlier. The plot line should be
plot(time, f2, 'b', time, y2, 'r'); legend('original force', 'reconstructed')
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!