<!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>