Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Linear analog filter with zero amplitude in stopband

pavjayt

Member
Hello,

Wondering if there are any analog filters that can do this that I am not aware of. Basically we are looking for a loop pass fitler with hard cut off (like an elliptical filter) but with zero singal pass through in the stop band and also without phase shift.

We have an analog signal that we generate by stabilizing a moving object and would like to move another system in sync with that, while doing that we would like to eliminate everything above 60Hz form the signal (which we consider as noise). We have a butterworth filter from SRS, this one introduces about 180deg phase shiftdepedning on cutoff frequency and also passing an attenuated singla aobve out cutoff frequency.

Any suggestions?

thanks
 
If you can tolerate latency you can always create a gate that is controlled by
a frequency counter. That will give you zero transmission in stop band.

If you use a reciprocal counter its possible to drop latency significantly, unlike
period gated approach where you have to wait the period to generate the gating
mechanism.

Of course the signal for the above approaches must be periodic.

The gate approach leaves signal unaltered when passed, eg. no phase shift, but
latency creates a phase shift from observation to detection time as discussed above.

Another approach is use a PLL and lock detector to control gate, but thats not brick
wall due to loop noise generated by phase detector.

If you want to play with digital approach here is a cheap board, $ 20, a SOC, all this
and more on one chip. You can use the filter wizard and play with biquad or FIR approaches,
with various windows. Compiler and IDE (PSOC Creator) free. Board is CY8CKIT-059.

1706646311164.png


Regards, Dana.
 
Last edited:
An example focused on 50 Hz, but phase is seriously ugly :

1706646854453.png


Here is a biquad solution, again phase is not of this earth.....

1706647347950.png



Regards, Dana.
 

Attachments

  • 1706647068227.png
    1706647068227.png
    114.3 KB · Views: 53
Last edited:
My ADD kicked in and "everything above 60 Hertz" became a HPF. The LPF case also
would have the same limitations on latency/phase.

What causes the noise ? And what limitations on Latency do you have , secs, Femtosecs,
Eons......................,. And your control loop why not implement zero's in it to lift the phase ?
Have you done a Routh Hurwitz eval of the control loop to see what elements carry
most of the stability margin......? A Bode plot of loop gain and phase ?

Here is LPF FIR with step response :

1706658007494.png









Regards, Dana.
 
Last edited:
There is a problem with what you are asking for. When it comes to signals there is no such thing as zero. Look at the dB scale for comparing magnitudes. Nowhere is there a value in dB that corresponds to zero. The log() function we use to represent relative magnitudes is undefined for the value 0. The other practical problem we run into is that at some level a small signal is indistinguishable from random thermal noise. We see this in the RF spectrum all the time.

As has been mentioned, we can with a digital filter, create an output that is identically zero.
 
I think digital filter is the way to go here, but are there any good algorithms to refer to that are quick to implement in c++?
The source of the signals is from a real-time stabilization of an image constructed of a moving object (in digital domain) which are then sent out as analog signal. This is combined with another analog signal of other system that scans that object.

At the end this second system scan signal will be "stabilized" according to the signals that it gets from first system.

Not sure if I am explaining it properly
 
"Quick" means what in time ? Of course picture resolution and color depth
all enter into the design criteria.

Sounds like last step is an image convolution process running on front end,
delayed of course by the motion evaluation.


Regards, Dana.
 
I think digital filter is the way to go here, but are there any good algorithms to refer to that are quick to implement in c++?
The source of the signals is from a real-time stabilization of an image constructed of a moving object (in digital domain) which are then sent out as analog signal. This is combined with another analog signal of other system that scans that object.

At the end this second system scan signal will be "stabilized" according to the signals that it gets from first system.

Not sure if I am explaining it properly
You'll always need time to determine if a signal is noise or signal. Plot through the process and at some point during a transistion, you'll be able to tell noise is noise and signal is signal but it cannot be done at the zero-time mark. And, what you are able to determine is noise is different than what an analog filter (or even a digital filter) can figure out what is noise.
 
Hello,

Wondering if there are any analog filters that can do this that I am not aware of. Basically we are looking for a loop pass fitler with hard cut off (like an elliptical filter) but with zero singal pass through in the stop band and also without phase shift.

thanks
No continuous time filter can have infinite attenuation (no signal pass through) over a band of frequencies, although it can have infinite attenuation at a finite number of points.

See the heading "Paley-Wiener Theorem" here: http://www.ws.binghamton.edu/Fowler/Fowler Personal Page/EE302_files/EEO 401 Note Set 27.pdf
 
Your servo tracking specs seem inadequate to me. You are hoping to eliminate primary system errors with error correction and eliminate noise from external influences. (EMI) Yet each duplicate system may have slightly different forward responses and load regulation disturbances. I cannot think of a good reason to design it this way with impossible filter group delay and attenuation requirements. I can imagine a better way is to define the ideal control signals which may include 1st and 2nd order functions and use the same order feedback in each system with dedicated error correction. For example current feedback might be 1st order and voltage feedback might be 2nd order. Or acceleration might be 1st order feedback and velocity 2nd order and position 3rd order.

Ideally in any servo position control system there must be some 1st order control and 1st order feedback for each state.

- such as acceleration control and current & accelerometer feedback. Then velocity control with velocity (Tach) feedback. Then Position control with position error signal (PES) feedback.

this may require some calibration and design specs for tolerance in each state to determine the acceptable speed and overshoot/damping factor desired.

Can you share more of your design requirements to find an acceptable solution? Otherwise we will see-saw in ideas without them.
 
Last edited:
- such as acceleration control and current & accelerometer feedback. Then velocity control with velocity (Tach) feedback. Then Position control with position error signal (PES) feedback.

The acceleration component is based on differentiating the speed (tacho) signal, in industrial servos.
Mechanical acceleration in a positioning servo is part of the software control, ramping the desired speed.

The commonest design, in the most basic terms, uses a "speed loop" comparing tacho and setpoint to produce a speed error, which in turn feeds a "current loop" via a simple integrator or PID, which compares that signal to motor current and adjusts the PWM or phase angle to adjust the current (torque) and minimise the speed error.

The position loop is external to that, producing a speed error from the target position and measured position.

Example from a Heidenhain CNC control technical manual:

CNC_Servo_Loop.jpg
 
1706882384420.png

  • Differentiating a rotary position decoder to get velocity is OK as it creates phase lead compensation in a servo loop.
  • Whereas sensor integration causes phase lag and reduces phase margin.
  • Although the above block diagram does not show transfer functions,
    • I believe it reinforces my assertion that a good servo design will include 1st order (P=proportional) feedback for each parameter being regulated.
    • Then the ID part of PID is used to provide other benefits e.g.
    • D (differentiating) improves phase margin but adds jitter , and I (integration) provides null steady state error.
 

Latest threads

New Articles From Microcontroller Tips

Back
Top