LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Filtering noise "spikes' in tach signal

Solved!
Go to solution

Hi all,

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.

 

thanks

 

0 Kudos
Message 1 of 6
(2,445 Views)

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.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 2 of 6
(2,441 Views)

Hi Bill,

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.

0 Kudos
Message 3 of 6
(2,435 Views)

Can you show us some actual signals?

0 Kudos
Message 4 of 6
(2,368 Views)
Solution
Accepted by topic author GDthomas

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

0 Kudos
Message 5 of 6
(2,352 Views)

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!  🙂

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 6 of 6
(2,340 Views)