<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<STYLE style="DISPLAY: none" type=text/css>P {
MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
</STYLE>
<META name=GENERATOR content="MSHTML 8.00.6001.23562"></HEAD>
<BODY dir=ltr>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>Hello Bernie,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>The reference would be:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>Orchard (1950), Wireless Engineer, vol XXVII, number 318, pp
72-81.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>The "can't do better" aspect has to do with the fact that this
math achieves the minimum error in the Chebyshev sense, and the maximum error is
uniform and periodic across the relevant bandwidth. The theoretical
explanations are covered in the Orchard paper, and also in this
paper:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>Darlington (1950), Bell System Technical Journal, vol XXIX, pp
94-104.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>The Orchard paper has a numerical example (for a 4-stage
network) and this is what allowed me to figure out how to do the math. The
math ultimately is very simple. If the total number of stages is 2N (I'm
restricting it to even-numbered stages), then the pole values are given
as:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>(1/k')^(0.5) * sn(2n*pi/4N,k) /
cn(2n*pi/4N,k)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>where n goes from 1 to N. k' = f1/f2 where f1 and f2 are
the endpoint frequencies of the desired bandwidth. sn and cn are
Jacobi's elliptic sine and cosine. k (the modulus of the Jacobi functions)
= (1 - k'^2)^(0.5). To calculate these Jacobi functions, one uses the
Landen transformation, which allows the reduction of the k and k' values using a
recursive formula until k = 0 and k' = 1. This formula is simply that
the next value of k in the table = (1 - k')/(1 + k'). One then calculates
the new value of k' = (1 - k^2)^(0.5) and continues until k = 0 and k' = 1
(which I have confirmed takes no more than 8 steps regardless of the initial
value of k'). Once k' = 1, the Jacobi sn function is equivalent to the
circular sine function. So, a table of sine values sin(2n*pi/4N) is
generated. The corresponding sn values for each value of k up the table
are then generated from the formula sn = (1 + k)*sin/(1 + k*sin^2) until
one gets to the top of the table and the original k' value. This top value
is the sn required for the pole calculation. cn = (1 - sn^2)^(0.5),
and now the poles can be calculated directly. My code does all
this.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>Here is a plot of the phase for a 16-stage allpass
network comparing the Weaver approximation documented in EN-168 with the
minimum-error algorithm documented in Orchard. The bandwidth is
from 1 to 10000 Hz. I have confirmed that the results of my
calculations are identical to those from the QuadNet program. The problem
with that program is that it won't go lower than 1 Hz or bigger than 4 orders of
magnitude. It's also an inconvenient pain to use.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><IMG border=0 hspace=0
alt="" align=baseline src="cid:448170120@08012021-02FB"></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>As you can see, the maximum error is not constant by the
Weaver method. Also, the conformance falls apart at the extremes of the
bandwidth, whereas the Orchard method actually gives decent conformance well
above and below the bandwidth. The Orchard method is exactly what is
desired, the true Chebyshev minimum error. Either one would work perfectly
well in practice, but why go with a known compromise when the exact solution is
available?</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial>Of course, one can get even better performance from the Weaver
method by expanding the bandwidth a bit beyond the desired limits to push the
error to zero at those limits, but this is a chore to do, and will also increase
the error in the centre of the bandwidth.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=448170120-08012021><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left>
<HR tabIndex=-1>
</DIV>
<DIV dir=ltr align=left><FONT size=2 face=Tahoma><B>From:</B> Synth-diy
[mailto:synth-diy-bounces@synth-diy.org] <B>On Behalf Of </B>Bernard Arthur
Hutchins, Jr<BR><B>Sent:</B> Thursday, January 07, 2021 7:05 PM<BR><B>To:</B>
synth-diy@synth-diy.org<BR><B>Subject:</B> [sdiy] 90-degree phase displacement
network calculations<BR></FONT><BR></DIV>
<DIV></DIV><SPAN
style="BACKGROUND-COLOR: #ffecb3; COLOR: #000000; FONT-SIZE: 12px"><SPAN
style="BACKGROUND-COLOR: #ffecb3; COLOR: #000000; FONT-SIZE: 12px"><SPAN
style="PADDING-BOTTOM: 3px; LINE-HEIGHT: 1.6; BACKGROUND-COLOR: #ffecb3; FONT-STYLE: normal; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: #000000; FONT-SIZE: 12px; FONT-WEIGHT: normal; PADDING-TOP: 3px">[<STRONG>CAUTION:</STRONG>
Non-UBC Email]</SPAN></SPAN></SPAN>
<DIV style="FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: rgb(0,0,0)">
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif"
class=MsoNormal><SPAN style="FONT-FAMILY: Arial, sans-serif"><O:P><SPAN
style="BACKGROUND-COLOR: rgb(250,250,250); FONT-SIZE: 18px"> </SPAN><SPAN
style="FONT-SIZE: 12pt"> </SPAN></O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><SPAN
style="mso-spacerun: yes"> </SPAN>The “design” of 90-Degree
Phase-Differencing Networks (90-degreePDNs) can involve some deeper theoretical
discussions as well as practical ”plug and chug” equation summaries.<SPAN
style="mso-spacerun: yes"> </SPAN>The earliest offerings in EN involved
references to academic presentations from which practical equations were largely
just cribbed {D. Weaver, "Design of RC Wide-Band 90-Degree Phase-Difference
Network," Proc. IRE, Vol. 42, pp 671-676 (1954); W. Albershein & F. Shirley,
"Computation Methods for Broad-Band 90° Phase-Difference Networks," IEEE Trans.
Ckt. Theory, CT-16, pg 189 (1969) }.<SPAN style="mso-spacerun: yes">
</SPAN>See a summary at:<O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><A
href="http://electronotes.netfirms.com/MEHCh6aPart.PDF">http://electronotes.netfirms.com/MEHCh6aPart.PDF</A><O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt">with details at:<SPAN
style="mso-spacerun: yes"> </SPAN><A
href="http://electronotes.netfirms.com/AN167-AN170.PDF">http://electronotes.netfirms.com/AN167-AN170.PDF</A><O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt">and a quit important
contribution to practical implementations at: “Design of Wideband Analog 90°
Phase Differencing Networks Without a Large Spread of Capacitor Values”; <A
href="http://electronotes.netfirms.com/EN168-90degreePDN.PDF">http://electronotes.netfirms.com/EN168-90degreePDN.PDF</A><O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><O:P></O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt">The offering here from
David seems to be (like our own!) deficient in theoretical explanations. <SPAN
style="mso-spacerun: yes"> </SPAN>Is there a link/reference?<SPAN
style="mso-spacerun: yes"> </SPAN>Perhaps no one cares? <SPAN
style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN>But some notion of a “UNIQUE-BEST ” (UB)
(can’t do better) solution requires theory – in this case it seems to be the
“alternation theorem” (AT) as applied to the phase
error.<O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><O:P></O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt">The AT allows us to
RECOGNIZE the UB equi-ripple solution in terms of the finding of a correct <SPAN
style="mso-spacerun: yes"> </SPAN>SET of “extremal frequencies” as found by
ITERATING an “exchange algorithm” (Remez or Parks-McClellan). <SPAN
style="mso-spacerun: yes"> </SPAN>No closed form is possible, but
convergence is very rapid.<BR><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN><O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt">I
have not attempted this.<O:P> </O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><O:P>-Bernie</O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><SPAN
style="FONT-FAMILY: 'Arial',sans-serif; FONT-SIZE: 12pt"><O:P></O:P></SPAN></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P>
<P
style="LINE-HEIGHT: 107%; MARGIN: 0in 0in 8pt; FONT-FAMILY: Calibri, sans-serif; FONT-SIZE: 11pt"
class=MsoNormal><O:P></O:P></P><BR></DIV></BODY></HTML>