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
- 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
- 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
|H(jΩ1)|2=|H(jΩ2)|2=12(1)
com , em que é a função de transferência de um filtro de passagem de banda de segunda ordem: H ( s )Ω2>Ω1H(s)
H(s)=ΔΩss2+ΔΩs+Ω20(2)
com e . Observe que e para .Ω 2 0 = Ω 1 Ω 2 H ( j Ω 0 ) = 1 | H ( j Ω ) | < 1 ohms ≠ ohms 0ΔΩ=Ω2−Ω1Ω20=Ω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
s=1tan(ω12)z−1z+1(3)
correspondente à seguinte relação entre frequências de tempo contínuo e de tempo discreto:
Ω=tan(ω2)tan(ω12)(4)
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)
Hd(z)=g⋅z2−1z2+az+b(5)
com
gabc=ΔΩc1+ΔΩc+Ω20c2=2(Ω20c2−1)1+ΔΩc+Ω20c2=1−ΔΩc+Ω20c21+ΔΩc+Ω20c2=tan(ω12)(6)
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:
- 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
- Escolha e determine em . Calcule e do filtro de protótipo analógico .Ω1=1Ω2(4)ΔΩ=Ω2−Ω1Ω20=Ω1Ω2(2)
- 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Ω20=Ω1Ω2=2.2361(6)(5)
Hd(z)=0.24524⋅z2−1z2−0.93294z+0.50953
que atinge exatamente uma largura de banda de 1 oitava e as bordas da banda especificadas, conforme mostrado na figura abaixo:
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:
- 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
- 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
- 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)
Ω=tan(ω2)tan(ω02)(7)
Definimos . Denote a proporção especificada de bordas da banda do filtro de tempo discreto comoΩ0=1
r=ω2ω1(8)
Com obtemos de ec=tan(ω0/2)(7)(8)
r=arctan(cΩ2)arctan(cΩ1)(9)
Com , pode ser reescrito da seguinte forma:Ω1Ω2=Ω20=1(9)
f(Ω1)=rarctan(cΩ1)−arctan(cΩ1)=0(10)
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)
f′(Ω1)=c(r1+c2Ω21+1c2+Ω21)(11)
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)Ω(0)1=0.14
Ω(n+1)1=Ω(n)1−f(Ω(n)1)f′(Ω(n)1)(12)
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
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Ω(0)1=0.1Ω1=0.00775log2(Ω2/Ω1)=log2(1/Ω21)≈14
b = 0,90986 * [1,0, -1];
a = [1,00000 0,17806 -0,81972];
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