<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.23562"></HEAD>
<BODY>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>Hello SDIY
Team,</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>So, ever since I've
been building Bode frequency shifters, I've been curious about how to actually
design best-case 90-degree phase displacement networks. Here's a brief
history of my experience with this:</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>First, I used the
numbers in the Electronotes article, EN-168.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>Then I discovered
the QuadNet program on the internet, which gives more accurate PDNs than the
Electronotes numbers. </SPAN></FONT><FONT size=2 face=Arial><SPAN
class=619271402-06012021>However, the QuadNet program is a pain to use, and
restricts one to certain frequency ranges. For example, you can't have a
low frequency lower than 1 Hz, or a frequency range higher than 4 orders of
magnitude. I want to go lower and broader.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>So, the Electronotes
method is an approximation to the problem reported by Weaver in
1954 (which I tracked down). It's easy to use, but does not give true
Chebyshev approximation accuracy.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>I contacted the guy
who wrote the QuadNet program to see if he could give me the source of the math
he used in the program. He had forgotten, and didn't have any
documentation.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>So, I started
looking up the original references for this problem. After much hunting, I
found Darlington's paper from 1950 in the Bell Labs technical journal. It
explains the problem, but not in a way in which my tiny brain could
make immediate use.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>After a bit
more searching, I found a Masters thesis by a guy named Donald Douglas from
1961, and his references included another 1950 paper by a guy named Orchard
from a journal called Wireless Engineer. I finally found a PDF of this
article on the web lastnight, and I have now been able to exactly
reproduce my designs from QuadNet using the techniques in this paper.
Thankfully, there is a very nice numerical example in the paper which
demonstrates the use of the Landen transformation to calculate Jacobi's elliptic
sine function from circular sines. With this, it is trivially easy to find
the correct RC factors for the chains of first-degree allpass
filters.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>As of now, I can do
it very quickly in an Excel spreadsheet, but I'm going to write a function
subprogram in Visual Basic that will make the RC factors available as
an Excel function -- something like PDN90RC(F1, F2, N, n) where F1 and F2 are
the mininum and maximum frequencies, N is the total number of filter stages, and
n is the filter stage of interest.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>I'll let you all
know when I've got the function subprogram figured out. Maybe I'll write a
little paper about it as well.</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021></SPAN></FONT><FONT
size=2 face=Arial><SPAN class=619271402-06012021></SPAN></FONT> </DIV>
<DIV><FONT size=2 face=Arial><SPAN
class=619271402-06012021>Cheers,</SPAN></FONT></DIV>
<DIV><FONT size=2 face=Arial><SPAN class=619271402-06012021>Doc
Sketchy</SPAN></FONT></DIV></BODY></HTML>