Clear Filters
Clear Filters

Overlapping signals with NI USB-6001

5 views (last 30 days)
Charlie Brown
Charlie Brown on 15 Jun 2016
Edited: Charlie Brown on 22 Jun 2016
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:
Is this a defect card or what is the problem?
  6 Comments
Walter Roberson
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.
Charlie Brown
Charlie Brown on 18 Jun 2016
Ok, here the complete situation:
I am messuring 3 signals of a bike trailer. The first ist the force of the drawbar, given as voltage.It has an offset of 2.5 Volt, like you already recogniced. The two others are reed contacts - one on each wheel- to measure the speed, given as voltage, too.
On a USB-6000, where it works fine, it looks like in the following pictures:
Zooming:
As attachment, there are the data which can be read with:
data = dlmread('DAQ6000_messreihe2_nr01.dat',',');
force = data(:,1);
pulse1 = data(:,2);
pulse2 = data(:,3);
time = data(:,4);
Additional I add the data of the previous plot to the old post as attachment.
I will ask my professor if he has a LabView license for me. Normaly he should.

Sign in to comment.

Answers (2)

Walter Roberson
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
Charlie Brown
Charlie Brown on 19 Jun 2016
Thanks a lot for your hints and the code.
I will test the different channels (first, last, center) on Monday or Tuesday. If this doesn't work, I try to organize Lab View.
I am going to report the results here as soon as possible.
Walter Roberson
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')

Sign in to comment.


Charlie Brown
Charlie Brown on 22 Jun 2016
Edited: Charlie Brown on 22 Jun 2016

After some test, where I tried different channel like Walter Roberson proposed, it still won't work.

I have a unconventional solution, which works:

First of all I switched to the differential mode. And then I bridged each (back-)channel with ground.

In this case, I am using a NI USB-6001. Channels for differential mode are:

-><0,4>,<1,5>,<2,6>,<3,7>

Bridged to ground:

-><GND,4>,<GND,5>,<GND,6>

Signals used:

-><0>,<1>,<2>

Here as picture, directly after working - not optimized - wires are too long:

Like you can see, I only need 3 analog ports. It is no perfect solution, but I works fine for me. The results are as expected, like with the NI USB-6000.

Maybe it can help someone ;)

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!