Pergunta matemática que resulta do uso da transformação bilinear


10

Portanto, isso está relacionado ao livro de receitas e tentei resolvê-lo talvez duas décadas atrás, desisti e fui lembrado do problema não resolvido. Mas é bem direto para a frente, mas eu ainda fiquei afundado na lama.

Este é um filtro Bandpass simples (BPF) com frequência ressonante e ressonância :Ω0Q

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

Na frequência ressonante

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

e as bandas superior e inferior são definidas para que

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

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

Chamamos isso de "bandas de meia potência" . Como somos áudio, definimos largura de banda em oitavas e, no mundo analógico, essa largura de banda em oitavas, , está relacionada a como:QBWQ

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

Estamos usando a transformação bilinear (com frequência ressonante pré-deformada) que mapeia:

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

deixando e . s = j Ωz=ejωs=jΩ

A frequência angular ressonante do filtro analógico é e, com a compensação de distorção de frequência feita para a frequência ressonante no filtro digital realizado, quando (a frequência ressonante definida pelo usuário), depois . ω = ω 0 Ω = Ω 0Ω0ω=ω0Ω=Ω0

Portanto, se a frequência angular analógica for

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

então é mapeado para a frequência angular digital como

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

Agora, as bandas superior e inferior do mundo analógico são

Ω G = Ω 0 2 - B W / 2

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

e no domínio da frequência digital são

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

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

Em seguida, a diferença real, na frequência de log dos bandeges (que é a largura de banda real no filtro digital) é:

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

ou

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

Isso tem uma forma funcional de

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

onde , ex ln ( 2 )f(x)ln(2)bwcttan(ω0/2)xln(2)2BWαtan(ω0/2)

O que eu quero fazer é inverter (mas eu sei que não posso fazê-lo exatamente com um bom formulário fechado). Eu já fiz uma aproximação de primeira ordem e quero aumentá-la para uma aproximação de terceira ordem. E isso se tornou uma espécie de canina copuladora, embora deva ser direta.f(x)

Agora, isso tem algo a ver com a Fórmula de Inversão de Lagrange e eu só quero levá-la para mais um termo do que tenho.

Sabemos de cima que é uma função de simetria ímpar:f(x)

f(x)=f(x)

Isso significa que e todos os termos de ordem par da série Maclaurin serão zero:f(0)=0

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

A função inversa também tem simetria ímpar, passa por zero e pode ser expressa como uma série de Maclaurin

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

e se soubermos o que e são de , teremos uma boa idéia do que devem ser e :a 3 f ( x ) b 1 b 3a1a3f(x)b1b3

b1=1a1b3=a3a14

Agora, eu sou capaz de calcular a derivada de e avaliá-la em zero e eu recebof(x)

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

Mas estou me dando muito com e, portanto, . Alguém pode fazer isso? Eu até aceitaria uma expressão sólida para a terceira derivada de avaliada em .b 3 f ( x ) x = 0a3b3f(x)x=0


2
Apenas para esclarecer: seu objetivo é inverter , ou seja, para um dado , você deseja encontrar ? Em particular, você deseja fazê-lo por expansão polinomial e está procurando o 3º coeficiente (já que o 2º é zero, faça com que a função seja estranha). Direita? f(x)x
f(x)=ln(arctan(αex))ln(arctan(αex))
f(x)x
Maximilian Matthé

2
Então você quer saber dada , ou seja, você quer saber o que a largura de banda do filtro analógico, você precisa escolher para obter uma largura de banda desejada do filtro digital, certo? b wBWbw
Matt L.

2
sim sim e sim.
22417 Robert Bristow-Johnson

11
@ robertbristow-johnson Não li a pergunta com muito cuidado, mas notei que você está interessado em em . Posso usar o Mathematica ou o Wolfram Alpha para calcular isso? Eu recebo um resultado bastante limpo: . wolframalpha.com/input/… E se você remover a parte "avalie em x = 0", a Wolfram cospe a fêmea canina acoplada em toda a sua glória. x = 0 4 ( 8 - π 2 ) α 3f(x)x=04(8π2)α3π3
Atul Ingle

11
Erro de digitação no meu lá. O resultado "limpo" é realmente: wolframalpha.com/input/…- ( 6 a 2 ) / ( ( a 2 + 1 ) 2 a t a n ( a ) 2 ) + ( 2 a ) / ( ( a 2 + 1 ) a t a n ( a ) ) + ( 16 a 5 ) / ( ( a 2 +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

Respostas:


4

Para complementar minha parte a esta pergunta: Aqui está uma resposta um tanto curta, baseada em uma expansão manual da função ímpar em uma série até a terceira ordem. Mais alguns detalhes podem ser encontrados no mathSE .f ( x )f(x)

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

Inicialmente, focamos no termo de e começamos com f ( x )

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

Expansão em série de :arctan

Obtemos

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

Agora derivamos de (2) os coeficientes até . Usando o operador de coeficiente para denotar o coeficiente de em uma série, obtemos [ x k ] x k [ x 0 ] arctan ( α e x )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

Concluímos

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

Poderes em séries logarítmicas:

Para derivar os coeficientes da série logarítmica escrevemos a expressão (3) como e consideramos arctan(αex)

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

Definimos agora e extraímos os coeficientes de para de x 0 x 3 ( A ( x ) ) nA(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

Obtemos de (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

Expansão em série do logaritmo:

Calculamos usando (6) os coeficientes de em termos dea j , 0 j 3ln(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

Expansão em série de :f(x)

Agora é hora de colher. Finalmente obtemos com (3) e (7) respeitando que é ímparf(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)

Markus, enquanto você está correto sobre , já que sabemos que tem simetria ímpar e que os termos de ordem par são zero, acho que você pode dizer que essa expansão é boa para . f ( x ) O ( x 5 )O(x4)f(x)O(x5)
22417 Robert Bristow-Johnson

@ robertbristow-johnson: Sim, é claro. Atualizado em conformidade. :-)
Markus Scheuer

Grande esforço! Tentando ler esta resposta detalhada e longa, não consegui ver como você poderia isolar , na equação (4), fora do logaritmo? A série infinita já inclui todas as potências de , então o que significa o termo isolado lá? x O ( x 4 )O(x4)xO(x4)
precisa

É claro que eu tenho a sensação de que você quer dizer que não, mas, em seguida, a notação adequada poderia ser algo como isto: onde eu usei para ficar longe de todas as suas outras notações. E note que usei e para distinguir entre esses dois conjuntos de coeficientes. Então agora sua equação (4) e esta linha acima não são exatamente iguais. Eu não acho que, no entanto, isso afetará seu progresso. TO1O2
ln(arctan(αex)) = n=1(1)n+1n((a01)+a1x+a2x2+a3x3+O1(x4))n = T0+T1x+T2x2+T3x3+O2(x4)
TO1O2
precisa

@ Fat32: Você pode querer ver a notação big-O #
Markus Scheuer

3

(Convertendo comentário para responder.)

Usando Wolfram Alpha, em avalia como: x = 0f(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) )) +) + em + x% 3D0

Também podemos verificar se isso corresponde à resposta de Markus aqui .

Seu coeficiente de acaba sendox3

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

Se multiplicarmos por 6 e reorganizarmos alguns fatores, obtemos:

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

que combina!


Atul, parece que sua resposta simplificada não é consistente com a resposta de Markus no SE de matemática. deve ser o caso em que eu não acho que todos os termos do seu f '' '(0) sejam consistentes com o Markus. Pode ser que Markus esteja errado.
f(x)|x0 = 3!a3=6a3
22417 Robert Bristow-Johnson

2
@ robertbristow-johnson Acho que eles combinam.
Atul Ingle

eles fazem agora. Eu acho que Markus deve ter tido um erro. ele fez sua resposta boa maneira old-fashioned.
22417 Robert Bristow-Johnson

Atul, você receberá sua recompensa. mas eu explorei as regras sobre recompensas e elas não me deixaram dividir, mas me deram duas vezes, mas uma de cada vez. então, como Markus tem menos representantes do que você aqui no dsp.se e como ele respondeu uma resposta sem a ajuda de um computador, eu concedo sua recompensa primeiro. então eu colocarei outra recompensa nessa questão e então eu a recompensarei. diz que preciso esperar 23 horas. não sei quem vai receber a minha "marca de seleção" ainda.
22617 Robert Bristow-

11
@ robertbristow-johnson desculpe pela resposta tardia. Os coeficientes são para respectivamente. wolframalpha.com/input/...ω 2 0 , ω 4 0 , ω 6 0 , ω 8 02/3,2/15,16/945,2/945ω02,ω04,ω06,ω08
Atul Ingle

3

O problema apresentado na pergunta parece não ter uma solução fechada. Conforme mencionado na pergunta e mostrado em outras respostas, o resultado pode ser desenvolvido em uma série, que pode ser realizada por qualquer ferramenta matemática simbólica, como o Mathematica. No entanto, os termos se tornam bastante complicados e feios, e não está claro o quão boa é a aproximação quando incluímos termos de terceira ordem. Como não podemos obter uma fórmula exata, talvez seja melhor calcular a solução numericamente, o que, diferentemente da aproximação, fornecerá um resultado (quase) exato.

No entanto, não é sobre isso que minha resposta é. Sugiro uma rota diferente que dê uma solução exata, alterando a formulação do problema. Depois de pensar um pouco, verifica-se que é a especificação da frequência central e a especificação da largura de banda como uma razão (ou, equivalentemente, em oitavas) que causa a intratabilidade matemática. Existem duas maneiras de sair do dilema:ω0

  1. especifique a largura de banda do filtro de tempo discreto como uma diferença de frequências , em que e são as bordas inferior e superior da banda do filtro de tempo discreto, respectivamente.ω 1 ω 2Δω=ω2ω1ω1ω2
  2. prescreva a proporção e, em vez de prescreva uma das duas frequências de borda ou .ω 0 ω 1 ω 2ω2/ω1ω0ω1ω2

Nos dois casos, é possível uma solução analítica simples. Como é desejável prescrever a largura de banda do filtro de tempo discreto como uma proporção (ou, equivalentemente, em oitavas), descreverei a segunda abordagem.

Vamos definir as frequências de borda e do filtro de tempo contínuo porΩ 2Ω1Ω2

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

com , em que é a função de transferência de um filtro de passagem de banda de segunda ordem: H ( s )Ω2>Ω1H(s)

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

com e . Observe que e para .Ω 2 0 = Ω 1 Ω 2 H ( j Ω 0 ) = 1 | H ( j Ω ) | < 1 ohms ohms 0ΔΩ=Ω2Ω1Ω02=Ω1Ω2H(jΩ0)=1|H(jΩ)|<1ΩΩ0

Usamos a conversão bilinear para mapear as frequências de borda e do filtro de tempo discreto para as frequências de borda e do filtro de tempo contínuo. Sem perda de generalidade, podemos escolher . Para nossos propósitos, a transformação bilinear assume a formaω 2 Ω 1 Ω 2 Ω 1 = 1ω1ω2Ω1Ω2Ω1=1

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

correspondente à seguinte relação entre frequências de tempo contínuo e de tempo discreto:

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

Em , obtemos configurando . Com e computados em , obtemos a função de transferência do filtro de protótipo analógico em . Aplicando a transformação bilinear , obtemos a função de transferência do filtro de passagem de banda em tempo discreto:Ω 2 ω = ω 2 Ω 1 = 1 Ω 2 ( 4 ) ( 2 ) ( 3 )(4)Ω2ω=ω2Ω1=1Ω2(4)(2)(3)

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

com

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

Resumo:

A largura de banda do filtro de tempo discreto pode ser especificada em oitavas (ou, geralmente, como uma proporção), e os parâmetros do filtro de protótipo analógico podem ser calculados exatamente, de modo que a largura de banda especificada seja alcançada. Em vez da frequência central , especificamos as bordas da banda e . A frequência central definida por é um resultado do design.ω0ω1ω2|Hd(ejω0)|=1

Os passos necessários são os seguintes:

  1. Especifique a proporção desejada de bordas da banda e uma das bordas da banda (que é obviamente equivalente a simplesmente especificar e ).ω2/ω1ω1ω2
  2. Escolha e determine em . Calcule e do filtro de protótipo analógico .Ω1=1Ω2(4)ΔΩ=Ω2Ω1Ω02=Ω1Ω2(2)
  3. Avalie as constantes para obter a função de transferência em tempo discreto .(6)(5)

Observe que, com a abordagem mais comum em que e são especificados, as bordas reais da banda e são o resultado do processo de design. Na solução proposta, as bordas da banda podem ser especificadas e é o resultado do processo de design. A vantagem dessa última abordagem é que a largura de banda pode ser especificada em oitavas e a solução é exata, ou seja, o filtro resultante possui exatamente a largura de banda especificada em oitavas.ω0Δω=ω2ω1ω1ω2ω0

Exemplo:

Vamos especificar uma largura de banda de uma oitava e escolhemos a borda inferior da banda como . Isso fornece uma borda superior da banda . As bordas da banda do filtro do protótipo analógico são e de (com ) . Isso fornece e . Com obtemos a função de transferência com tempo discretoω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

que atinge exatamente uma largura de banda de 1 oitava e as bordas da banda especificadas, conforme mostrado na figura abaixo:

insira a descrição da imagem aqui

Solução numérica do problema original:

Pelos comentários, entendo que é importante poder especificar exatamente a freqüência central para a qual é satisfeito. Como mencionado anteriormente, não é possível obter uma solução exata de forma fechada, e um desenvolvimento em série produz expressões bastante difíceis de manejar.ω0|Hd(ejω0)|=1

Por uma questão de clareza, gostaria de resumir as opções possíveis com suas vantagens e desvantagens:

  1. especifique a largura de banda desejada como uma diferença de frequência e especifique ; neste caso, é possível uma solução simples em formato fechado.Δω=ω2ω1ω0
  2. especifique as bordas da banda e (ou, equivalentemente, a largura de banda em oitavas e uma das bordas da banda); isso também leva a uma solução simples de formulário fechado, como explicado acima, mas a frequência central é um resultado do design e não pode ser especificada.ω1ω2ω0
  3. especifique a largura de banda desejada em oitavas e a frequência central (conforme solicitado na pergunta); nenhuma solução fechada é possível, e não existe (por enquanto) nenhuma aproximação simples. Por esse motivo, acho desejável ter um método simples e eficiente para obter uma solução numérica. Isto é o que é explicado abaixo.ω0

Quando é especificado, usamos uma forma da transformação bilinear com uma constante de normalização diferente da usada em e :ω0(3)(4)

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

Definimos . Denote a proporção especificada de bordas da banda do filtro de tempo discreto comoΩ0=1

(8)r=ω2ω1

Com obtemos de ec=tan(ω0/2)(7)(8)

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

Com , pode ser reescrito da seguinte forma:Ω1Ω2=Ω02=1(9)

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

Para um determinado valor de essa equação pode ser resolvida para com algumas iterações de Newton. Para isso, precisamos da derivada de :rΩ1f(Ω1)

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

Com , sabemos que deve estar no intervalo . Embora seja possível encontrar soluções iniciais mais inteligentes, verifica-se que o palpite inicial funciona bem para a maioria das especificações e resultará em soluções muito precisas após apenas iterações do método de Newton:Ω0=1Ω1(0,1)Ω1(0)=0.14

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

Com obtido com algumas iterações de , podemos determinar e , e usamos e para calcular os coeficientes de o filtro de tempo discreto. Observe que a constante agora é dada por .Ω1(12)Ω2=1/Ω1ΔΩ=Ω2Ω1(5)(6)cc=tan(ω0/2)

Exemplo 1:

Vamos especificar e uma largura de banda de oitavas. Isso corresponde a uma proporção . Com uma estimativa inicial de , iterações do método de Newton resultaram em uma solução , a partir da qual os coeficientes do tempo discreto podem ser calculados conforme explicado acima. A figura abaixo mostra o resultado:ω0=0.6π0.5r=ω2/ω1=20.5=2=1.4142Ω1=0.14Ω1=0.71

insira a descrição da imagem aqui

O filtro foi calculado com este script Matlab / Octave:

% especificações
pc = 0,5; % de largura de banda desejada em oitavas
w0 = 0,6 * pi; % frequência de ressonância

r = 2 ^ (pc); Relação% de bordas da banda
W1 = 0,1; % de estimativa inicial (funciona para a maioria das especificações)
Nit = 4; % # Iterações de Newton
c = tan (w0 / 2);

% Newton
para i = 1: Nit,
    f = r * atan (c * W1) - atan (c / W1);
    fp = c * (r / (1 + c ^ 2 * W1 ^ 2) + 1 / (c ^ 2 + W1 ^ 2));
    W1 = W1 - f / fp
fim

W1 = abs (W1);
if (W1> = 1), erro ('Falha na convergência. Reduza o valor da estimativa inicial.'); fim

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

% de filtro de tempo discreto
escala = 1 + dW * c + W1 * W2 * c ^ 2;
b = (dW * c / escala) * [1,0, -1];
a = [1, 2 * (W1 * W2 * c ^ 2-1) / escala, (1-dW * c + W1 * W2 * c ^ 2) / escala];

Exemplo 2:

Acrescento outro exemplo para mostrar que esse método também pode lidar com especificações para as quais a maioria das aproximações fornecerá resultados não sensoriais. Geralmente, esse é o caso quando a largura de banda desejada e a frequência ressonante são grandes. Vamos projetar um filtro com e oitavas. Quatro iterações do método de Newton com uma suposição inicial resultam em um valor final de , ou seja, em uma largura de banda do protótipo analógico de oitavas. O filtro de tempo discreto correspondente possui os seguintes coeficientes e sua resposta de frequência é mostrada na plotagem abaixo:ω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];

insira a descrição da imagem aqui

As arestas resultantes da meia banda de potência são e , que são de fato exatamente oitavas (ou seja, um fator de ) afastadas.ω1=0.062476πω2=0.999612π416


dois comentários iniciais (ainda não li isso, Matt): primeiro, estou interessado na frequência do log mais do que na frequência linear. para o BPF analógico (ou o BPF digital com frequência ressonante muito menor que Nyquist), há simetria perfeita sobre a frequência ressonante.
22417 Robert Bristow-Johnson

e o segundo comentário é este, embora eu agradeça por aparentemente manter a notação de e , eu gostaria que você continuasse com a notação de que as frequências ressonantes analógicas e digitais são e , respectivamente, e as bandas analógica superior e inferior são e respectivamente e da mesma forma para as bandas digitais: e . sabemos que, na frequência do log, metade da largura de banda está acima de e metade está abaixo. mas, devido à distorção, isso não é exatamente verdadeiro para o filtro BPF digital. s=jΩz=ejωΩ0ω0ΩUΩLωUωLΩ0
Robert Bristow-Johnson

À medida que leio mais isso, é importante para mim que a frequência ressonante seja mapeada exatamente pela transformação bilinear. então eu entendo essa abordagem, Matt, mas eu quero ficar com o mapeamento exato de e depois ajustar o até que seja o especificado. ω0BWbw
22417 Robert Bristow-Johnson

@ robertbristow-johnson: OK, é justo, você deseja uma especificação exata de . Isso é possível se você especificar como uma diferença linear (o que você não quer, pelo que entendi). Uma solução interessante não é possível com E uma largura de banda especificada em oitavas. ω0Δωω0
Matt L.

11
@ robertbristow-johnson: Adicionei uma solução numérica muito simples à minha resposta (4 iterações de Newton).
Matt L.

3

ok, prometi oferecer recompensa e manterei minha promessa. mas tenho que confessar que posso renegar um pouco por estar satisfeito apenas com a terceira derivada de . o que eu realmente quero são os dois coeficientes para .f(x)g(y)

portanto, não percebi que havia essa linguagem Wolfram como uma alternativa ao mathematica ou ao Derive e não percebi que poderia calcular tão facilmente a terceira derivada e simplificar a expressão.

e esse cara do Markus no SE de matemática postou esta resposta (que eu pensei que teria que ser a quantidade de grunge que eu pensava que seria necessária).

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

então eu montei a aproximação de terceira ordem para o inverso:

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)

eu meio que esperava que alguém fizesse isso. lembre-se de , ey=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)

Eu tenho três identidades trigonométricas convenientes:

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

"finalmente" temos:

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

isso não é tão ruim. cabe em uma única linha. se alguém vir um erro ou uma boa maneira de simplificar ainda mais, deixe-me saber.

com a aproximação das séries de potências a partir do comentário acima,

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

Além disso, não tenho certeza de que a resposta de Atul para e a resposta de Markus para sejam consistentes. Gostaria de saber se alguém pode ser capaz de esclarecer isso em uma resposta que pode entrar na recompensa. a 3f(0)a3
22617 Robert Bristow-Johnson

Também descobri o notebook em nuvem da Wolfram, que é como o Mathematica no seu navegador da web. Vá para sandbox.open.wolframcloud.com/app e digite 6*SeriesCoefficient[ Series[Log[ArcTan[a E^x]] - Log[ArcTan[a/E^x]],{x,0,5}],3]
Atul Ingle

@AtulIngle, incorporei as correções de Markus na função inversa. você se importaria de verificar o resultado para ? g(y)
22417 Robert Bristow-Johnson

eu apreciaria se alguém verificasse minha substituição de volta para , particularmente o fator que multiplica . muito em breve retornarei volta a que causará uma simplificação e forma totalmente diferentes. mas vou adiar um pouco, caso alguém me diga que minhas simplificações acima estão erradas. y 2 α tan ( ω 0 / 2 )g(y)y2αtan(ω0/2)
22417 Robert Bristow-Johnson

11
@ robert bistow-johnson Verifiquei sua expressão final para g (y) usando o Mathematica, parece correto.
Atul Ingle

2

Então, aqui estão alguns resultados quantitativos. plotei a largura de banda especificada para o filtro digital no eixo x e a largura de banda digital resultante no eixo y. existem cinco gráficos de verde a vermelho, representando a frequência ressonante normalizada por Nyquist:bwω0

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

então a frequência ressonante vai de quase DC a quase Nyquist.

aqui não há compensação (ou pré-deformação) para a largura de banda: insira a descrição da imagem aqui

aqui está a simples compensação de primeira ordem que o Cookbook fez o tempo todo: insira a descrição da imagem aqui

aqui está a compensação de terceira ordem que acabamos de resolver aqui: insira a descrição da imagem aqui

o que queremos é que todas as linhas fiquem diretamente na diagonal principal.

i tinha cometido um erro no caso de terceira ordem e corrigido nesta revisão. ele faz olhar como a aproximação de terceira ordem de é um pouco melhor do que a aproximação de primeira ordem para pequenas .g(y)bw

então eu me envolvi com o coeficiente do termo de 3ª ordem (quero deixar o mesmo termo de 1ª ordem), diminuindo seu efeito. isso é multiplicar apenas o termo de 3ª ordem por 50%:

insira a descrição da imagem aqui

isso está reduzindo para 33%:

insira a descrição da imagem aqui

e isso está reduzindo o prazo de 3ª ordem para 25%:

insira a descrição da imagem aqui

como o objetivo de uma função inversa é desfazer a função especificada, o objetivo de tudo isso é fazer com que as curvas da função composta fiquem o mais próximo possível da diagonal principal. não é tão ruim para até 75% Nyquist para frequência ressonante e largura de banda de 3 oitavas . mas não muito melhor para fazer valer a pena no código de "coeficiente de cozimento" que é executado sempre que o usuário gira um botão ou desliza um controle deslizante. b wω0bw


Como a largura de banda pode se tornar negativa no segundo e terceiro gráfico?
Matt L.

não pode, e é por isso que até agora não me impressiono com essa aproximação de terceira ordem ao real que é a função inversa de não acho que a aproximação de terceira ordem seja uma melhoria em relação à aproximação de primeira ordem que existe há algumas décadas . Então, o que é plotado é onde é a aproximação da verdadeira inversa onde porque é bipolar (mesmo que a largura de banda negativa não faça sentido) pode ficar negativo. f (x=g(y)f( g (y)) g (Y)g(Y)y=f(g(y))f(x)f( g
f(x)=ln(arctan(αex)arctan(αex))
f(g^(y))
g^(y)g(y)
y=f(g(y))
f(x)f(g^(y))
Robert Bristow-Johnson

ah, @ MattL. o fato de passar pela origem não deve surpreendê-lo, mesmo que a largura de banda nunca seja realmente negativa. essa função de mapeamento de largura de banda é uma simetria ímpar, de modo que o primeiro e o segundo gráficos não me surpreendem. mas a terceira trama é decepcionante. f(x)
22417 Robert Bristow-Johnson

Eu só estava me perguntando por que você desenhou as curvas para larguras de banda negativas. Mas enfim, se não me engano, a série que você usa é um tipo de expansão da série Taylor em , certo? Então, por que você esperaria que ele se aproximasse bem do comportamento real em larguras de banda maiores se você usasse apenas dois termos? bw=0
Matt L.

Eu só queria ter certeza de que as funções são de simetria ímpar e passam bem pela origem. sim, isso é tudo sobre a série Taylor (ou mais especificamente, Maclaurin). você notará, @MattL., que acho que um termo funciona muito bem para todas as frequências ressonantes que não são muito próximas de Nyquist. deixando o termo linear inalterado, eu me envolvi um pouco com o termo de terceira ordem (fique atento, mostrarei os resultados) e ele se sai muito bem. mas não muito melhor do que a primeira ordem que acho que deveria me preocupar em alterá-la no Cookbook.
Robert Bristow-Johnson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.