For more detail, see the links I already provided:
I almost can't think of much to add. However, I will use the information available in both those above in the following way (using freely available Sympy and Sage):
def G(n,z):
if n < 1 : return H(n,z)
return H(n,z)*G(n-1,z)
def H(n,z):
if n < 1:return 1
return 1/(2+z-H(n-1,z))
R,C,omega = symbols('R,C,omega',real=True) ' Variables are real-domain.
ZC = 1/(s*C) ' Impedance of C.
Z1 = R / ZC ' RC stage ratio (ZC/R for CR stage.)
tf1 = simplify(ratsimp( G( 3, Z1 ) )) ' Compute the transfer function.
tf1 ' Display the transfer function.
1/(C**3*R**3*s**3 + 5*C**2*R**2*s**2 + 6*C*R*s + 1)
Since this must provide \$180^\circ\$ of phase shift (the inverter providing the remaining \$180^\circ\$), the imaginary portion goes \$\to0\$. So:
im1 = im(fraction(tf1)[1].subs(s,I*omega)) ' Extract denominator & sub s=j*omega
im1
-C**3*R**3*omega**3 + 6*C*R*omega
solve( Eq(im1,0), omega )[0]
sqrt(6)/(C*R)
So if \$\tau=R\,C\$ then \$\omega=\frac{\sqrt{6}}{\tau}\$ or \$f=\frac{\sqrt{6}}{2\pi\,R\,C}\$.
Were this a series of 3 CR stages then:
Z2 = ZC / R
tf2 = simplify(ratsimp( G( 3, Z2 ) ))
re2 = re(fraction(tf2)[1].subs(s,I*omega))
solve( Eq(re2,0), omega )[0]
sqrt(6)/(6*C*R)
I used the real part in this case because the numerator of tf2
had \$s^3\$ in it, which is imaginary when \$s=j\,\omega\$. So in this case \$f=\frac1{2\pi\sqrt{6}\,R\,C}\$.
I thought I'd add some predictions based upon the above analysis tools for the RC case (not the CR.)
First, here's a table:
$$\begin{align*}
N&&\text{Required Gain}&&\text{Scaling Factor}=\omega\tau\\\\
3&&29&&\sqrt{6}\approx 2.449\\\\
4&&\frac{901}{49}\approx 18.4&&\frac17\sqrt{70}\approx 1.195\\\\
5&&217\sqrt{181}-2904\approx 15.4&&\sqrt{14-\sqrt{181}}\approx 0.739\\
\end{align*}$$
From:
for i in range(3,6):
s_tf = simplify(ratsimp(G(i,Z1)))
s_omega = solve(Eq(im(fraction(s_tf)[1].subs(s,I*omega)),0),omega)[0]
s_K = 1/abs(simplify(G(i,Z1)).subs(s,I*s_omega))
(i, s_tf, s_K, s_omega)
(3,
1/(C**3*R**3*s**3 + 5*C**2*R**2*s**2 + 6*C*R*s + 1),
29,
sqrt(6)/(C*R))
(4,
1/(C**4*R**4*s**4 + 7*C**3*R**3*s**3 + 15*C**2*R**2*s**2 + 10*C*R*s + 1),
901/49,
sqrt(70)/(7*C*R))
(5,
1/(C**5*R**5*s**5 + 9*C**4*R**4*s**4 + 28*C**3*R**3*s**3 + 35*C**2*R**2*s**2 + 15*C*R*s + 1),
-2904 + 217*sqrt(181),
sqrt(14 - sqrt(181))/(C*R))
The required gain declines when adding more stages. One might first imagine the opposite, guessing that more stages should cause more attenuation. But as the frequency also declines, the impedance of the frequency-dependent capacitors increase and therefore each of them attenuates less. So the net impact is to require less gain, not more, as \$N\$ increases.
Now use \$R=10\:\text{k}\Omega\$ and \$C=100\:\text{nF}\$. This suggests a basic frequency of \$f_{_0}=\frac1{2\pi\,R\,C}\approx 159.155\:\text{Hz}\$. But the above scaling factors must be applied to that figure. So:
- \$N=3\$: Expect \$f=2.449\cdot 159.155\:\text{Hz}\approx 398.77\:\text{Hz}\$
- \$N=4\$: Expect \$f=1.195\cdot 159.155\:\text{Hz}\approx 190.19\:\text{Hz}\$
- \$N=5\$: Expect \$f=0.739\cdot 159.155\:\text{Hz}\approx 117.62\:\text{Hz}\$
Setting things up with at least the required gain (a little more just to be sure) provides the following schematic and results:
(Feel free to expand the image by clicking on it.)
I buffered the output of the phase shift section so as not to load it down. And I provided two different gain stages. One to drive the input of the phase shift section with at least the required gain. The other to provide some gain (for visibility reasons) for the buffered output. (Yeah. More opamps. But it's just a simulator. So they are free.)
LTspice says that with \$N=3\$ \$f=389.29\:\text{Hz}\$, with \$N=4\$ \$f=190.12\:\text{Hz}\$, and with \$N=5\$ \$f=117.20\:\text{Hz}\$. (My measurement technique was approximate, using its cursors.) These are all quite consistent with theoretical prediction.
Note that the Cadence link on 'RC Phase Shift Oscillator Design for Sine Wave Generation' uses an incorrect calculation for the frequency, except in the case of \$N=3\$ where they do get it right.
(Note also that you could clearly just buffer each stage in order to remove its load. Then the equation develops more as you suggested.)
Fibonacci relationship
The factors in the characteristic equation for the RC sequence of \$N\$ stages follows, as one might expect, some kind of relationship to Pascal's triangle and Fibonacci. And it does:
This can be used to solve for \$\omega\$ and for the gain. I won't write more about that except to offer a Python function that produces the array of constants:
def J(n):
result = []
for j in range(n+1):
result.append(binomial(2*n-j,j))
return result
for i in range(9):(i,J(i),sum(J(i)))
(0, [1], 1)
(1, [1, 1], 2)
(2, [1, 3, 1], 5)
(3, [1, 5, 6, 1], 13)
(4, [1, 7, 15, 10, 1], 34)
(5, [1, 9, 28, 35, 15, 1], 89)
(6, [1, 11, 45, 84, 70, 21, 1], 233)
(7, [1, 13, 66, 165, 210, 126, 28, 1], 610)
(8, [1, 15, 91, 286, 495, 462, 210, 36, 1], 1597)
There's a slightly interesting link here from mathexchange, too.