Математичне питання, що виникає при використанні білінеарного перетворення


10

Отож, це пов’язано з Кулінарною книгою, і я намагався її вирішити, можливо, два десятиліття тому, відмовився і нагадав про невирішену проблему. Але це досить чорт прямо вперед, але я все-таки зациклювався на гніді.

Це простий смуговий фільтр (BPF) з резонансною частотою та резонансом :Ω0Q

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

Ми називаємо це "переповненими потугами" . Оскільки ми є аудіо, ми визначаємо пропускну здатність в октавах, а в аналоговому світі ця смуга пропускання в октавах, , пов'язана з як:BWQ

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

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

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

нехай і .z=ejωs=jΩ

Резонансна кутова частота аналогового фільтра дорівнює , і з компенсацією частоти викривлення, що робиться на резонансну частоту в реалізованому цифровому фільтрі, коли (визначена користувачем резонансна частота), то .Ω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+...

і якщо ми знаємо, що і є , то ми маємо гарне уявлення про те, що повинні бути та :a1a3f(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
Метт Л.

2
так, так і так.
Роберт Брістоу-Джонсон

1
@ robertbristow-johnson Я не надто уважно прочитав питання, але помітив, що ти зацікавився при . Чи нормально використовувати Mathematica або Wolfram Alpha для обчислення цього? Я отримую досить чистий результат: . wolframalpha.com/input/… І якщо ви вилучите частину "оцінювання при х = 0", Вольфрам виплющує самку, що купляє, у повній красі. f(x)x=04(8π2)α3π3
Atul Ingle

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)
Atul Ingle

Відповіді:


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)
Роберт Брістоу-Джонсон

@ robertbristow-johnson: Так, звичайно. Оновлено відповідно. :-)
Маркус Шейер

Велике зусилля! Намагаючись прочитати цю детальну та тривалу відповідь, я не міг побачити, як ви можете виділити у рівнянні (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: Ви можете поглянути на нотацію великого розміру
Маркус Шейер,

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) )) +) + при + 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 Я думаю, що вони відповідають.
Atul Ingle

вони роблять зараз. я думаю, у Маркуса, мабуть, була помилка. він зробив свою відповідь добрим старомодним способом.
Роберт Брістоу-Джонсон

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

1
@ robertbristow-johnson вибачте за пізню відповідь. Коефіцієнти для відповідно. wolframalpha.com/input/…2/3,2/15,16/945,2/945ω02,ω04,ω06,ω08
Атул

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

з , де - функція передачі фільтра пропускання смуг другого порядку:Ω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 октаву, і зазначених країв смуги, як показано на малюнку нижче:

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

Числове рішення вихідної задачі:

З коментарів я розумію, що важливо мати можливість точно вказати центральну частоту для якої . Як було сказано раніше, неможливо отримати точне рішення закритої форми, а розробка серії дає досить громізні вирази.ω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

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

Фільтр був розрахований за цим сценарієм Matlab / Octave:

% специфікацій
bw = 0,5; % потрібної ширини смуги в октавах
w0 = .6 * pi; % резонансної частоти

r = 2 ^ (bw); % відношення ребер смуги
W1 = .1; % початкової здогадки (працює для більшості специфікацій)
Ніт = 4; % # Ітерації Ньютона
c = загар (w0 / 2);

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

W1 = abs (W1);
if (W1> = 1), помилка ('Помилка конвергенції. Зменшити значення початкової здогадки.'); кінець

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];
a = [1.00000 0.17806 -0.81972];

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

Отримані половини діапазону потужності - і , що насправді становить рівно октави (тобто коефіцієнт ) один від одного.ω1=0.062476πω2=0.999612π416


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

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

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

@ robertbristow-johnson: Гаразд, досить справедливо, ви хочете точну специфікацію . Це можливо, якщо ви визначите як лінійну різницю (яку я не хочу, я розумію). Акуратне рішення не можливе із заданою AND пропускною здатністю в октавах. ω0Δωω0
Метт Л.

1
@ robertbristow-johnson: Я додав дуже просте числове рішення до своєї відповіді (4 ітерації Ньютона).
Метт Л.

3

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

тому я не розумів, що існує ця мова Вольфрам як альтернатива математиці чи Дериву, і я не розумів, що це може так легко обчислити третю похідну та спростити вираз.

і цей хлопець Маркуса з математики 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)

Я якось сподівався, що це зробить хтось інший. згадаймо , іy=f(x)ln(2)bwg(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

"нарешті" ми отримали:

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

це не так вже й погано вписується в один рядок. якщо хтось бачить помилку чи гарний спосіб спростити подальше, будь ласка, знайте.

з наближенням серії потужності з коментаря вище

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

Крім того, я не впевнений, що відповідь Атула за і відповідь Маркуса за є послідовними. мені цікаво, чи хтось міг би це зрозуміти у відповідь, який міг би потрапити на щедрість. f(0)a3
Роберт Брістоу-Джонсон

Я також дізнався про хмарний ноутбук Wolfram, який схожий на Mathematica у вашому веб-браузері. Перейдіть на sandbox.open.wolframcloud.com/app та введіть 6*SeriesCoefficient[ Series[Log[ArcTan[a E^x]] - Log[ArcTan[a/E^x]],{x,0,5}],3]
Atul Ingle

@AtulIngle, я включив виправлення Маркуса у зворотну функцію. Ви не проти перевірити результат для ? g(y)
Роберт Брістоу-Джонсон

Я був би вдячний, якби хтось перевірив мою заміну до , особливо коефіцієнт, що помножує . дуже скоро я поверну назад до що спричинить зовсім інше спрощення та форму. але я трохи затримаюсь у випадку, якщо хтось скаже мені, що мої спрощення вище неправильні. g(y)y2αtan(ω0/2)
Роберт Брістоу-Джонсон

1
@ robert bistow-johnson Я перевірив ваш остаточний вираз на g (y) за допомогою Mathematica, це виглядає правильно.
Atul Ingle

2

тому ось кілька кількісних результатів. Я побудував spec'd пропускну здатність для цифрового фільтра на осі x і отриману цифрову пропускну здатність на осі y. є п'ять ділянок від зеленого до червоного, що представляють резонансну частоту нормалізовану Nyquist:bwω0

ω0π= [0,0002 0,2441 0,4880 0,7320 0,9759]

тому резонансна частота переходить від майже постійного струму до майже ніквістської.

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

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

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

ми хочемо, щоб усі лінії лежали прямо на головній діагоналі.

я вже зробив помилку в разі третього порядку і виправив його в цій версії. він робить вигляд , як наближення третього порядку до трохи краще , ніж наближення першого порядку для малого .g(y)bw

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

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

це зменшує його до 33%:

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

і це зменшує термін 3-го порядку до 25%:

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

оскільки об'єкт зворотної функції полягає в тому, щоб скасувати задану функцію, суть цієї речі полягає в тому, щоб криві складеної функції лежали якомога ближче до основної діагоналі. це не дуже погано для до 75% Nyquist для резонансної частоти та 3 октави пропускної здатності . але не настільки краще, щоб дійсно зробити це вартим у коді "приготування коефіцієнта", який виконується кожного разу, коли користувач повертає ручку або засуває повзунок.ω0bw


Як пропускна здатність може стати негативною у другому та третьому сюжетах ??
Метт Л.

він не може, тому я поки що не вражений цим наближенням третього порядку до реального що є оберненою функцією Я не думаю, що наближення третього порядку - це вдосконалення порівняно з наближенням першого порядку, яке існує пару десятків років . тому те, що побудовано, є де - наближення до справжнього зворотного де тому що є біполярним (навіть якщо негативна пропускна здатність є безглуздою) може перейти в негативну. x=g(y)
f(x)=ln(arctan(αex)arctan(αex))
f(g^(y))
g^(y)g(y)
y=f(g(y))
f(x)f(g^(y))
Роберт Брістоу-Джонсон

о, @MattL. той факт, що проходить через початок, не повинен вас перенасичувати, навіть якщо пропускна здатність ніколи насправді не є негативною. що функція відображення пропускної здатності є незвичайною симетрією, тому перший і другий сюжет мене зовсім не переймають. але третій сюжет невтішний. f(x)
Роберт Брістоу-Джонсон

Мені було просто цікаво, чому ви побудували криві для негативної смуги пропускання. Але все одно, якщо я не помиляюся, то використовувана вами серія - це своєрідне розширення серії Тейлора при , правда? То чому б ви навіть розраховували, що вона наблизить реальну поведінку при більшій пропускній здатності, якщо ви використовуєте лише два терміни? bw=0
Метт Л.

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