Математический вопрос, возникающий при использовании билинейного преобразования


10

Так что это связано с кулинарной книгой, и я попытался решить ее, может быть, два десятилетия назад, сдался, и мне напомнили о нерешенной проблеме. Но это чертовски прямолинейно, но я все еще был в грязи.

Это простой полосовой фильтр (БПФ) с резонансной частотой Ω0 и резонансомQ :

H(s)=1QsΩ0(sΩ0)2+1QsΩ0+1

На резонансной частоте

|H(jΩ)|H(jΩ0)=1

а верхние и нижние полосы определены так, чтобы

|H(jΩU)|2=|H(jΩ02BW/2)|2=12

|H(jΩL)|2=|H(jΩ02BW/2)|2=12

Мы называем их «полосами половинной власти» . Поскольку мы являемся аудио, мы определяем полосу пропускания в октавах, а в аналоговом мире эта полоса пропускания в октавах, , связана с как:QBWQ

1Q=2BW12BW=2sinh(ln(2)2BW)

Мы используем билинейное преобразование (с предварительно искаженной резонансной частотой), которое отображает:

sΩ01tan(ω0/2)1z11+z1jΩΩ0jtan(ω/2)tan(ω0/2)

пусть и . s = j Ωz=ejωs=jΩ

Резонансная угловая частота аналогового фильтра равна , а компенсация деформации частоты выполняется до резонансной частоты в реализованном цифровом фильтре, когда (определяемая пользователем резонансная частота), затем . ω = ω 0 Ω = Ω 0Ω0ω=ω0Ω=Ω0

Так что если аналоговая угловая частота

ΩΩ0=tan(ω/2)tan(ω0/2)

затем он отображается на цифровую угловую частоту как

ω=2arctan(ΩΩ0tan(ω0/2))

Теперь верхние и нижние полосы в аналоговом мире

ΩU=Ω02BW/2
ΩL=Ω02BW/2

и в цифровой частотной области

ωU=2arctan(ΩUΩ0tan(ω0/2))=2arctan(2BW/2tan(ω0/2))

ωL=2arctan(ΩLΩ0tan(ω0/2))=2arctan(2BW/2tan(ω0/2))

Тогда фактическая разница в лог-частоте полос (которая является реальной полосой пропускания в цифровом фильтре) равна:

bw=log2(ωU)log2(ωL)=log2(2arctan(2BW/2tan(ω0/2)))log2(2arctan(2BW/2tan(ω0/2))) 

или

ln(2)bw=ln(arctan(eln(2)BW/2tan(ω0/2)))ln(arctan(eln(2)BW/2tan(ω0/2)))

Это имеет функциональную форму

f(x)=ln(arctan(αex))ln(arctan(αex))

где , иf(x)ln(2)bwxln(2)2BWαtan(ω0/2)

То, что я хочу сделать, это инвертировать (но я знаю, что не могу сделать это точно с хорошей закрытой формой). Я уже сделал приближение первого порядка, и я хочу увеличить его до приближения третьего порядка. И это стало своего рода собачьей собачкой, хотя это должно быть прямо вперед.f(x)

Теперь это как-то связано с формулой обращения Лагранжа и я хочу перенести ее на еще один термин, чем у меня.

Сверху мы знаем, что является функцией нечетной симметрии:f(x)

f(x)=f(x)

Это означает, что и все члены четного порядка ряда Маклаурина будут равны нулю:f(0)=0

y=f(x)=a1x+a3x3+...

Обратная функция также имеет нечетную симметрию, проходит через ноль и может быть выражена в виде ряда Маклаурина.

x=g(y)=b1y+b3y3+...

и если мы знаем, что и имеют , то у нас есть хорошее представление о том, должны быть и :a 3 f ( x ) b 1 b 3a1a3f(x)b1b3

b1=1a1b3=a3a14

Теперь я могу рассчитать производную отf(x) и оценить ее в ноль, и я получаю

a1=2α(1+α2)arctan(α)=sin(ω0)ω0/2
b1=(1+α2)arctan(α)2α=ω0/2sin(ω0)

Но у меня есть сука времени, получая и, следовательно, . Кто-нибудь может это сделать? Я бы даже согласился на сплошное выражение для третьей производной функции оцененной при .a3b3f(x)x=0


2
Просто чтобы уточнить: Ваша цель - инвертировать , то есть для заданного вы хотите найти ? В частности, вы хотите сделать это с помощью полиномиального расширения и ищете 3-й коэффициент (поскольку 2-й - ноль, делайте для нечетности функции). Правильно? е(х)х
f(x)=ln(arctan(αex))ln(arctan(αex))
f(x)x
Максимилиан Мате

2
Итак, вы хотите знать заданную , т.е. вы хотите знать, какую полосу пропускания аналогового фильтра вам нужно выбрать, чтобы получить желаемую полосу пропускания цифрового фильтра, верно? Ь шBWbw
Мэтт Л.


1
@ robertbristow-johnson Я не слишком внимательно прочитал вопрос, но заметил, что вас интересует при . Можно ли использовать Mathematica или Wolfram Alpha для вычисления этого? Я получаю довольно чистый результат: . wolframalpha.com/input/… И если вы уберете часть «оценивать при x = 0», Вольфрам выплюнет сочетающуюся собачью собаку во всей ее красе. x = 0 4 ( 8 - π 2 ) α 3f(x)x=04(8π2)α3π3
Атул Ингл

1
Опечатка в моем есть. «Чистый» результат на самом деле: wolframalpha.com/input/...f(x)(6a2)/((a2+1)2atan(a)2)+(2a)/((a2+1)atan(a))+(16a5)/((a2+1)3atan(a))+(12a4)/((a2+1)3atan(a)2)(16a3)/((a2+1)2atan(a))+(4a3)/((a2+1)3atan(1)(a)3)
Атула Ингл

Ответы:


4

Чтобы дополнить мою часть этого вопроса: Вот несколько сокращенный ответ, основанный на ручном расширении нечетной функции в серию до третьего порядка. Некоторые подробности можно найти на mathSE .f(x)

f(x)=ln(arctan(αex))ln(arctan(αex))(1)=f1x+f3x3+O(x5)

Сначала мы фокусируемся на левом члене элемента и начинаем с

ln(arctan(αex))
f(x)

Расширение серии :arctan

Мы получаем

arctan(αex)=n=0(1)n2n+1α2n+1e(2n+1)x=(2)=j=01j!n=0(1)n(2n+1)j1α2n+1xj

Теперь получим из (2) коэффициенты до . Используя оператор коэффициента для обозначения коэффициента в ряду, получим x3[xk]xk

[x0]arctan(αex)=n=0(1)n2n+1α2n+1=arctanα[x1]arctan(αex)=n=0(1)nα2n+1=α1+α2[x2]arctan(αex)=12n=0(1)n(2n+1)α2n+1==α2ddα(α1+α2)=α(1α2)2(1+α2)2[x3]arctan(αex)=16n=0(1)n(2n+1)2α2n+1=α26n=0(1)n(2n+1)(2n)α2n1+α6n=0(1)n(2n+1)α2n==(α26d2dα2+α6ddα)(α1+α2)==α56α3+α6(1+α2)3

Мы заключаем

arctan(αex)=arctan(α)+α1+α2x+α(1α2)2(1+α2)2x2(3)+α56α3+α6(1+α2)3x3+O(x4)

Полномочия в логарифмической серии:

Чтобы вывести коэффициенты логарифмического ряда мы записываем выражение (3) как и мы рассматриваем

ln(arctan(αex))=n=1(1)n+1n(arctan(αex)1)n
arctan(αex)=a0+a1x+a2x2+a3x3+O(x4)
(4)ln(arctan(αex))=n=1(1)n+1n((a01)+a1x+a2x2+a3x3)n+O(x4)

Теперь мы устанавливаем и извлекаем коэффициенты от до из A(x)=(a01)+a1x+a2x2+a3x3x0x3

(A(x))n=((a01)+a1x+a2x2+a3x3)n=j=0n(nj)(a01)j(a1x+a2x2+a3x3)nj(5)=j=0n(nj)(a01)jk=0nj(njk)a1kxk(a2x2+a3x3)njk

Мы получаем из (5)

[x0](A(x))n==(a01)n[x1](A(x))n==a1n(a01)n1[x2](A(x))n==a2n(a01)n1+12n(n1)a12(a01)n2[x3](A(x))n==na3(a01)n1+a1a2n(n1)(a01)n2(6)+16n(n1)(n2)a13(a01)n3

Серийное расширение логарифма:

Мы вычисляем, используя (6) коэффициенты в терминахln(arctan(αex))aj,0j3

[x0]ln(arctan(αex))=n=1(1)n+1n[x0]A(x)=n=1(1)n+1n[x0](a01)n=ln(a01)[x1]ln(arctan(αex))=n=1(1)n+1n[x1]A(x)=n=1(1)n+1n[x0]a1n(a01)n1=a1n=0(1)n(a01)n=a1a0[x2]ln(arctan(αex))=n=1(1)n+1n[x2]A(x)=n=1(1)n+1n(a2n(a01)n1+12n(n1)a12(a01)n2)==(a2+a122dda0)(1a0)=a2a0a122a02[x3]ln(arctan(αex))=n=1(1)n+1n[x3]A(x)=n=1(1)n+1n(na3(a01)n1+a1a2n(n1)(a01)n2+16n(n1)(n2)a13(a01)n3)==(a3+a1a2dda0+a136d2da02)(1a0)(7)=a3a0a1a2a02+a133a03

Серийное расширение :f(x)

Теперь пришло время собирать урожай. Наконец, из (3) и (7) получаем, что нечетноf(x)

f(x)=ln(arctan(αex))ln(arctan(αex))==2a1a0x+2(a3a0a1a2a02+a133a03)x3+O(x5)=2α(1+α2)arctan(α)x+α3(1+α2)3arctan(α)(α46α2+13α(1α2)arctan(α)+2α2(arctan(α))2)x3+O(x5)

Маркус, хотя вы правы относительно , так как мы знаем, что имеет нечетную симметрию и что члены четного порядка равны нулю, я думаю, вы можете сказать, что это расширение хорошо для . O(x4)f(x)O(x5)
Роберт Бристоу-Джонсон

@ Робертбристоу-Джонсон: Да, конечно. Обновлен соответственно. :-)
Маркус Шойер

Большие усилия! Пытаясь прочитать этот подробный и длинный ответ, я не мог понять, как можно выделить в уравнении (4) вне логарифма? Бесконечный ряд уже включает в себя каждую степень , так что же там означает изолированный термин ? O(x4)xO(x4)
Fat32

Конечно, я почувствовал, что вы хотите сказать, но тогда правильная запись может выглядеть примерно так: где я использовал чтобы держаться подальше от всех других ваших обозначений. И обратите внимание, что я использовал и чтобы различать эти два набора коэффициентов. Так что теперь ваше уравнение (4) и эта строка не совпадают. Однако я не думаю, что это повлияет на ваш дальнейший прогресс.
ln(arctan(αex)) = n=1(1)n+1n((a01)+a1x+a2x2+a3x3+O1(x4))n = T0+T1x+T2x2+T3x3+O2(x4)
TO1O2
Fat32

@ Fat32: Возможно, вы захотите взглянуть на нотацию Big-O
Маркус Шойер

3

(Преобразование комментария в ответ.)

Используя Wolfram Alpha, при оценивается как: f(x)x=0

f(0)=6α2(α2+1)2(arctan(α))2 + 2α(α2+1)arctan(α)+16α5(α2+1)3arctan(α) + 12α4(α2+1)3(arctan(α))216α3(α2+1)2arctan(α) + 4α3(α2+1)3(arctan(α))3=2(α46α2+1)α(α2+1)3arctan(α)+6(α21)α2(α2+1)3(arctan(α))2+4α3(α2+1)3(arctan(α))3

http://www.wolframalpha.com/input/?i=evaluate+d3%2Fdx3++(+ln+(arctan+(a+exp(+x)))+-+ln+(arctan(a+exp(-+x) )) +) + при + х% 3D0

Мы также можем дважды проверить, совпадает ли это с ответом Маркуса здесь .

Его коэффициент оказываетсяx3

α3(1+α2)3arctan(α)(α46α2+13α(1α2)arctan(α)+2α2(arctan(α))2).

Если мы умножим это на 6 и изменим некоторые факторы, мы получим:

2α(α46α2+1)(1+α2)3arctan(α)6α2(1α2)(1+α2)3(arctan(α))2+4α3(1+α2)3(arctan(α))3

который совпадает!


Атул, похоже, что ваш упрощенный ответ не соответствует ответу Маркуса на математике SE. должно быть так, что я не думаю, что каждый член в вашем f '' '(0) соответствует Маркусу. может быть, что Маркус не прав.
f(x)|x0 = 3!a3=6a3
Роберт Бристоу-Джонсон

2
@ robertbristow-johnson Думаю, они совпадают.
Атул Ингл

они делают сейчас. Я думаю, что у Маркуса была ошибка. он сделал свой ответ старомодным способом.
Роберт Бристоу-Джонсон

Атул, ты получишь свою награду. но я изучил правила о вознаграждении, и они не позволяют мне разделить его, но они позволяют мне присудить его дважды, по одному за раз. поэтому, поскольку у Маркуса меньше представителей, чем у вас здесь, на dsp.se, и поскольку он выкачивал ответ без помощи компьютера, я сначала присуждаю его награду. тогда я назначу еще одну награду за этот вопрос, а затем награду его вам. он говорит, что мне нужно подождать 23 часа. не знаю, кто получит мою "галочку" еще.
Роберт Бристоу-Джонсон

1
@ robertbristow-johnson извините за поздний ответ. Коэффициенты составляют для соответственно. wolframalpha.com/input/...2/3,2/15,16/945,2/945ω02,ω04,ω06,ω08
Атул Ingle

3

Проблема, поставленная в вопросе, по-видимому, не имеет решения в замкнутой форме. Как упомянуто в вопросе и показано в других ответах, результат может быть преобразован в серию, которая может быть выполнена любым символическим математическим инструментом, таким как Mathematica. Однако термины становятся довольно сложными и безобразными, и неясно, насколько хороша аппроксимация, когда мы включаем термины до третьего порядка. Поскольку мы не можем получить точную формулу, возможно, было бы лучше вычислить решение численно, что, в отличие от аппроксимации, даст (почти) точный результат.

Однако это не то, о чем мой ответ. Я предлагаю другой путь, который дает точное решение путем изменения формулировки проблемы. Подумав некоторое время, выясняется, что именно спецификация центральной частоты и спецификация ширины полосы как отношения (или, что то же самое, в октавах) вызывает математическую неразрешимость. Есть два выхода из этой дилеммы:ω0

  1. укажите полосу пропускания фильтра дискретного времени как разность частот , где и - это нижняя и верхняя границы полосы фильтра дискретного времени, соответственно.Δω=ω2ω1ω1ω2
  2. укажите соотношение и вместо одну из двух граничных частот или .ω2/ω1ω0ω1ω2

В обоих случаях возможно простое аналитическое решение. Поскольку желательно задавать полосу пропускания фильтра с дискретным временем как отношение (или, что то же самое, в октавах), я опишу второй подход.

Определим граничные частоты и с непрерывным временем с помощьюΩ1Ω2

(1)|H(jΩ1)|2=|H(jΩ2)|2=12

with , где - передаточная функция полосового фильтра второго порядка:Ω2>Ω1H(s)

(2)H(s)=ΔΩss2+ΔΩs+Ω02

с и . Обратите внимание, что и для .ΔΩ=Ω2Ω1Ω02=Ω1Ω2H(jΩ0)=1|H(jΩ)|<1ΩΩ0

Мы используем билинейное преобразование для отображения граничных частот и фильтра с дискретным временем на граничные частоты и с непрерывным временем. Без ограничения общности мы можем выбрать . Для наших целей билинейное преобразование принимает формуω1ω2Ω1Ω2Ω1=1

(3)s=1tan(ω12)z1z+1

соответствует следующему соотношению между частотами непрерывного и дискретного времени:

(4)Ω=tan(ω2)tan(ω12)

Из мы получаем , установив . С и вычисленными из , мы получаем передаточную функцию аналогового фильтра-прототипа из . Применяя билинейное преобразование , мы получаем передаточную функцию полосового фильтра с дискретным временем:(4)Ω2ω=ω2Ω1=1Ω2(4)(2)(3)

(5)Hd(z)=gz21z2+az+b

с

(6)g=ΔΩc1+ΔΩc+Ω02c2a=2(Ω02c21)1+ΔΩc+Ω02c2b=1ΔΩc+Ω02c21+ΔΩc+Ω02c2c=tan(ω12)

Резюме:

Полоса пропускания фильтра с дискретным временем может быть указана в октавах (или, как правило, в виде отношения), и параметры аналогового фильтра-прототипа могут быть точно рассчитаны, так что достигается указанная полоса пропускания. Вместо центральной частоты мы указываем края полосы и . Центральная частота, определяемая как является результатом проекта.ω0ω1ω2|Hd(ejω0)|=1

Необходимые шаги следующие:

  1. Укажите желаемое соотношение ребер полосы и одного из ребер полосы (что, конечно, эквивалентно простому указанию и ).ω2/ω1ω1ω2
  2. Выберите и определите из . Вычислить и аналогового фильтра-прототипа .Ω1=1Ω2(4)ΔΩ=Ω2Ω1Ω02=Ω1Ω2(2)
  3. Оцените константы чтобы получить передаточную функцию с дискретным временем .(6)(5)

Обратите внимание, что при более распространенном подходе, где и , фактические края полосы и являются результатом процесса проектирования. В предлагаемом решении можно указать края полосы, и является результатом процесса проектирования. Преимущество последнего подхода состоит в том, что полоса пропускания может быть указана в октавах, и решение является точным, то есть результирующий фильтр имеет точно указанную полосу пропускания в октавах.ω0Δω=ω2ω1ω1ω2ω0

Пример:

Давайте определим полосу пропускания в одну октаву и выберем нижний край полосы как . Это дает верхний край полосы . Края полосы аналогового фильтра-прототипа: и из (с ) . Это дает и . С помощью получаем передаточную функцию с дискретным временемω1=0.2πω2=2ω1=0.4πΩ1=1(4)ω=ω2Ω2=2.2361ΔΩ=Ω2Ω1=1.2361Ω02=Ω1Ω2=2.2361(6)(5)

Hd(z)=0.24524z21z20.93294z+0.50953

который достигает точно ширины полосы в 1 октаву и указанных краев полосы, как показано на рисунке ниже:

enter image description here

Численное решение исходной задачи:

Из комментариев я понимаю, что важно уметь точно указывать центральную частоту для которой . Как упоминалось ранее, невозможно получить точное решение в замкнутой форме, и разработка серии приводит к довольно громоздким выражениям.ω0|Hd(ejω0)|=1

Для ясности хотелось бы обобщить возможные варианты с их достоинствами и недостатками:

  1. укажите желаемую пропускную способность как разность частот и укажите ; в этом случае возможно простое решение в замкнутой форме.Δω=ω2ω1ω0
  2. указать края полосы и (или, что эквивалентно, ширину полосы в октавах и один из краев полосы); это также приводит к простому решению в замкнутой форме, как объяснено выше, но центральная частота является результатом проектирования и не может быть указана.ω1ω2ω0
  3. укажите желаемую пропускную способность в октавах и центральную частоту (как указано в вопросе); решение в замкнутой форме невозможно, и пока нет простого приближения. По этой причине я думаю, что желательно иметь простой и эффективный метод для получения численного решения. Это то, что объясняется ниже.ω0

Когда указывается мы используем форму билинейного преобразования с константой нормализации, отличной от той, которая используется в и :ω0(3)(4)

(7)Ω=tan(ω2)tan(ω02)

Мы определяем . Обозначим указанное отношение краев полосы фильтра с дискретным временем какΩ0=1

(8)r=ω2ω1

С мы получаем из иc=tan(ω0/2)(7)(8)

(9)r=arctan(cΩ2)arctan(cΩ1)

С , можно переписать в следующем виде:Ω1Ω2=Ω02=1(9)

(10)f(Ω1)=rarctan(cΩ1)arctan(cΩ1)=0

Для данного значения это уравнение может быть решено для с помощью нескольких итераций Ньютона. Для этого нам понадобится производная от :rΩ1f(Ω1)

(11)f(Ω1)=c(r1+c2Ω12+1c2+Ω12)

При мы знаем, что должен находиться в интервале . Даже при том, что возможно придумать более начальные решения, оказывается, что начальное предположение хорошо работает для большинства спецификаций и приведет к очень точным решениям только после итераций метода Ньютона:Ω0=1Ω1(0,1)Ω1(0)=0.14

(12)Ω1(n+1)=Ω1(n)f(Ω1(n))f(Ω1(n))

С получены с помощью нескольких итераций мы можем определить и , и мы используем и для вычисления коэффициентов фильтр с дискретным временем. Обратите внимание, что константа теперь задается как .Ω1(12)Ω2=1/Ω1ΔΩ=Ω2Ω1(5)(6)cc=tan(ω0/2)

Пример 1:

Давайте определим и полосу пропускания октавы. Это соответствует соотношению . С начального приближения из , итерации метода Ньютона привели в растворе , из которой коэффициенты дискретного времени может быть вычислена , как описано выше. На рисунке ниже показан результат:ω0=0.6π0.5r=ω2/ω1=20.5=2=1.4142Ω1=0.14Ω1=0.71

enter image description here

Фильтр был рассчитан с помощью этого сценария Matlab / Octave:

% технические характеристики
bw = 0,5; % желаемой полосы пропускания в октавах
w0 = 0,6 * pi; % резонансная частота

г = 2 ^ (мс); % отношение краев полосы
W1 = .1; % начальная догадка (работает для большинства спецификаций)
Nit = 4; % # Ньютоновских итераций
с = загар (w0 / 2);

% Ньютон
для i = 1: нит,
    f = r * атан (с * W1) - атан (с / W1);
    fp = c * (r / (1 + c ^ 2 * W1 ^ 2) + 1 / (c ^ 2 + W1 ^ 2));
    W1 = W1 - f / fp
конец

W1 = абс (W1);
if (W1> = 1), error ('Не удалось сходиться. Уменьшить значение первоначального предположения.'); конец

W2 = 1 / W1;
dW = W2 - W1;

% дискретный фильтр времени
масштаб = 1 + dW * c + W1 * W2 * c ^ 2;
b = (dW * c / масштаб) * [1,0, -1];
a = [1, 2 * (W1 * W2 * c ^ 2-1) / шкала, (1-dW * c + W1 * W2 * c ^ 2) / шкала];

Пример 2:

Я добавляю еще один пример, чтобы показать, что этот метод также может работать со спецификациями, для которых большинство приближений даст несмысленные результаты. Это часто имеет место, когда желаемая ширина полосы и резонансная частота являются большими. Давайте фильтр с и октавы. Четыре итерации метода Ньютона с начальным предположением приводят к конечному значению , т. пропускной способности аналогового прототипа октав. Соответствующий фильтр с дискретным временем имеет следующие коэффициенты, и его частотная характеристика показана на графике ниже:ω0=0.95πbw=4Ω1(0)=0.1Ω1=0.00775log2(Ω2/Ω1)=log2(1/Ω12)14

b = 0,90986 * [1,0, -1];
а = [1,00000 0,17806 -0,81972];

enter image description here

Результирующие края полосы половинной мощности равны и , которые на самом деле находятся на расстоянии октавы (т.е. с коэффициентом ).ω1=0.062476πω2=0.999612π416


два начальных комментария (я еще не прочитал это, Мэтт): во-первых, меня интересует частота регистрации больше, чем линейная частота. для аналогового BPF (или цифрового BPF с резонансной частотой, намного меньшей, чем Найквист), существует идеальная симметрия относительно резонансной частоты.
Роберт Бристоу-Джонсон

и второй комментарий таков, хотя я благодарю вас за то, что вы, по-видимому, придерживаетесь обозначений и , я хотел бы, чтобы вы придерживались обозначения, что аналоговые и цифровые резонансные частоты и соответственно, а аналоговые верхние и нижние полосы обозначаются соответственно и а также для цифровых полос: и . мы знаем, что при частоте регистрации половина пропускной способности выше а половина - ниже. но из-за деформации это не совсем верно для цифрового фильтра BPF. s=jΩz=ejωΩ0ω0ΩUΩLωUωLΩ0
Роберт Бристоу-Джонсон

Поскольку я читаю это больше, для меня важно, что резонансная частота точно отображается через билинейное преобразование. так что я понимаю этот подход, Мэтт, но я хочу придерживаться точного отображения и затем настраивать пока будет тем, что указано. ω0BWbw
Роберт Бристоу-Джонсон

@ robertbristow-johnson: Хорошо, достаточно справедливо, вам нужна точная спецификация . Это возможно, если вы укажете как линейную разность (я не понимаю, что вы этого не хотите). Точное решение невозможно с указанным параметром И полосой пропускания в октавах. ω0Δωω0
Мэтт Л.

1
@ robertbristow-johnson: я добавил очень простое числовое решение к моему ответу (4 ньютоновских итерации).
Мэтт Л.

3

хорошо, я пообещал поднять награду, и я сдержу свое обещание. но я должен признаться, что я мог бы немного отречься от удовлетворения только третьей производной от . что я действительно хочу, так это два коэффициента для .f(x)g(y)

поэтому я не осознавал, что существует этот язык Wolfram в качестве альтернативы mathematica или Derive, и я не знал, что он может так легко вычислить третью производную и упростить выражение.

и этот парень из Markus из математического департамента SE опубликовал этот ответ (который, как я думал, должен был соответствовать количеству гранжа, который, как я думал, понадобится).

y=f(x)=ln(arctan(αex))ln(arctan(αex))a1x + a3x3=2α(1+α2)arctan(α)x+α3(1+α2)3arctan(α)(α46α2+13α(1α2)arctan(α)+2α2(arctan(α))2)x3

поэтому я собрал аппроксимацию третьего порядка к обратному:

x=g(y)b1y + b3y3=1a1y  a3a14y3=(1+α2)arctan(α)2αy(1+α2)(arctan(α))348α3(α46α2+13α(1α2)arctan(α)+2α2(arctan(α))2)y3=(1+α2)arctan(α)2αy(1+α2)(arctan(α))348α(α26+α23(1α2)αarctan(α)+2(arctan(α))2)y3=y(arctan(α)α+α12)(1 +((arctan(α))2(1α2+α26)arctan(α)αα1213)y24)

Я надеялся, что это сделает кто-то другой. вспомним , g ( y ) = x ln ( 2 )y=f(x)ln(2)bwи& alphaзагар(ω0/2)g(y)=xln(2)2BWαtan(ω0/2)

x=g(y)y(arctan(α)α+α12)(1 +((arctan(α))2(1α2+α26)arctan(α)αα1213)y24)ln(2)2BW(ln(2)bw)(arctan(α)α+α12)(1 +((arctan(α))2(1α2+α26)arctan(α)αα1213)(ln(2)bw)24)

у меня есть три удобных триггера:

12(α+α1)=12(tan(ω0/2)+1tan(ω0/2))=1sin(ω0)

12(αα1)=12(tan(ω0/2)1tan(ω0/2))=1tan(ω0)

12(α2+α2)=12(tan2(ω0/2)+1tan2(ω0/2))=1sin2(ω0)+1tan2(ω0)=2sin2(ω0)1

"finally" we got:

BWbwω0sin(ω0)(1 + (ln(2))224(2(ω021)(ω0sin(ω0))2+3ω0tan(ω0))(bw)2)

this ain't so bad. fits on a single line. if someone sees an error or a good way to simplify further, please lemme know.

with the power series approximation from the comment above,

BWbwω0sin(ω0)(1 + (ln(2))2(136ω021180ω0422835ω06)(bw)2)

also, i am not sure that Atul's answer for f(0) and Markus's answer for a3 are consistent. i wonder if someone might be able to straight that out in an answer that could get in on the bounty.
robert bristow-johnson

I also found out about Wolfram's cloud notebook which is like Mathematica in your webbrowser. Go to sandbox.open.wolframcloud.com/app and type in 6*SeriesCoefficient[ Series[Log[ArcTan[a E^x]] - Log[ArcTan[a/E^x]],{x,0,5}],3]
Atul Ingle

@AtulIngle, i incorporated the Markus's corrections into the inverse function. would you mind checking the result for g(y)?
robert bristow-johnson

i would appreciate it if someone would check my substitution back to g(y), particularly the factor that multiplies y2. very soon i will return α back to tan(ω0/2) which will cause a whole other simplification and form. but i will hold off a little in case someone tells me my simplifications above are wrong.
robert bristow-johnson

1
@ robert bistow-johnson I checked your final expression for g(y) using Mathematica, it looks right.
Atul Ingle

2

Итак, вот некоторые количественные результаты. я построил полосу пропусканиябвесдля цифрового фильтра по оси х и результирующей ширины полосы пропускания по оси у. Есть пять участков от зеленого до красного, представляющих резонансную частотуω0 нормализовано Найквистом:

ω0πзнак равно [0,0002 0,2441 0,4880 0,7320 0,9759]

таким образом, резонансная частота идет от почти постоянного тока до почти Найквиста.

здесь нет никакой компенсации (или предварительной деформации) для пропускной способности: введите описание изображения здесь

вот простая компенсация первого порядка, которую поваренная книга делала все это время: введите описание изображения здесь

вот компенсация третьего порядка, которую мы только что решили здесь: введите описание изображения здесь

мы хотим, чтобы все линии лежали прямо на главной диагонали.

я уже сделал ошибку в случае третьего порядка и исправил его в этой версии. он делает вид , как приближение третьего порядка кг(Y) немного лучше, чем в первом приближении для малых бвес,

таким образом, я возился с коэффициентом члена 3-го порядка (я хочу оставить член 1-го порядка тем же самым), уменьшая его эффект. это умножение только члена 3-го порядка на 50%:

введите описание изображения здесь

это уменьшает его до 33%:

введите описание изображения здесь

и это уменьшает срок 3-го порядка до 25%:

введите описание изображения здесь

поскольку целью обратной функции является отмена указанной функции, смысл всего этого состоит в том, чтобы заставить кривые составной функции лежать как можно ближе к главной диагонали. это не так уж плохо для 75% Найквиста для резонансной частотыω0 и 3 октавы пропускной способности бвес, но не намного лучше, чтобы действительно оправдать себя в коде «коэффициента приготовления», который выполняется всякий раз, когда пользователь поворачивает ручку или скользит слайдером.


Как пропускная способность может стать отрицательной на втором и третьем графике?
Мэтт Л.

это не может, поэтому я до сих пор не впечатлен этим приближением третьего порядка к реальному Иксзнак равног(Y) которая является обратной функцией
е(Икс)знак равнопер(агс(αеИкс)агс(αе-Икс))
я не думаю, что аппроксимация третьего порядка является улучшением по сравнению с аппроксимацией первого порядка, существовавшей в течение нескольких десятилетий. так что это заговор
е(г^(Y))
где г^(Y) является приближением к истинному обратному г(Y) где
Yзнак равное(г(Y))
потому что е(Икс) является биполярным (хотя отрицательная пропускная способность не имеет смысла) е(г^(Y)) может пойти отрицательным.
Роберт Бристоу-Джонсон

о, @MattL. дело в том, чтое(Икс)проходы через начало координат не должны удивлять вас, даже если пропускная способность никогда не бывает отрицательной. эта функция отображения полосы пропускания имеет нечетную симметрию, поэтому первый и второй график меня совсем не удивляют. но третий сюжет разочаровывает.
Роберт Бристоу-Джонсон

Мне просто интересно, почему вы построили кривые для отрицательных полос пропускания. Но в любом случае, если я не ошибаюсь, то серия, которую вы используете, является своего рода расширением серии Тейлора вбвесзнак равно0, правильно? Так почему же вы ожидаете, что он будет хорошо аппроксимировать реальное поведение при большей пропускной способности, если вы используете только два термина?
Мэтт Л.

я просто хотел убедиться, что функции имеют нечетную симметрию и очень хорошо проходят через начало координат. да, это все о серии Тейлор (или, более конкретно, Маклаурин). @MattL. вы заметите, что я думаю, что один термин подходит для всех резонансных частот, которые не очень близки к Найквисту. оставив линейный член без изменений, я немного побеспокоился о члене третьего порядка (следите за обновлениями, я покажу результаты), и он работает довольно хорошо. но не намного лучше, чем первый заказ, который, я думаю, мне стоит поменять в Кулинарной книге.
Роберт Бристоу-Джонсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.