12-08-2017 03:03 PM
I'm trying to read the tach signal from a BLDC motor. It consists of a square wave that varies in frequency with the RPM. The problem is it also has noise consisting of very short duration spikes of a fixed frequency that are almost equal in voltage to the signal. I'm using a counter on a cDAQ DIO module to monitor the frequency and what I get is the frequency the noise added to the frequency of the signal. Is there a way to filter by signal duration? I found a task property CI.Dig.Fltr.MinPulseWidth that according to help "specifies the minimum pulse width the filter recognizes" which sounds like what I need but I have no idea how to implement it.
I suppose another way to do it would be filter out that fixed frequency but I've been unable to figure that out either.
Solved! Go to Solution.
12-08-2017 03:06 PM
The best way to do it is to filter the signal PHYSICALLY before it ever gets to your test equipment. This is also the best way to avoid transients frying your equipment.
12-08-2017 03:22 PM
I think I shouldn't have referred to it as noise.It's the 100 Hz carrier frequency of the PWM signal that controls motor speed that is some how making it through the motor controller. Chance of a transient is nil. Problem is I have neither the resources or expertise needed to design such a filter. That's why I'm hoping there's a way to do it in software. I think there's gotta be a way since it's so much shorter duration than the signal and a constant frequency which I just realize I should have mentioned in my original post.
12-11-2017 09:33 AM
Can you show us some actual signals?
12-11-2017 02:40 PM
Just thought you'd like to know that I solved the problem. It was the CI.Dig.Fltr.MinPulseWidth property that did it. Got it to filter out virtually all of the short duration noise and I'm getting a readable signal now.
Thanks for all the advice
12-11-2017 05:01 PM
That's great! And thanks also for marking your post as the answer and providing the solution so that other developers can learn from your experience! 🙂