# Alternatives to pole-zero cancellation

I read that pole zero cancellation is a method to get rid of poles outside the unit circle. But I believe exact cancellation could be much harder because of finite precision effects. Are there any other reliable methods to cancel out poles? Also are there any methods to shift poles (and do some required compensation)such that the frequency response is unaffected? Thanks in advance.

• A pole at D mirrored to inside the unit circle to 1/D (at the same angle) will affect the phase response, but not the frequency response. – hotpaw2 Oct 1 '15 at 23:55
• Yes I understand that. If a pole D is on/ very close to unit circle, 1/D would be very close to unit circle too which would still make the filter unstable. So my question was if there are any pole-shift algorithms which let us change the pole locations/ cancel them reliably without getting affected by precision effects. – Curious91 Oct 2 '15 at 2:32
• I think the real question is why do you have poles outside the unit circle in the first place? There are design methods that will guarantee stability, i.e. all poles will be inside the unit circle and there is not need for any heuristic corrections. – Matt L. Oct 2 '15 at 7:03
• This would be a lot easier to answer if you could give a specific example that illustrates the problem you are trying to solve. – Hilmar Oct 2 '15 at 12:21
• Take a low pass filter with a 200 Hz cut off frequency and a sampling frequency of 44100Hz and say order 5- [Blow,Alow]= butter(2*pi*200/44100, 5); zplane(Blow,Alow); By design the filter is stable - poles are inside the unit circle. If I were to connect two such filters in parallel, the pole locations should be the same. But because of precision effects- the poles move (outside the unit circle). zplane(1,conv(Alow,Alow)) (parallel connection is same as convolution of coefficients). – Curious91 Oct 2 '15 at 14:13