Você está na página 1de 50

http://www.teleco.com.br/tutoriais/tutorialfiltrodig/pagina_3.

asp
Capitulo 10 - Efeitos de arredondamento em Filtros Digitais
Na ltima parte do Captulo 6, discutimos as representaes nmero
finito de preciso para fins de execuo das operaes de filtragem em
hardware digital. Em particular, estamos focados no processo de nmero de
quantizao, as caracterizaes de erro resultantes, e os efeitos do
coeficiente de filtro quantizao sobre especificaes de filtro e respostas.
Neste captulo, alargar ainda mais os efeitos do finito de preciso efeitos
numricos para os aspectos de filtragem no processamento de sinais.
Comeamos por discutir analgico-digital (A / D) de rudo de
converso utilizando as representaes de nmeros e caractersticas de erro
de quantizao desenvolvidas no Captulo 6. Em seguida, analisam a
multiplicao e adio de quantizao (coletivamente conhecido como
aritmtica de erro de arredondamento) modelos. Os efeitos destes erros na
sada do filtro so discutidos como dois tpicos: erros correlacionados
chamados ciclos limite e rudo de arredondamento no co-rrelacionadas.
10.1 ANLISE DE A/D RUDO DE QUANTIZAO
A partir das caractersticas de quantificador obtidos no Captulo 6,
bvio que o valor de Q quantizado [x] uma operao linear sobre o valor
de x. Da a anlise exata dos efeitos palavra de comprimento finito em
filtros digitais geralmente difcil e tem de se considerar tcnicas de anlise
menos ideais que funcionam bem na prtica.
Uma dessas tcnicas a tcnica de modelao estatstica. Ele
converte o problema de anlise no-linear em um linear e nos permite
examinar as caractersticas de sada de erro. Nesta tcnica, vamos supor
que o quantificado valor Q [x] uma soma do valor x exata e o erro de
quantificao e, que se presume ser uma varivel aleatria. Quando x (n)
aplicado como uma sequncia de entrada para o quantificador, o erro e (n)

assumido

como

sendo

uma

sequncia

aleatria.

Em

seguida,

desenvolvemos um modelo estatstico para esta sequncia aleatria para


analisar os seus efeitos atravs de um filtro digital.
Para efeitos de anlise, assumimos que o quantificador empregaponto fixo representao formato de nmero complemento de dois. Usando

os resultados apresentados anteriormente, podemos estender esta anlise


para outros formatos tambm.
10.1.1 MODELO ESTATSTICO
Ns modelar o bloco quantificador na entrada como um sinal mais o
rudo de funcionamento, isto , a partir de (6,46):
Q[x(n)] = x(n) + e(n) (10.1)

onde e (n) uma sequncia aleatria, que descreve a sequncia de


erro de quantificao e denominado o rudo de quantizao. Isto
mostrado na Figura 10.1.
Suposies

modelo

para

modelo

em

(10.1)

para

ser

matematicamente conveniente e, portanto, praticamente til, temos que


assumir propriedades estatsticas razoveis para as sequncias envolvidas.
Que estes pressupostos so praticamente razovel pode ser determinado
usando exemplos MATLAB simples, como veremos. Ns assumimos que a
sequncia de erro, e (n) tem as seguintes caractersticas:
1. A sequncia e (n) uma sequncia de amostras a partir de um
processo aleatrio estacionrio {e (n)}.
2. O presente processo aleatrio {e (n)} no est correlacionada com
a sequncia x (n).
3. O processo {e (n)} um processo independente (ou seja, as
amostras so independentes uns dos outros).
4. A funo densidade de probabilidade (pdf), Fe (e), da amostra e (n)
para cada n est distribuda uniformemente ao longo do intervalo de largura
= 2-B, que a resoluo do quantizador.
Esses pressupostos so razoveis, na prtica, se a sequncia x (n)
suficientemente aleatria para atravessar muitas etapas da quantizao em
ir de vez n para n + 1.
10.1.2 ANLISE UTILIZANDO O MATLAB
Para investigar as propriedades estatsticas das amostras de erro,
vamos ter de gerar um grande nmero destas amostras e traar sua
distribuio

usando

um

histograma

(ou

um

grfico

de

barras

de

probabilidade). Alm disso, temos que projetar a sequncia x (n), de modo


que as suas amostras no repetir; de outra forma, as amostras de erro
tambm ir repetir, o que ir resultar numa anlise imprecisa. Isto pode ser
garantido, quer por escolha de uma sequncia aperidica bem definida ou
uma sequncia aleatria. Vamos quantificar x (n) usando operao de
arredondamento B-bit. Uma aplicao similar pode ser desenvolvido para a
operao de truncagem. J que as trs caractersticas de erro so
exatamente os mesmos no mbito da operao de arredondamento, vamos
escolher o formato de grandeza de sinal para facilitar a implementao.
Depois de quantizao, o erro resultante amostras e (n) so uniformemente
distribudo atravs da [- / 2, / 2] intervalo. Deixe-E1 (n) o erro
normalizado dado por
e1(n) _= e(n)= e(n) 2B e1(n) [1/2, 1/2] (10.2)

Em seguida, E1 (n) uniforme ao longo do intervalo de [-1/2, + 1/2],


tal como mostrado na Figura 10.2a. Assim, o intervalo de histograma ser
uniforme em todos os valores B-bit, o que tornar sua computao e
plotagem mais fcil. Este intervalo ser dividido em 128 caixas com a
finalidade

de

planejar.

Para

determinar

independncia

amostra

considerarmos o histograma da sequncia


e2(n) _= (e1(n) + e1(n 1))/2 (10.3)

que a mdia de duas amostras consecutivas de erro normalizado.


Se E1 (n) distribudo uniformemente entre [-1/2, 1/2], em seguida, para a
independncia de exemplo, e2 (n) deve ter uma distribuio em forma de
tringulo entre [-1/2, 1/2], conforme mostrado na Figura 10.2b. Ns voltar a
gerar um histograma 128 bin para e2 (n). Estes passos so implementados
no seguinte funo MATLAB.
function [H1,H2,Q, estat] = StatModelR(xn,B,N);
% Statistical Model (Rounding) for A/D Quantization error and its
Distribution
% ------------- ------------------------------------------------------------% [H1,H2,Q] = StatModelR(xn,B,N);
% OUT: H1 = Normalized histogram of e1
% H2 = Normalized histogram of e2
% Q = Normalized histogram bins
% estat = row vector: [[e1avg,e1std,e2avg,e2std]

% IN: B = bits to quantize


% N = number of samples of x(n)
% xn = samples of the sequence
% Plot variables
bM = 7; DbM = 2^bM; % bin parameter
M = round((DbM)/2); % Half number of bins
bins = [-M+0.5:1:M-0.5]; % Bin values from -M to M
Q = bins/(DbM); % Normalized bins
% Quantization error analysis
xq = (round(xn*(2^B)))/(2^B); % Quantized to B bits
e1 = xq-xn; clear xn xq; % Quantization error
e2 = 0.5*(e1(1:N-1)+e1(2:N)); % Average of two adj errors
e1avg = mean(e1); e1std = std(e1); % Mean & std dev of the error
e1
e2avg = mean(e2); e2std = std(e2); % Mean & std dev of the error
e2
estat = [e1avg,e1std,e2avg,e2std];
% Probability distribution of e1
e1 = floor(e1*(2^(B+bM))); % Normalized e1 (int between -M & M)
e1 = sort([e1,-M-1:1:M]); %
H1 = diff(find(diff(e1)))-1; clear e1; % Error histogram
if length(H1) == DbM+1
H1(DbM) = H1(DbM)+H1(DbM+1);
H1 = H1(1:DbM);
end
H1 = H1/N; % Normalized histogram
% Probability distribution of e2
e2 = floor(e2*(2^(B+bM))); % Normalized e2 (int between -M & M)
e2 = sort([e2,-M-1:1:M]); %
H2 = diff(find(diff(e2)))-1; clear e2; % Error histogram
if length(H2) == DbM+1
H2(DbM) = H2(DbM)+H2(DbM+1);
H2 = H2(1:DbM);
end
H2 = H2/N; % Normalized histogram
Para validar os pressupostos do modelo, consideramos os dois
exemplos a seguir. No primeiro exemplo de uma sequncia sinusoidal
aperidica quantizado em pedaos B, e, no segundo exemplo de uma
sequncia aleatria quantizado para B bits. Os erros de quantificao
resultantes so analisados quanto s suas propriedades de distribuio e
pela sua independncia amostra para vrios valores de B.

Atravs destes exemplos ns esperamos aprender como pequeno erro


e deve ser (ou equivalentemente, como grande B deve ser) para as
premissas acima para ser vlido.
Exemplo 10.1 : Seja x (n) = 1/3 {sen (n / 11) + sen (n / 31) +
cos (n / 67)}. Esta sequncia no peridica e, portanto, suas
amostras no repetir usando representao infinita de preciso. No
entanto, uma vez que a sequncia de natureza sinusoidal, o seu
envelope contnuo peridica e as amostras so distribudas de
forma contnua durante o perodo fundamental deste envelope.
Determinar as distribuies de erro para B = 2 e 6 bits.
Soluo: Para minimizar variaes estatsticas, o tamanho da
amostra deve ser grande. Ns escolhemos 500 mil amostras. O script de
MATLAB a seguir calcula as distribuies para B = 2 bits.
Cdigo:
clear; close all;
% Example parameters
B = 2; N = 500000; n = [1:N];
xn = (1/3)*(sin(n/11)+sin(n/31)+cos(n/67)); clear n;
% Quantization error analysis
[H1,H2,Q, estat]] = StatModelR(xn,B,N); % Compute histograms
H1max = max(H1); H1min = min(H1); % Max and Min of H1
H2max = max(H2); H2min = min(H2); % Max and Min of H2
As parcelas do histograma resultante so mostradas na Figura 10.3.
evidente que, mesmo que as amostras de erro aparece para ser distribudo

uniformemente,

as

amostras

no

so

independentes.

As

parcelas

correspondentes para B = 6 bits so mostrados na Figura 10.4, a partir da


qual se observa que a sequncia de erro de quantificao parece satisfazer
as suposies do modelo para B 6 bits.
Exemplo 10.2 : Seja x (n) ser uma sequncia aleatria
independente e identicamente distribuda cujas amostras so
distribudos uniformemente sobre a [-1, 1] intervalo. Determinar as
distribuies de erro para B = 2 e 6 bits.
Soluo: Voltamos a escolher 500.000 amostras para minimizar
quaisquer variaes estatsticas. O seguinte fragmento de MATLAB calcula
as distribuies para B = 2 bits.
Cdigo:
clear; close all;
% Example parameters
B = 2; N = 500000; xn = (2*rand(1,N)-1);
% Quantization error analysis
[H1,H2,Q, estat]] = StatModelR(xn,B,N); % Compute histograms
H1max = max(H1); H1min = min(H1); % Max and Min of H1
H2max = max(H2); H2min = min(H2); % Max and Min of H2
As parcelas do histograma resultante so mostradas na Figura 10.5.
As parcelas correspondentes para B = 6 bits so mostrados na Figura 10.6.
A partir dessas parcelas observamos que mesmo para B = 2 bits as
amostras de erro de quantizao so independentes e uniformemente
distribudas.
Desde

sinais

prticos

processados

usando

um

chip

DSP

so

tipicamente de natureza aleatria (ou pode ser modelado como tal),


podemos concluir a partir destes dois exemplos de que o modelo estatstico,
com seus pressupostos declarados, um modelo muito bom.
10.1.3 ESTATSTICA DE A/D RUDO DE QUANTIZAO
Vamos agora desenvolver uma descrio estatstica de segunda
ordem da seqncia de erro e (n), tanto para o truncamento e operaes de
arredondamento.

10.1.4 TRUNCAGEM
A partir de (6,57), o PDF FET (e) de Et (n) uniforme ao longo de [-,
0], como mostrado na Figura 10.7a. Em seguida, a mdia de eT (n) dada
pela
meT_= E[eT(n)] = /2 (10.4)

e a variao :
equao (10.5)

usando a = 2B, ns obtemos:


equao (10.6)

Completando a partir de (6,59), o PDF fer (e) de Er (n) uniforme ao


longo de [- / 2, / 2], tal como mostrado na Figura 10.7b. Em seguida, a
mdia de ER (n) dada pela
equao (10.7)

e a variao :
equao (10.8)

Usando a equao 6.45 obtemos:


equao (10.9)

Uma vez que as amostras da sequncia de ER (n) so assumidos


como sendo independentes uns dos outros, a varincia de [ER (n) + ER (n 1)] / 2 dada pela equao 10.10 , ou o desvio padro eR / 2.
A partir das premissas do modelo e (10.6) ou (10.9), a covarincia de
erro a sequncia (que uma sequncia autnoma) dada pela equao
10.11, Onde l = M- n chamado a varivel lag. Tal sequncia de erro
tambm conhecido como uma sequncia de rudo branco.
10.1.5 IMPLEMENTAO NO MATLAB
No MATLAB, a mdia da amostra eo desvio-padro so calculados
usando as funes de mdia e std, respectivamente. O ltimo argumento da
funo StatModelR um vector que contm meios de amostragem e os
desvios padro de erros no normalizada e (n) e [E (N) + e (n -1)]/2. Assim,
estes valores podem ser comparados com os valores tericos obtidos a
partir do modelo estatstico.

Exemplo 10.3: As parcelas em Exemplo 10.1 tambm indicam


as mdias amostrais e desvios-padro dos erros e (n) e [e (n) + e (n
- 1)] / 2. Para B = 2, estes valores calculados esto apresentados na
Figura 10.3. Desde e (n) distribudo uniformemente no intervalo [2-3, 2-3], o seu valor mdio 0, e assim a mdia de [e (n) + e (n1)] / 2. Os valores calculados so 3,4239 e 3,4396 10-5 10-5,
respectivamente, o que concorda bastante bem com o modelo. O
desvio padro de e (n), a partir de (10.9), 0,072169, enquanto
que a partir do grfico de cima na Figura 10.3 0,072073, que
novamente concorda estreitamente com o modelo. O desvio padro
da mdia das duas amostras consecutivas, a partir de (10,10),
0,051031, e da trama inferior na Figura 10.3 0,063851, que
claramente no est de acordo com o modelo. Por conseguinte, as
amostras de e (n) para B = 2 no so independentes. Isto foi
confirmado pelo grfico inferior na Figura 10.3.
Da mesma forma, para B = 6 valores estatsticos calculados esto
apresentados na Figura 10.4. Os valores calculados dos dois meios so
-4,1044 10-6, que concorda muito bem com o modelo. O desvio padro de
e (n), a partir de (10.9), 0,0045105, enquanto que a partir do grfico de
cima na Figura 10.4 0,0045076, que novamente concorda estreitamente
com o modelo. O desvio padro da mdia das duas amostras consecutivas,
a partir de (10,10), 0,0031894, enquanto que a partir da trama de fundo
na Figura 10.4 0,00318181, que concorda bem com o modelo. Por
conseguinte, as amostras de e (n) para B = 6 so independentes. Isto
tambm foi confirmado pela trama de fundo na Figura 10.4. ? Clculos
semelhantes podem ser realizados para o sinal no Exemplo 10.2. Os
detalhes so deixados para o leitor.
10.1.6 A / D QUANTIZAO rudo atravs filtros digitais
Deixe um filtro digital ser descrito pela resposta ao impulso, h (n), ou
a resposta de frequncia, H (e). Quando uma entrada quantizado, Q [x
(n)] = x (n) + e (n), aplicada a este sistema, possvel determinar os
efeitos da sequncia de erro e (n) na sada do filtro, uma vez que se
propaga atravs o filtro, assumindo infinito de preciso aplicao aritmtica

no filter.We so geralmente interessados na mdia ea varincia desta


sequncia de sada de rudo, o que podemos obter utilizando conceitos da
teoria do sistema linear. Detalhes destes resultados pode ser encontrada em
muitos textos introdutrios em processos aleatrios, incluindo [27].
Fazendo referncia Figura 10.8, deixar a sada do filtro ser y (n).
Usando as propriedades do LTI e a independncia estatstica entre x (n) e e
(n), a sada y (n) pode ser expressa como a soma dos dois componentes.
Seja y (n) a ser (verdadeiro) de sada devido a x (n) e Q (n) a resposta
devido a e (n). Ento, podemos mostrar que q (n) tambm uma seqncia
aleatria com mdia EQUAO 10.12, onde o termo H (e 0) denominado
o ganho CC do filtro. Para truncagem, reuniu = - / 2, que d equao
10.13, Para arredondamento, mer = 0 ou equao 10.14.
Tambm pode mostrar que a variao de q (n), tanto para o
truncamento ou arredondamento, dada pela Equao 10.15. O ganho de
varincia a partir da entrada para a sada (tambm conhecido como a
varincia de sada normalizada) a razo equao 10.16. Para um filtro real
e estvel, utilizando a substituio z = e , o integral na (10,16) pode ser
adicionalmente expressa como um contorno complexo integrante equao
10.17, onde UC o crculo unitrio e pode ser calculado utilizando os
resduos (ou o inverso transformada z) como 10.18 e 10.18b.
10.1.7 MATLAB EXECUO
Clculo da varincia de ganho para o rudo de quantizao A / D pode
ser realizada em MATLAB usando (10,16) e (10,18). Para filtros FIR, podemos
realizar clculos exatos usando a expresso no domnio do tempo em
(10.16). No caso dos filtros IIR, clculos exatos s pode ser feito usando
(10.18) em casos especiais, como veremos (felizmente, isso funciona para
filtros mais prticos). Os clculos aproximados sempre pode ser feito usando
a expresso de domnio de tempo. Deixe o filtro FIR ser dada pelos
coeficientes bk {} M-1 0. Em seguida, utilizando a expresso de domnio de
tempo em (10,16), o ganho de varincia dada pela equao 10.19. Deixe
um filtro IIR ser dado pela funo do sistema equao 10.20, com impulso
resposta h (n). Se assumirmos que o filtro real, causal e estvel e tem
apenas plos simples, em seguida, usando a expanso em fraes parciais,
podemos escrever equao 10.21, onde R0 o termo constante e Rk so as
de resduos no pk posies dos plos. Essa expanso pode ser calculado

usando a funo resduo. Note-se que ambos os plos e os resduos


correspondentes so ou de valor real ou ocorrem em pares complexo
conjugado. Em seguida, usando (10.18a), podemos mostrar que (ver [17] e
tambm Problema P10.3), equao 10.22.
A expresso de varincia-ganho em (10.22) aplicvel para filtros
mais prticos j que raramente eles tm vrios plos. O valor aproximado a
ganho de varincia para filtros IIR dada pela equao 10.23, em que K
escolhido de modo que os valores de resposta de impulso (magnitudewise)
so quase zero para alm amostras K. A funo a seguir MATLAB, VarGain,
calcula-varincia ganho usando (10,19) ou (10,22).
Cdigo
function Gv = VarGain(b,a)
% Computation of variance-gain for the output noise process
% of digital filter described by b(z)/a(z)
% Gv = VarGain(b,a)
a0 = a(1); a = a/a0; b = b/a0; M = length(b); N = length(a);
if N == 1 % FIR Filter
Gv = sum(b.*b);
return
else % IIR Filter
[R,p,P] = residue(b,a);
if length(P) > 1
error(*** Variance Gain Not computable ***);
elseif length(P) == 1
Gv = P*P;
else
Gv = 0;
end
Rnum = R*R; pden = 1-p*p;
H = Rnum./pden; Gv = Gv + real(sum(H(:)));
end
Deve notar-se que a varincia efectiva rudo de sada obtida atravs
da multiplicao do A / D varincia do rudo de quantizao pelo ganho de
varincia.
Exemplo 10.4: Considere um filtro IIR 8 ordem com plos em
pk = re 2k / 8, k = 0,. . . , 7. Se r prxima de 1, ento o filtro
tem quatro picos de banda estreita. Determinar o ganho de
variao para este filtro quando r = 0,9 e r = 0,99.

Soluo: O script de MATLAB a seguir ilustra os clculos para r = 0,9,


que implementa exata, bem como abordagens aproximados.
Codigo:
% Filter Parameters
N = 8; r = 0.9; b = 1; pl = r*exp(j*2*pi*[0:N-1]/N); a = real(poly(pl));
% Variance-gain (Exact)
Vg = VarGain(b,a)
Vg =
1.02896272593178
% Variance-Gain (approximate)
x = [1,zeros(1,10000)]; % Unit sample sequence
h = filter(b,a,x); % Impulse response
VgCheck = sum(h.*h)
VgCheck =
1.02896272593178
Claramente, ambas as abordagens do a mesma variao de ganho,
que, para r = 0,9 de cerca de 3% acima da unidade. Para r = 0,99 os
clculos so:
Cdigo:
% Filter Parameters
N = 8; r = 0.99; b = 1; pl = r*exp(j*2*pi*[0:N-1]/N); a =
real(poly(pl));
% Variance-gain (Exact)
Vg = VarGain(b,a)
Vg =
6.73209233071894
O ganho de variao mais do que 673%, o que significa que,
quando os plos esto perto do crculo unitrio, a sada do filtro pode ser
muito barulhento.
10.2 EFEITOS de arredondamento em FILTROS IIR DIGITAL
Com a nossa viso sobre a operao quantizer e sua statisticalmodel
mais simples, agora estamos prontos para mergulhar na anlise dos efeitos
palavra de comprimento finito, tanto IIR e filtros digitais FIR. Ns j
estudados os efeitos da quantizao do sinal de entrada e o coeficiente de
filtro de quantizao no comportamento de filtro. Vamos agora voltar nossa
ateno para os efeitos da operao aritmtica quantizao sobre as
respostas de sada do filtro (em termos de sinal para relaes de rudo).
Para este estudo, vamos considerar dois-ponto fixo e ponto flutuante
aritmtica. Consideramos primeiro os efeitos sobre filtros IIR uma vez
que, devido a caminhos de feedback, os resultados so mais complicadas

ainda mais interessante do que os filtros FIR. Os efeitos sobre filtros de FIR
so estudadas no NextSection.
Vamos nos restringir operao de arredondamento da quantizer
devido s suas qualidades estatsticos superiores (nenhum preconceito ou
valor mdio). De (6.59), sabemos que, para a operao de arredondamento,
o erro quantizer, eR, tem as mesmas caractersticas em todos os trs
formatos de representao nmero. Da para fins de simulao MATLAB,
vamos considerar o formato de grandeza de sinal, porque fcil de
programar e simular a operao aritmtica. No entanto, na prtica, formato
complemento de dois a representao nmero tem vantagens sobre os
outros em termos de implementao de hardware.
Implementao de filtros digitais requer operaes aritmticas de
multiplicao

adio.

Se

dois

nmeros

fracionrios

bits

so

multiplicados, o resultado um nmero fracionrio 2B bits, que deve ser


quantificada para B pedaos. Do mesmo modo, se os nmeros fraccionrios
duas B-bit so adicionados, a soma pode ser mais do que um, o que resulta
em um excesso, o que em si mesmo uma caracterstica no-linear; ou a
soma deve ser corrigido utilizando uma estratgia de saturao, o que
tambm no linear. Assim, uma aplicao palavra de comprimento finito
do filtro um filtro altamente no linear e tem de ser cuidadosamente
analisados para quaisquer resultados significativos. Nesta seo, vamos
considerar duas abordagens para lidar com erros devido
a representao finita palavra de comprimento. O primeiro tipo de
erro pode ocorrer quando as amostras de erro tornam-se correlacionada
com o outro, devido no linearidade do quantificador. Isso chamado de
comportamento limite de ciclo, e isso s pode existir em filtros IIR. Ns
vamos analisar esse problema usando o modelo no-linear quantizer ao
invs do modelo estatstico do quantificador. No segundo tipo de erro,
assume-se que mais efeitos no lineares no quantificador foram suprimidos.
Em seguida, usando o modelo estatstico da quantizer, desenvolvemos um
modelo de rudo de quantizao para filtros IIR que mais til para prever
os efeitos palavra de comprimento finito.
10.2.1 ciclos limites
Filtros digitais so sistemas lineares, mas quando quantizadores so
incorporadas na sua execuo, eles se tornam sistemas no-lineares. Para

sistemas no lineares possvel ter uma sequncia de sada, mesmo


quando

no

houver

nenhuma

entrada.

Ciclos

limites

um

tal

comportamento que cria uma sada peridica oscilatrio que altamente


indesejvel.
OBS: DEFINIO ciclo 1 Limite
Um ciclo de limite de entrada zero uma seqncia de sada
diferente de zero peridico produzido por elementos no-lineares ou
quantizadores no loop de feedback de um filtro digital.
Existem dois tipos de ciclos limite. Os ciclos limites granulares so
devido a no-linearidades na multiplicao de quantizao e so de baixa
amplitude. Os ciclos limite de excesso so um resultado de excesso para
alm e pode ter grandes amplitudes.
10.2.2 ciclos limites GRANULARES
Este tipo de ciclo-limite pode ser facilmente demonstrada com uma
simples quantizer arredondamento aps uma multiplicao. Ns ilustrar com
o exemplo a seguir.
EXEMPLO 10.5 Considere um filtro IIR de 1 ordem dada pela
Equao simples 10,24. Deixe- = -1/2; ento este um filtro passa
alto, uma vez que o plo est prximo z = -1. Determinar a sada y
(n) quando x (n) = 7/8 (n), assumindo um quantif icador de 3 bits
no multiplicador.
Soluo: Aps a multiplicao por , temos de quantificar o
resultado. Deixe a sada devido
para este quantizao ser y (n). Em seguida, o filtro digital
implementvel real Equao 10,25. Assume-se que a entrada em (10,24)
quantizada e que no h excesso devido adio. Deixe-B = 3 (isto , que
tm 3 bits e uma fraco de bit de sinal) e seja x (n) = 7/8 (n). Agora =
-1/2 representado por 1? 110 em formato de complemento de dois. Por
conseguinte, a sequncia de sada obtido como: Equao 10,26.
Assim, y (n) = 1/8 para n 5. A sada y desejada (n) Equao
10,27. Por conseguinte, a sequncia de erro Equao 10,28. Isso mostra
que o e erro (n) constri lentamente at 1/8. Por isso, o erro

assintoticamente peridica com perodo 2. A partir do Exemplo 10.5,


evidente que, no estado de equilbrio, o sistema tem plos no crculo
unitrio e, consequentemente, o sistema no linear efetivamente tornou-se
um sistema linear [12]. Isto implica que, de forma eficaz, para o sistema em
(10,24), Equao 10,29. Alm disso, devido operao de arredondamento,
o erro de quantificao limitada por / 2 onde = 2-B o passo de
quantificao, ou na Equao 10,30. De (10.29) e (10.30), podemos concluir
que 10,31, que a faixa de amplitude das oscilaes limite de ciclo e
chamado de banda morta. Para o sistema no Exemplo 10.5, B = 3 e =
-1/2. Da a gama mortos-band 08/01, que concorda com (10,31). Se a
sada y (n-1) fica preso nesta banda quando a entrada for zero, o filtro
apresenta o ciclo limite granular. A partir de (10,29), o perodo da oscilao
1 ou 2.
Anlise usando MATLAB Em nossas simulaes anteriores MATLAB,
no se preocupe com a quantizao em operaes de multiplicao ou de
adio porque a nfase era em ambos os quantizao sinal ou no
coeficiente de filtro de quantizao. A operao importante que temos que
considerar as caractersticas de estouro aritmticos. Ns assumimos que
os nmeros representados so em formato de complemento de dois
fraccionada.

Em

seguida,

na

prtica,

duas

caractersticas

de

transbordamento so utilizados: um excesso complemento de dois, o que


uma funo de mdulo (peridica), e uma saturao, que uma funo de
limitao. Estas caractersticas so mostradas na Figura 10.9. Para simular
estes dois efeitos, ns fornecemos o functiony = Qfix (x, B, 'Qmode',
'Omode'). Esta funo executa um quantizao two'scomplement formato
de ponto fixo usando (B + 1) bits representao de modo que o nmero
resultante y entre -1 y <1. O modo de quantizao, Qmode, ou um
arredondamento ou uma operao de truncamento . A caracterstica
fornecida em excesso Omode. Usando esta funo, ns podemos estudar os
dois tipos de ciclos limites.
Cdigo:
function [y] = QFix(x,B,Qmode,Omode)
% Fixed-point Arithmetic using (B+1)-bit Representation
% ----------------------------------------------------% [y] = QFix(x,B,Qmode,Omode)
% y: Decimal equivalent of quantized x with values in [-1,1)
% x: a real number array
% B: Number of fractional bits

% Qmode: Quantizer mode


% round: twos-complement rounding characteristics
% trunc: Twos complement truncation characteristics
% Omode: Overflow mode
% satur: Saturation limiter
% twosc: Twos-complement overflow
% Quantization operation
if strcmp(lower(Qmode), round);
y = round(x.*(2^B));
elseif strcmp(lower(Qmode), trunc);
y = floor(x.*(2^B));
else
error(Use Qmode = "round" or "trunc");
end;
y = y*(2^(-B)); % (B+1)-bit representation
% Overflow operation
if strcmp(lower(Omode), satur);
y = min(y,1-2^(-B)); y = max(-1,y); % Saturation
elseif strcmp(lower(Omode), twosc);
y = 2*(mod(y/2-0.5,1)-0.5); % Overflow
else error(Use Omode = "satur" or "twosc");
end;
EXEMPLO 10.6 Neste exemplo simular os resultados para o
sistema dada no Exemplo 10.5 utilizando a funo Qfix com b = 3
bits. Alm disso, tambm examinar o comportamento limite de ciclo
para a operao de truncagem no multiplicador e para o caso
quando o sistema um filtro passa-baixo com um coeficiente de =
0,5.
Soluo: Os scripts do MATLAB:
% Highpass filter, rounding operation in multiplier
a = -0.5; yn1 = 0; m = 0:10; y = [yn1, zeros(1,length(m))];
x = 0.875*impseq(m(1),m(1)-1,m(end));
for n = m+2
yn1 = y(n-1);
y(n) = QFix(a*yn1,3,round,satur) + x(n);
end
subplot(position,[0.08,0.2,0.24,0.6]);
plot([-1,20],[0,0],w); axis([-1,10,-1,1]); hold on;
Hs_1
=
stem([-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(\alpha = -0.5, Rounding,fontsize,10);
xlabel(Sample index n,fontsize,8);
% Lowpass filter, rounding operation in multiplier
a = 0.5; yn1 = 0; m = 0:10; y = [yn1, zeros(1,length(m))];
x = 0.875*impseq(m(1),m(1)-1,m(end));

for n = m+2
yn1 = y(n-1);
y(n) = QFix(a*yn1,3,round,satur) + x(n);
end
subplot(position,[0.42,0.2,0.24,0.6]);
plot([-1,20],[0,0],w); axis([-1,10,-1,1]); hold on;
Hs_1
=
stem([-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(\alpha = 0.5, Rounding,fontsize,10);
xlabel(Sample index n,fontsize,8);
% Highpass filter, Truncation operation in multiplier
a = -0.5; yn1 = 0; m = 0:10; y = [yn1, zeros(1,length(m))];
x = 0.875*impseq(m(1),m(1)-1,m(end));
for n = m+2
yn1 = y(n-1);
y(n) = QFix(a*yn1,3,trunc,satur) + x(n);
end
subplot(position,[0.76,0.2,0.24,0.6]);
plot([-1,20],[0,0],w); axis([-1,10,-1,1]); hold on;
Hs_1
=
stem([-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(\alpha = -0.5, Truncation,fontsize,10);
xlabel(Sample index n,fontsize,8);
Os lotes resultantes so mostradas na Figura 10.10. O sinal de sada
da esquerda enredo concorda com que no Exemplo 10.5 e tem um perodo
de dois assinttica amostras. A trama meio para = 0,5 (filtro passa baixo)
mostra que o ciclo limite possui um perodo de uma amostra com uma
amplitude de 8. Finalmente, o enredo direita mostra que os ciclos limites
desaparecer para a operao de truncagem. Este comportamento para o
operao de truncamento tambm exibido para os filtros passa-baixa. No
caso de 2 ordem e de ordem superior filtros digitais, limite granular ciclos
no s existem, mas tambm so de vrios tipos. Estes ciclos em 2ndorder
filtros podem ser analisados, e-band mortos bem como a freqncia das
oscilaes pode ser estimado. Por exemplo, se o filtro recursivo de todos os
plos

implementado

com

arredondamento

quantizadores

nos

multiplicadores como Equao 10,32, onde y (n) a sada quantizado, em


seguida, utilizando a anlise semelhante do caso 1-fim, a regio de mortosband dada por equao 10.33, com a1 determina a frequncia das
oscilaes. Para mais detalhes veja Proakis, e Manolakis [23]. Ns
fornecemos o seguinte exemplo para ilustrar ciclos limites granulares em
filtros de segunda ordem usando quantizadores 3 bits.

EXEMPLO 10.7 Considere o filtro recursivo de 2 ordem,


Equao 10.34, com zero condies iniciais. Este filtro tem dois
plos complexo-conjugado e, portanto, um filtro passa-banda.
Deixe a entrada ser x (n) = 0.375 (n). Analisar o comportamento
do ciclo limite utilizando um quantizador de 3 bits.
Soluo: Na aplicao do filtro dos produtos de coeficiente so
quantificados, que resulta na Equao 10,34, onde y (n) a sada
quantizada. Simulamos (10,35) em MATLAB usando tanto o arredondamento
e operaes de truncamento.
Codigo:
% Bandpass filter
a1 = 0.875; a2 = -0.75;
% Rounding operation in multipliers
yn1 = 0; yn2 = 0;
m = 0:20; y = [yn2,yn1,zeros(1,length(m))];
x = 0.375*impseq(m(1),m(1)-2,m(end));
for n = m+3
yn1 = y(n-1); yn2 = y(n-2);
y(n)
=
QFix(a1*yn1,3,round,satur)
+QFix(a2*yn2,3,round,satur)+x(n);
end
subplot(position,[0.1,0.2,0.39,0.6]);
plot([-1,20],[0,0],w); axis([-1,20,-0.5,0.5]); hold on;
Hs_1 = stem([-2,-1,m],y,filled); set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-0.5:0.25:0.5],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(Rounding Operation,fontsize,10);
xlabel(Sample index n,fontsize,8);
% Truncation operation in multipliers
yn1 = 0; yn2 = 0;
m = 0:20; y = [yn2,yn1,zeros(1,length(m))];
x = 0.375*impseq(m(1),m(1)-2,m(end));
for n = m+3
yn1 = y(n-1); yn2 = y(n-2);
y(n) = QFix(a1*yn1,3,trunc,satur)+QFix(a2*yn2,3,trunc,satur)
+x(n);
end
subplot(position,[0.59,0.2,0.39,0.6]);
plot([-1,20],[0,0],w); axis([-1,20,-0.5,0.5]); hold on;
Hs_1 = stem([-2,-1,m],y,filled); set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-0.5:0.25:0.5],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(Truncation Operation,fontsize,10);
xlabel(Sample index n,fontsize,8);

Os lotes resultantes so mostradas na Figura 10.11. Os ciclos limites


de arredondamento de um prazo de seis amostras e amplitude de 0,25, o
que est de acordo com (10.33). Ao contrrio, no caso de filtros de 1
ordem, os ciclos-limite para a 2 ordem existir mesmo quando o
truncamento usado no quantificador.
10.2.3 CICLOS OVERFLOW LIMITE
Este tipo de ciclo limite tambm um comportamento de entrada
zero que d uma sada oscilatrio. devido a transbordar na adio mesmo
se ignorarmos multiplicao ou quantizao produto na aplicao do filtro.
Este um ciclo limite mais grave porque as oscilaes pode cobrir todo o
intervalo dinmico do quantif icador. Isso pode ser evitado atravs da
utilizao na prtica das caractersticas de saturao,

em vez

de

transbordamento no quantif icador. No exemplo a seguir, simulamos dois


ciclos limites granulares e estouro em um filtro de segunda ordem, alm de
aplicao de preciso infinito.
EXEMPLO 10.8 Para obter estouro Alm disso, vamos considerar o
filtro de segunda ordem com grandes valores dos coeficientes e condies
iniciais (magnitudewise) excitados por uma entrada zero: (10.36)
O excesso na adio obtido colocando o quantizador aps as
adies como (10,37), onde y (n) a sada quantizada. Ns primeiro simular
a operao infinita de preciso de (10,36) e comparar a sua sada com a
implementao limite de ciclo granular em (10,35) e com o limite de ciclo
de estouro em (10,37). Usamos a operao de arredondamento. Os detalhes
esto no script MATLAB:
M = 100; B = 3; A = 1-2^(-B);
a1 = A; a2 = -A; yn1 = -A; yn2 = A;
m = 0:M; y = [yn2,yn1,zeros(1,length(m))];
% Infinite precision
for n = m+3
yn1 = y(n-1); yn2 = y(n-2);
y(n) = a1*yn1 + a2*yn2;
end
subplot(position,[0.08,0.2,0.24,0.6]);
plot([-1,100],[0,0],w); axis([-1,80,-1,1]); hold on;
Hs_1
=
stem([-2,-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);

title(No Limit Cycles,fontsize,10);


xlabel(Sample index n,fontsize,8);
% Granular limit cycle
for n = m+3
yn1 = y(n-1); yn2 = y(n-2);
y(n)
=
QFix(a1*yn1,B,round,satur)
+QFix(a2*yn2,B,round,satur);
y(n) = QFix(y(n),B,round,satur);
end
subplot(position,[0.42,0.2,0.24,0.6]);
plot([-1,100],[0,0],w); axis([-1,80,-1,1]); hold on;
Hs_1
=
stem([-2,-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(Granular Limit Cycles,fontsize,10);
xlabel(Sample index n,fontsize,8);
% Overflow limit cycle
for n = m+3
yn1 = y(n-1); yn2 = y(n-2);
y(n) = a1*yn1 + a2*yn2;
y(n) = QFix(y(n),B,round,twosc);
end
subplot(position,[0.76,0.2,0.23,0.6]);
plot([-1,100],[0,0],w); axis([-1,80,-1,1]); hold on;
Hs_1
=
stem([-2,-1,m],y,filled);set(Hs_1,markersize,3,color,
[0,1,0]);
set(gca,ytick,[-1:0.25:1],fontsize,6);
ylabel(Amplitude,fontsize,8);
title(Overflow Limit Cycles,fontsize,10);
xlabel(Sample index n,fontsize,8);
Os lotes resultantes so mostradas na Figura 10.12. Como esperado,
a aplicao infinita preciso no tem limite de ciclos. Os ciclos limite
granulares so de amplitudes menores. Claramente, os ciclos limites
estouro tm grandes amplitudes abrangendo a faixa de -1 a 1 dos
quantificadores.
Como mostrado nestes exemplos, os comportamentos limite de ciclo
de

muitos

filtros

diferentes

podem

ser

estudadas

para

diferentes

caractersticas quantificadores utilizando a funo QFix MATLAB.


10.2.4 MULTIPLICAO QUANTIZAO ERROR
Amultiplier elemento na implementao do filtro pode introduzir erros
de quantizao adicional uma vez que a multiplicao dos dois bits B
nmeros fraccionrios resultar numa fraco 2B bits e deve ser quantizadas
para uma fraco de B bits. Considere um multiplicador em aritmtica de
ponto fixo com B = 8. O nmero 1 / 3 representado como 0,578125 em

decimal. O quadrado de 0.578125 arredondado para 8 bits 0,3359375


(que no deve ser confundido com 1/3 arredondado para 8 bits, o que
0,33203125). O erro adicional na operao quadratura
0.3359375 - (0.578125) 2 = ,001708984375
Este erro adicional denominado como o erro de quantificao de
multiplicao. O seu modelo estatisticamente equivalente semelhante
do modelo de erro de quantizao de A / D, como mostrado na Figura 10.13.
Considere o modelo estatstico do bloco quantificador B-bit seguinte
do elemento multiplicador mostrado na Figura 10.13a. A sequncia x (n) e o
constantc so quantizadas para b bits fraccionais antes da multiplicao
(como seria o caso numa implementao tpica). A sequncia multiplicado
{cx (n)} quantificado para obter y (n). Queremos substituir o quantizador
por um modelo simples linear do sistema mostrado na Figura 10.13b, em
que y (n) = cx (n) + e (n), onde e (n) um erro de quantificao de
multiplicao. Para fins de anlise assume-se que as condies sobre a e (n)
so semelhantes aos de A / D
erro de quantificao:
1. O sinal de e aleatria (N) no est correlacionada com a sequncia
x (n) para arredondamento funcionamento (ou operao truncamento
complemento de dois) no quantif icador.
2. O sinal E (N) um processo independente (ou seja, as amostras
so independentes uns dos outros).
3. A funo de densidade de probabilidade (pdf) Fe (e), e (n) para
cada n est distribuda uniformemente ao longo do intervalo de largura =
2-B, que a resoluo do quantizador.
Vamos enfatizar a operao de arredondamento para o resto desta
seo. Com base nas suposies do modelo acima, os resultados
apresentados na (10,7), (10,9), e (10,10) tambm so aplicveis para a
multiplicao e erro de quantizao (n).
Oferecemos os dois exemplos MATLAB seguintes para ilustrar este
modelo.

Uma

investigao

mais

aprofundada

deste

erro

pode

ser

encontrado em Rabiner e Tukey [25].


EXEMPLO 10.9: Considere a seqncia dada no Exemplo 10.1,
que repetido aqui. x (n) = 1/3 [sen (n / 11) + sen (n / 31) + cos (n /
67)] Este sinal multiplicado por c = 1 / 2, quantizadas para b bits

e a resultante multiplicao quantificado para B bocados com


arredondamento. Usando a funo StatModelR e 500.000 amostras,
computao e analisar os erros normalizados E1 (n) e e2 (n),
definida em (10.2) e (10.3), respectivamente.
Soluo: O script MATLAB a seguir calcula a distribuio de erro,
para B = 6 bits.
Cdigo:
clear; close all;
% Example parameters
B = 6; N = 500000; n = [1:N]; bM = 7;
xn = (1/3)*(sin(n/11)+sin(n/31)+cos(n/67)); clear n;
c = 1/sqrt(2);
% Signal and Coefficient Quantization
xq = (round(xn*(2^B)))/(2^B); c = (round(c*(2^B)))/(2^B);
cxq = c*xq; % Multiplication of constant and signal
% Quantization error analysis
[H1,H2,Q, estat] = StatModelR(cxq,B,N);
H1max = max(H1); H1min = min(H1); % Max and Min of H1
H2max = max(H2); H2min = min(H2); % Max and Min of H2
As parcelas do histograma resultante so mostradas na Figura 10.14.
Para o sinal sinusoidal, quando B = 6 bits, as amostras de erro no so
uniformemente distribudos e as amostras no so independentes. Os meios
de E (N) e [E (N) + e (n-1)] / 2 so pequenos. Seus desvios-padro esto
0.0045105 e 0.0031059, que no concordam com (10.10). As parcelas
correspondentes para B = 12 bits esto apresentados
Figura 10.15 a partir da qual podemos observar que a sequncia de
erro de quantizao aparece
para satisfazer os pressupostos do modelo para B 12 bits. Os meios
de E (N) e [E (N) + e (n - 1)] / 2 so muito pequenas, e respectivos desviospadro concorda estreitamente com (10,10).
EXEMPLO 10.10: Temos

x (n) ser uma sequncia aleatria

independente e identicamente distribuda cujas amostras so


distribudos uniformemente sobre a [-1, 1] intervalo. Usando
500.000 amostras para minimizar quaisquer variaes estatsticas,
analisar os erros normalizados.
Soluo: O script MATLAB a seguir calcula as distribuies para B = 6
bits.

Cdigo:
clear; close all;
% Example parameters
B = 6; N = 500000; xn = (2*rand(1,N)-1); bM = 7; c = 1/sqrt(2);
% Signal and Coefficient Quantization
xq = (round(xn*(2^B)))/(2^B); c = (round(c*(2^B)))/(2^B);
cxq = c*xq; % Multiplication of constant and signal
% Quantization error analysis
[H1,H2,Q, estat] = StatModelR(cxq,B,N);
H1max = max(H1); H1min = min(H1); % Max and Min of H1
H2max = max(H2); H2min = min(H2); % Max and Min of H2
As parcelas do histograma resultante so mostradas na Figura 10.16.
Mesmo para B = 6 bits, as amostras de erro parecem ser uniformemente
distribudo (embora de forma discreta) e so independentes um do outro. As
parcelas correspondentes para B = 12 bits so mostrados na Figura 10.17.
claro para B = 12 bits que as amostras do erro de quantificao so
independentes e uniformemente distribudo. Os leitores devem verificar as
estatsticas desses erros apresentados na (10,7), (10,9), e (10.10).
A partir destes dois exemplos, conclui-se que o modelo estatstico
para o erro de quantificao de multiplicao, com os seus pressupostos
declarados, um bom modelo para sinais aleatrios quando o nmero de
bits no quantif icador grande o suficiente.
10.2.5 ESTATSTICA de arredondamento NOISE-FIXO-aritmtica de
ponto
Nesta e

na prxima

seo,

vamos considerar os

efeitos de

arredondamento em filtros IIR, usando o modelo de erro de quantizao


multiplicao

desenvolvido

na

seo

anterior.

Desde

destacamos

operao de arredondamento, este modelo tambm conhecido como um


rudo de arredondamento model.We nos limitar aos filtros de 2 ordem
1stand desde realizaes prticas envolvem sees de 1 ou 2 ordem.
Filtro de 1 ordem Considere o filtro de 1 ordem mostrada na Figura
10.18a. Quando um quantificador Q [] introduzido aps o multiplicador, o
modelo de filtro resultante mostrada na Figura 10.18b, que um sistema
no linear. Quando Q [] um quantizador com base nas caractersticas de
arredondamento, em seguida, o seu efeito consiste em adicionar um zeromdia, estacionria sequncia de rudo branco e (n) na sada do
multiplicador conforme mostrado na Figura 10.18c. Seja q (n) ser a resposta

devido a e (n) e deixe que (n) a resposta ao impulso de rudo (isto , entre
o e (n) e Q (n)). Para o sistema na Figura 10.18c He (n) = h (n) = nu (n)
(10,38). Usando (10,12) e (10.7), a mdia de q (n) Equao (10,39).
Da mesma forma, utilizando (10,15), a varincia de q (n) Equao
(10,40)
Substituindo 2e = 2-2B / 12 para arredondamento e ele (n) a partir
de (10.38), obtemos Equao (10.41), que a potncia de rudo de sada
devido ao arredondamento aps a multiplicao.
No entanto, tambm temos de evitar um possvel estouro seguinte a
vbora. Deixe Y1 (n) o sinal na sada do adicionador na Figura 10.18a, que
neste caso igual a y (n). Agora, o limite superior sobre y1 (n) Equao
(10.42).
Deixe a sequncia de entrada ser delimitada por Xmax (isto , | x (n) |
Xmax). Ento Equao (10.43).
Desde y1 (n) representado por B bits de frao, temos | y1 (n) | 1.
A condio (10,43) podem ser satisfeitas atravs da exigncia Equao
(10.44). Assim, para evitar transbordamento x (n) tem de satisfazer a
Equao (10,45). Assim, a entrada deve ser dimensionado antes de ser
aplicado ao filtro como mostra a Figura 10.19.
Relao sinal-para-rudo Iremos agora calcular o efeito palavra de
comprimento finito, em termos da relao entre a sada de sinal-para-rudo
(SNR). Assume-se que no h excesso na sada por x adequadamente
escalonamento (n). Seja x (n) uma sequncia branco estacionrio,
uniformemente distribuda entre Equao (10.46). Portanto, y (n) tambm
uma sequncia aleatria estacionrio com mdia minha Equao (10.47).
Usando (10,41) e (10,47), a sada de SNR Equao (10,48) ou o SNR
em dB Equao (10,49)
Deixe = 1- | |, que a distncia do plo do crculo unitrio. ento
Equao (10,50), que um resultado muito informativo. Em primeiro
lugar, ele mostra que o SNR directamente proporcional B e aumenta em
cerca de 6 dB para cada bit adicional adicionado ao comprimento de
palavra. Em segundo lugar, a SNR tambm directamente proporcional
distncia . Quanto menor for o (ou mais perto do poste para o crculo
unitrio), menor o SNR, que uma consequncia das caractersticas do
filtro. Como um exemplo, se B = 6 e = 0,05, em seguida, a SNR = 16,12
dB e se B = 12 e = 0,1, em seguida, a SNR = 58,26 dB.

10.2.6 anlise utilizando MATLAB


Para analisar as propriedades dos erros de arredondamento em filtros
IIR vamos simular-los usando a funo QFix MATLAB com o modo de
quantizao 'round' e modo de estouro 'satur'. Se a escala adequada para
evitar transbordamento realizado, somente a sada do multiplicador
precisa

ser

quantificado

em

cada

sem

se

preocupar

com

transbordamento. No entanto, ainda vai saturar a soma final para evitar


quaisquer problemas imprevistos. Em simulaes anteriores, poderamos
realizar as operaes de quantizao em vetores (ou seja, realizar o
processamento paralelo). Desde que os filtros IIR so filtros recursivos e
uma vez que cada erro alimentado de volta para o sistema, vector de
operao no geralmente possvel. Por conseguinte, a sada do filtro ir
ser calculado sequencialmente a partir da primeira para a ltima amostra.
Para um grande nmero de amostras, esta aplicao ir desacelerar a
velocidade de execuo em MATLAB desde MATLAB otimizado para
clculos vetoriais. No entanto, para os processadores mais recentes rpidos,
o tempo de execuo , dentro de poucos segundos. Estes passos de
simulao encontram-se detalhados no exemplo a seguir.
EXEMPLO 10.11: Considere o modelo dado na Figura 10.19b.
Vamos

simular

esse

modelo

em

MATLAB

investigar

suas

caractersticas de erro de sada. Deixe a = 0,9, o que vai ser


quantizadas

para

bits.

sinal

de

entrada

distribudo

uniformemente sobre a [-1, 1] intervalo e tambm quantizado


para b bits antes da filtragem. O factor de escala calculada a
partir Xmax (10,44). Usando 100, 000 amostras de sinal e B = 6
bits, o script MATLAB seguir calcula o verdadeiro sada y (n), a
sada y quantificado (n), o erro de sada Q (n), e o SNR de sada.
Codigo:
close all; clc;
% Example Parameters
B = 6; %# of fractional bits
N = 100000; % # of samples
xn = (2*rand(1,N)-1); % Input sequence - Uniform Distribution
a = 0.9; % Filter parameter
Xm = 1-abs(a); % Scaling factor
% Local variables

bM = 7; DbM = 2^bM; % bin parameter


BB = 2^B; % useful factor in quantization
M = round(DbM/2); % Half number of bins
bins = [-M+0.5:1:M-0.5]; % Bin values from -M to M
Q = bins/DbM; % Normalized bins
YTN = 2^(-bM); % Ytick marks interval
YLM = 4*YTN; % Yaxis limit
% Quantize the input and the filter coefficients
xn = QFix(Xm*xn,B,round,satur); % Scaled Input quant to B bits
a = QFix(a,B,round,satur); % a quantized to B bits
% Filter output without multiplication quantization
yn = filter(1,[1,-a],xn); % output using filter routine
% Filter output with multiplication quantization
yq = zeros(1,N); % Initialize quantized output array
yq(1) = xn(1); % Calculation of the first sample yq(1)
for I = 2:N;
A1Y = QFix(a*yq(I-1),B,round,satur); % Quantization of a*y(n-1)
yq(I) = QFix(A1Y+xn(I),B,round,satur); % I-th sample yq(I)
end
% Output Error Analysis
en = yn-yq; % Output error sequence
varyn = var(yn); varen = var(en); % Signal and noise power
eemax = max(en); eemin = min(en); % Maximum and minimum of
the error
enmax = max(abs([eemax,eemin])); % Absolute maximum range of
the error
enavg = mean(en); enstd = std(en); % Mean and std dev of the
error
en = round(en*(2^bM)/(2*enmax)+0.5); % Normalized en (integer
between -M & M)
en = sort([en,-M:1:(M+1)]); %
H = diff(find(diff(en)))-1; % Error histogram
H = H/N; % Normalized histogram
Hmax = max(H); Hmin = min(H); % Max and Min of the normalized
histogram
% Output SNRs
SNR_C = 10*log10(varyn/varen); % Computed SNR
SNR_T = 6.02 + 6.02*B + 20*log10(Xm); % Theoretical SNR
A parte do script no mostrada acima tambm calcula e traa o
histograma normalizado do erro de sada e imprime os valores estatsticos
na trama, como mostrado na Figura 10.20. O erro parece ter uma
distribuio de Gauss, que de se esperar. O valor exato da SNR sada
22,14 dB, o que est de acordo com o valor calculado de 22,21 dB.
Resultados semelhantes realizados para B = 12 bits so mostrados na
Figura 10.21. Mais uma vez, os resultados da simulao de acordo com os
resultados do modelo. ? 2 ordem filtrar anlise semelhante pode ser feito
para filtros de segunda ordem com plos prximos do crculo unitrio. Deixe
os dois plos estar em locais complexos re e re-. Em seguida, o

funcionamento do sistema do filtro dada pela Equao (10,51), com a


Equao de resposta de impulso (10,52).
A equao de diferena a partir de (10,51) dada pela Equao
(10,53), que requer duas multiplicaes e duas adies, como mostrado na
Figura 10.22a. Assim, existem duas fontes de rudo e dois possveis locais
para o transbordamento. O modelo de rudo de arredondamento para a
quantizao seguinte, os dois multiplicadores mostrado na Figura 10.22b,
onde o Q1 respostas (n) e Q2 (n) so devidas a fontes de rudo (n e1 e2) e
(n), respectivamente. Podemos combinar duas fontes de rudo em um. No
entanto, para evitar o transbordo que tem a escala de sinais na entrada de
cada somador, o que pode complicar esta consolidao de fontes.
Em modernos chips DSP, os resultados intermedirios de multiplicaradicionar operaes so armazenados em uma multiplicao-acumulao
ou unidade MAC que tem um registo de preciso dupla para acumular
somas. A soma final [que para a Figura 10.22b na sada do somador topo]
quantizado para obter y (n). Esta aplicao no s reduz o total de rudo
de quantizao multiplicao mas tambm torna mais fcil a anlise
resultante.
Assumindo que esta aplicao moderna, o modelo simplificado
resultante mostrada na Figura 10.22c, onde e (n) a nica fonte de rudo
que distribudo uniformemente entre [-2- (B + 1), 2- (B + 1)] e q (n) a
resposta devido a e (n). Note-se que e (n)? = E1 (n) + e2 (n) e que q (n)? Q1
= (N) + q2 (n). A nica excesso que tem que se preocupar a sada do
somador superior, que pode ser controlada por escamao da sequncia de
entrada x (n), como mostrado na Figura 10.22d. Agora, a anlise de rudo de
arredondamento pode ser levada a cabo de uma forma semelhante do
filtro de primeira ordem. Os detalhes, no entanto, esto mais envolvidos,
devido resposta de impulso em (10.52).
Relao sinal-para-rudo referncia Figura 10.22d, a resposta ao
impulso de rudo que (n) igual a H (n). Da a potncia de rudo round-off
dado pela Equao (10.54). Como x (n) quantizada, temos | x (n) | 1. Em
seguida, escalado pelo Xmax para evitar transbordamento no somador.
Assim a potncia do sinal de sada dada pela Equao (10,55), assumindo
que x (n) distribudo uniformemente sobre [-1, 1]. Por conseguinte, a sada

SNR dada pela Equao (10.56) ou SNRdB = 6,02 + 6.02b +


20log10 Xmax (10,57).
A seguir (10,43), (10,44) e (10,45), o factor de escala dada por
Xmax Equao (10,58), o que no fcil de calcular. No entanto, limites
inferiores e superiores em Xmax so fceis de obter. De (10.52), o limite
superior sobre o denominador de (10,58) dada pela Equao (10.59) ou o
limite inferior em Xmax dada pela Equao (10.60).
O limite inferior no denominador do (10,58) obtido fazendo notar
que
| H (e) | = ? n = 0 h (n) e- n = 0 |? h (n) |
Agora, a partir (10.51), a magnitude | H (e ) | dado por | H (e )
| = 11 - 2r cos () - + r2e-2
que tem o valor mximo na frequncia de ressonncia = , que
pode ser facilmente obtido. Da Equao (10.61) ou o limite superior sobre
Xmax dada por Equao (10.62).
Substituindo (10,60) e (10,62) em (10,56), a sada de SNR superior
e inferior delimitada pela Equao (10,63). Substituindo 1 - r = 1 e depois
alguma simplificao, obtm-se Equao (10,64) ou a diferena entre os
limites de SNR superiores e inferiores de cerca de 6 dB.
Mais uma vez a sada SNR directamente proporcional B e . Alm
disso, tambm depende do ngulo . Algumas destas observaes so
investigados no Exemplo 10.12.
10.2.7 anlise utilizando MATLAB
Vamos novamente simular erros de arredondamento usando a funo
QFix MATLAB com o modo de quantizao 'round' e modo de estouro 'satur'.
Desde uma arquitetura de MAC assumido, no temos para quantificar os
resultados intermedirios e se preocupar com estouro. Apenas o montante
final precisa ser quantificado com saturao. Essas operaes tambm so
simuladas de modo sequencial, o que tem um impacto sobre a velocidade
de execuo. Os passos de simulao para o segundo filtro de ordem esto
detalhados no exemplo a seguir.
EXEMPLO 10.12 Considere o modelo dado na Figura 10.22d.
Vamos

simular

esse

modelo

em

MATLAB

investigar

suas

caractersticas de erro de sada. Seja r = 0,9 e = / 3, a partir da

qual os parmetros de filtro so calculados e quantificados de B


bits. O sinal de entrada distribudo uniformemente sobre a [-1, 1]
intervalo e tambm quantizado para b bits antes da filtragem. O
factor de escala determinado usando Xmax (10,58), que pode ser
obtido em MATLAB pelo clculo da resposta ao impulso para um
suficientemente grande nmero de amostras. Usando 100, 000
amostras de sinal e B = 6 bits, o script MATLAB seguir calcula o
verdadeiro sada SNR, a SNR calculada, e os limites inferior e
superior da SNR.
Codigo:
close all; clc;
% Example Parameters
B = 12; % # of fractional bits
N = 100000; % # of samples
xn = (2*rand(1,N)-1); % Input sequence - Uniform
r = 0.9; theta = pi/3;% Pole locations
% Computed Parameters
p1 = r*exp(j*theta); % Poles
p2 = conj(p1); %
a = poly([p1,p2]); % Filter parameters
hn = filter(1,a,[1,zeros(1,1000)]); % Imp res
Xm = 1/sum(abs(hn)); % Scaling factor
Xm_L = (1-r)*sin(theta); % Lower bound
Xm_U = (1-r)*sqrt(1+r*r-2*r*cos(2*theta)); % Upper bound
% Local variables
bM = 7; DbM = 2^bM; % bin parameter
BB = 2^B; % useful factor in quantization
M = round(DbM/2); % Half number of bins
bins = [-M+0.5:1:M-0.5]; % Bin values from -M to M
Q = bins/DbM; % Normalized bins
YTN = 2^(-bM); % Ytick marks interval
YLM = 4*YTN; % Yaxis limit
% Quantize the input and the filter coefficients
xn = QFix(Xm*xn,B,round,satur); % Scaled Input quant B bits
a = QFix(a,B,round,satur); % a quantized to B bits
a1 = a(2); a2 = a(3);
% Filter output without multiplication quantization
yn = filter(1,a,xn); % output using filter routine
% Filter output with multiplication quantization
yq = zeros(1,N); % Initialize quantized output array
yq(1) = xn(1); % sample yq(1)
yq(2) = QFix((xn(2)-a1*yq(1)),B,round,satur); % sample yq(2)
for I = 3:N;
yq(I) = xn(I)-a1*yq(I-1)-a2*yq(I-2); % Unquantized sample
yq(I) = QFix(yq(I),B,round,satur); % Quantized sample
end
% Output Error Analysis
en = yn-yq; % Output error sequence

varyn = var(yn); varen = var(en); % Signal and noise power


eemax = max(en); eemin = min(en); % Maximum and minimum of
the error
enmax = max(abs([eemax,eemin])); % Absolute maximum range of
the error
enavg = mean(en); enstd = std(en); % Mean and std dev of the
error
en = round(en*(2^bM)/(2*enmax)+0.5); % Normalized en (integer
between -M & M)
en = sort([en,-M:1:(M+1)]); %
H = diff(find(diff(en)))-1; % Error histogram
H = H/N; % Normalized histogram
Hmax = max(H); Hmin = min(H); % Max and Min of the normalized
histogram
% Output SNRs
SNR_C = 10*log10(varyn/varen); % Computed SNR
SNR_T = 6.02 + 6.02*B + 20*log10(Xm); % Theoretical SNR
SNR_L = 6.02 + 6.02*B + 20*log10(Xm_L); % Lower SNR bound
SNR_U = 6.02 + 6.02*B + 20*log10(Xm_U); % Upper SNR bound
A parte do script no mostrada acima tambm calcula e traa o
histograma normalizado do erro de sada e imprime os valores estatsticos
na trama, como mostrado na Figura 10.23. O erro de novo tem uma
distribuio de Gauss. O valor exato da sada SNR 25,22 dB, o que est de
acordo com o valor calculado de 25,11 dB e fica entre o limite inferior de
20,89 dB e o limite superior de 26,47 dB. Resultados semelhantes realizados
para B = 12 bits so mostrados na Figura 10.24. Mais uma vez, os
resultados da simulao de acordo com os resultados do modelo.
10.2.8 FILTROS de ordem superior
A anlise dos efeitos de quantizao em um filtro de segunda ordem
pode ser aplicado directamente a filtros de ordem mais elevada com base
numa realizao paralelo. Neste caso, cada seco de filtro segunda ordem
independente de todas as outras seces, e, por conseguinte, a potncia
total de rudo de quantizao na sada da estrutura paralela simplesmente
a soma linear das potncias de rudo de quantizao de cada uma das
seces individuais. Por outro lado, a realizao em cascata mais difcil de
analisar, porque o rudo gerado em qualquer seco do filtro de segunda
ordem filtrada por as seces que se sucedem. Para minimizar a potncia
total de rudo na sada do filtro de ordem superior, uma estratgia razovel,
colocar as seces em ordem decrescente de frequncia de ganho
mximo. Neste caso, a potncia de rudo gerado na seco de incio de alto
ganho no significativamente potenciado pelos ltimos seces. Usando

as tcnicas MATLAB desenvolvidos nas seces anteriores, que mais fcil


para simular implementaes palavra de comprimento finito e determinar o
SNR de sada para uma dada estrutura em cascata.
10.2.9 ESTATSTICA arredondar o rudo de ponto flutuante
ARITHMETIC
Tal como referido no Captulo 6, a aritmtica de ponto flutuante d um
erro que relativo magnitude em vez de um erro absoluto. Isso resulta
em um rudo multiplicativo, em vez de rudo aditivo, isto , a partir de (6,61)
da Equao (10,65) com Equao (10,66) para um (B 1) bits de mantissa.
Por conseguinte, a mdia do erro relativo m = 0
e sua varincia Equao (10.67).
Desde MATLAB implementado em IEEE-754 aritmtica de ponto
flutuante, todas as simulaes que realizamos so IEEE-754 clculos de
ponto flutuante. difcil (se no impossvel) para simular uma aritmtica de
ponto flutuante arbitrrio em MATLAB. Por isso, damos apenas resultados
tericos. Filtro de 1 ordem Considere um filtro de 1 ordem como antes e
mostrado na Figura 10.25a. Para a anlise de palavras de comprimento
finito com aritmtica de ponto flutuante precisamos quantizadores aps
tanto multiplicao e adio para contabilizar os arredondamentos na
mantissa, como mostrado na Figura 10.25b. Portanto, h duas fontes de
rudo no modelo estatstico como mostrado na Figura 10.25c, onde E1 (n)
a fonte de rudo no multiplicador, e2 (n) a fonte de rudo no adicionador, g
(n) um adicionador sequncia antes de quantizao, e y (n) a sada
quantizada. Agora Equao (10.68a) e Equao (10.68b), onde 1 (n) e 2
(n) so os erros relativos nos quantizadores correspondentes.
A anlise exata mesmo para o caso de 1 ordem tedioso; por isso,
vamos fazer algumas aproximaes praticamente razoveis. Se os valores
absolutos dos erros so pequenas, ento temos y (N-1) y (N-1) e g (n) y
(n); portanto, a partir de (10.68a) obtemos Equao (10.69a) e Equao
(10.69b).
Alm disso, fazemos a seguinte suposio sobre as fontes de rudo:
1. 1 (n) e 2 (n) so fontes de rudo branco.
2. 1 (n) e 2 (n) no esto correlacionados uns com os outros.
3. 1 (n) e 2 (n) no esto correlacionados com a entrada x (n).
4. 1 (n) e 2 (n) so distribudos uniformemente entre -2-B e 2-B.

Seja x (n) ser um zero-mdia, seqncia aleatria estacionria. Em


seguida, y (n) tambm um zero-mdia, sequncia estacionria. Da a
partir de (10,69) Equao (10.70a) e Equao (10.70b). Deixe o erro na
sada devido E1 (n) Q1 (n) e que, devido e2 (n)
q2 (n). Deixe-H1 (n) e h2 (n) as respostas de impulso de rudo
correspondentes.
Note-se que h1 (n) = h2 (n) = h (n) = nu (n). Em seguida, o q erro
total (n) Equao (10,71), com a Equao (10,72), onde Equao (10,73).
Por isso usando (10,72), (10,73) e (10,70), Equao (10,74) Usando 2 1 =
2, 2 = 2-2B / 3, obtm-se Equao (10,75). Portanto Equao (10.76) ou
(10.77) que tambm um resultado muito informativo. Alguns comentrios
esto em ordem.
1. A SNR em (10.76) foi derivada sem assumir quaisquer estatsticas
de entrada, da o resultado vlido para uma grande classe de entradas,
incluindo rudo branco, de banda estreita, ou sinais de banda larga. A
aritmtica de ponto flutuante no tem que se preocupar com os valores de
escala ou limitar de entrada uma vez que pode lidar com um grande alcance
dinmico.
2. Usando 0 < = 1- | | 1, o SNR em (10,77) podem ser colocados
sob a forma SNRdB 4,77 + 6.02b + 10log10 () = O () (10,78). Isso
para ser comparado com o resultado de ponto fixo (10.50), onde SNR O
(2). Assim, o resultado de ponto flutuante menos sensvel distncia de
plo para o crculo unitrio.
3. Em aritmtica de ponto flutuante, a varincia do rudo de sada, q
2, em (10,75) proporcional 2 y. Assim, se o sinal de entrada
escalado para cima, assim a varincia barulho desde 2 y tambm est
escalado para cima. Por conseguinte, a SNR permanece constante. Este
novo deve ser comparada com o caso do ponto fixo (10,41), em que q 2
independente do sinal de entrada. Assim, se o nvel de sinal aumenta, ento
2 y, aumenta, o que aumenta o SNR. Filtro de 2 ordem anlise
semelhante pode ser feito para o filtro de 2 ordem com plos perto do
crculo unitrio. Se os plos so dadas por re j, ento podemos mostrar
que (ver [18]) Equao (10.79), onde = 1-r. Este novo um resultado
aproximado que funciona muito bem na prtica. Neste caso, novamente, a
SNR depende em vez de 2 como no caso de ponto fixo.

10.3 EFEITOS de arredondamento em filtros FIR DIGITAL


Vamos agora voltar nossa ateno para os efeitos palavra de
comprimento finito em filtros digitais FIR. Como antes, vamos considerar os
casos de ponto fixo e ponto flutuante separadamente. Ns, ento, concluir
esta seo com alguns exemplos representativos.
10.3.1 FIXO-aritmtica de ponto
Vamos considerar os efeitos sobre duas realizaes:-forma direta e
cascadeform. No h forma de realizao paralela de filtros FIR, uma vez
que no tem uma expanso em fraes parciais, exceto para a realizao de
amostragem de freqncia, que podem ser analisados usando tcnicas de
filtro IIR. A anlise dos filtros FIR muito mais simples do que para IIR
porque no h caminhos de feedback. Uma consequncia disto a ausncia
de ciclos limites.
Forma direta: realizao Considere um filtro FIR de comprimento M
(ou seja, no so amostras M na resposta de impulso), que realizado
utilizando a forma directa, como mostrado na Figura 10.26a. Os coeficientes
do filtro so as amostras da resposta ao impulso h (n). Temos de introduzir
quantizadores nos ramos verticais. Se usarmos a implementao, na qual
cada sada do multiplicador quantificado, ento obtemos o modelo
mostrado na Figura 10.26b. Por outro lado, se aplicar o filtro em um chip
DSP tpico, ento a soma final quantificado tal como mostrado na Figura
10.26c.

Vamos

considerar

separadamente

os

efeitos

do

rudo

de

arredondamento e dimensionamento (para evitar overflow).


Arredondar rudo Deixe a sada do filtro na Figura 10.26b devido a
erros de arredondamento ser y (n) = y (n) + Q (n). Ento Equao (10.80),
onde ek (n) so as fontes de rudo adoptadas em cada ramo vertical para
explicar as operaes de arredondamento. Uma vez que estas fontes de
rudo so todos idnticos e independentes, a potncia de rudo no q (n)
dada pela Equao (10,81). Na Figura 10.26c a sada, devido operao de
arredondamento y (n) = y (n) + e (n). Por conseguinte, a potncia de rudo
no presente caso dada pela Equao (10,82) que menor por um factor
de H em relao ao (10,81) como esperado.
Dimensionamento para evitar transbordamento Ns assumimos que
os nmeros de ponto fixo tem a representao formulrio de complemento
de dois, que uma suposio razovel. Ento, vamos ter que verificar

apenas o estouro da soma total. Assim, esta anlise o mesmo para ambas
as implementaes da Figura 10,26 e semelhante ao usado para o filtro IIR
de (10,42) - (10,44). O limite superior de y (n) obtido como Equao
(10,83), em que Xmax o limite superior de x (n). Para garantir que | y (n) |
1, temos o fator de escala em Xmax x (n) como Equao (10.84), que o
fator de escala mais conservador. H outros fatores de escala, dependendo
do exemplo aplicativos-para, os sinais de banda estreita usar Xmax 1,
max | H (e) | e de banda larga sinais aleatrios usar Xmax 1 / 4x | h
(n) | 2. Usando (10,84) e assumindo que x (n) distribudo uniformemente
sobre [-Xmax, Xmax +], a potncia do sinal de entrada dada pelo Equao
(10,85). Alm disso, assumindo que x (n) tambm uma sequncia de
branco, a potncia do sinal de sada dada pela Equao (10,86) .Assim, a
sada SNR Equao (10,87), em que A = H para o modelo na Figura 10.26b
ou A = 1 para o modelo na Figura 10.26c. A SNR correspondente em dB
Equao (10,88).
10.3.2 anlise utilizando MATLAB
Esta simulao em MATLAB pode ser feito em paralelo, pois no h
caminho de feedback para os erros de multiplicao de quantizao. Usando
a funo Qfix funo com o modo 'round', vamos calcular a sada do
multiplicador quantificado. No caso de M quantizadores, assumindo formato
two'scomplement, vamos usar o modo 'twosc' para cada quantificador.
Apenas a soma final ser quantizada e saturada. No caso de um
quantificador, precisamos do modo 'satur'. Estes passos de simulao
encontram-se detalhados no exemplo a seguir.
EXEMPLO 10.13 Deixe uma quarta-ordem (M = 5) filtro FIR
ser dada pela Equao (10.89), que implementado como uma
forma directa com B = 12 quantizadores bits fracionrios. Calcule
SNRs para os modelos na Figura 10.26b e c e verific-los por meio
de simulaes de MATLAB.
Soluo: Vamos precisar as quantidades | h (n) | 2 e (| h (n) |) 2.
Estas quantidades devero ser calculados utilizando 12 bits de quantizao
dos coeficientes do filtro. Estes valores quantificados utilizando os nmeros
so | h (n) | 2 = 0,2599 e (| h (n) |) 2 = 1. Usando (10,88), a sada de SNR

65,42 dB para 5 multiplicadores e 72,41 dB para um multiplicador . O


script MATLAB seguinte avalia estas e outras quantidades.
Codigo:
% Example Parameters
B = 12; % # of fractional bits
N = 100000; % # of samples
xn = (2*rand(1,N)-1); % Input sequence - Uniform Distribution
h = [0.1,0.2,0.4,0.2,0.1]; % Filter parameters
M = length(h);
% Local variables
bM = 7; DbM = 2^bM; % bin parameter
BB = 2^B; % useful factor in quantization
K = round(DbM/2); % Half number of bins
bins = [-K+0.5:1:K-0.5]; % Bin values from -K to K
Q = bins/DbM; % Normalized bins
YTN = 2^(-bM); % Ytick marks interval
YLM = 4*YTN; % Yaxis limit
% Quantize the input and the filter coefficients
h = QFix(h,B,round,satur); % h quantized to B bits
Xm = 1/sum(abs(h)); % Scaling factor
xn = QFix(Xm*xn,B,round,satur);% Scaled Input quant to B bits
% Filter output without multiplication quantization
yn = filter(h,1,xn); % output using filter routine
% Filter output with multi quant (5 multipliers)
x1 = [zeros(1,1),xn(1:N-1)]; x2 = [zeros(1,2),xn(1:N-2)];
x3 = [zeros(1,3),xn(1:N-3)]; x4 = [zeros(1,4),xn(1:N-4)];
h0x0 = QFix(h(1)*xn,B,round,twosc);
h1x1 = QFix(h(2)*x1,B,round,twosc);
h2x2 = QFix(h(3)*x2,B,round,twosc);
h3x3 = QFix(h(4)*x3,B,round,twosc);
h4x4 = QFix(h(5)*x4,B,round,twosc);
yq = h0x0+h1x1+h2x2+h3x3+h4x4;
yq = QFix(yq,B,round,satur);
% Output Error Analysis
qn = yn-yq; % Outout error sequence
varyn = var(yn); varqn = var(qn); % Signal and noise power
qqmax = max(qn); qqmin = min(qn); % Maximun and minimum of
the error
qnmax = max(abs([qqmax,qqmin])); % Absolute maximum range of
the error
qnavg = mean(qn); qnstd = std(qn); % Mean and std dev of the
error
qn = round(qn*(2^bM)/(2*qnmax)+0.5); % Normalized en (interger
between -K & K)
qn = sort([qn,-K:1:(K+1)]); %
H = diff(find(diff(qn)))-1; % Error histogram
H = H/N; % Normalized histogram
Hmax = max(H); Hmin = min(H); % Max and Min of the normalized
histogram
% Output SNRs
SNR_C = 10*log10(varyn/varqn); % Computed SNR

SNR_T = 6.02 + 6.02*B + 10*log10(sum(h.*h)/Xm^2) - 10*log10(M);


% Theoretical SNR
% Filter output with multi quant (1 multiplier)
yq = QFix(yn,B,round,satur);
% Output Error Analysis
qn = yn-yq; % Outout error sequence
varyn = var(yn); varqn = var(qn); % Signal and noise power
qqmax = max(qn); qqmin = min(qn); % Maximun and minimum of
the error
qnmax = max(abs([qqmax,qqmin])); % Absolute maximum range of
the error
qnavg = mean(qn); qnstd = std(qn); % Mean and std dev of the
error
qn = round(qn*(2^bM)/(2*qnmax)+0.5); % Normalized en (interger
between -K & K)
qn = sort([qn,-K:1:(K+1)]); %
H = diff(find(diff(qn)))-1; % Error histogram
H = H/N; % Normalized histogram
Hmax = max(H); Hmin = min(H); % Max and Min of the normalized
histogram
% Output SNRs
SNR_C = 10*log10(varyn/varqn); % Computed SNR
SNR_T = 6.02 + 6.02*B + 10*log10(sum(h.*h)/Xm^2); % Theoretical
SNR
Os SNRs computadorizada e tericos, bem como histogramas de erro
de sada para os dois modelos so apresentados na Figura 10.27. A trama
de cima mostra o histograma quando cinco multiplicadores so utilizados. O
erro de sada tem distribuio de Gauss-like com SNR igual a 65,42 dB, o
que concorda com o valor terico. A trama de fundo mostrar o histograma
quando um multiplicador usado. Como esperado, o erro uniformemente
distribudo com o SNR igual a 72,43 dB, o que tambm est de acordo com
a terica. Cascade forma de realizao Deixe o filtro ser realizado por uma
cascata de K, dadas pela Equao seces (10,90) segundo-fim (M = 3),
como mostrado na Figura 10.28. O comprimento total do filtro H = 2K + 1.
A Figura tambm mostra a 10,28 modelo finito palavra de comprimento
para a forma de cascata, em que as fontes de rudo de quantizao, ei (n) 1
i K, na sada de cada seco so incorporados . Seja y (n) ser a sada
devido entrada x (n), e deixar que q (n) ser a sada devido a todas as
fontes de rudo. Ns fazemos as seguintes suposies razoveis:
1.

As seces so implementadas utilizando a arquitectura

MAC (multiplicar-acumular), de modo que h apenas uma fonte de


rudo independentes em cada seco que contribui para ei (n). A
outra possibilidade de trs multiplicadores em cada seo simples.

2.

As fontes de rudo so independentes um do outro, isto

, ei (n) EJ (n) para i=J


3.
Cada fonte de rudo uma fonte de rudo branco com 2
ei = 2-2B / 12. Vamos agora examinar as questes do rudo e escala
de arredondamento (para evitar overflow) para a realizao cascataforma.
Round-off rudo: Deixe a resposta ao impulso de rudo na sada dos ei
(n) n ser denotado por gi (n). Em seguida, o comprimento de gi (n) igual
a (M - 2i). Deixe qi (n) ser o rudo de sada devido a ei (n). Em seguida, seu
poder dado pela Equao (10.91). Desde q (n) = Ki = 1 qi (n) obtemos a
potncia de rudo total, como Equao (10.92). A expresso de K i = 1 M-2i
n = 1 | gi (n) | 2 mostra que o erro de energia depende da ordem das
conexes em cascata. Demonstrou-se que para a maioria dos ordenamentos
a potncia de rudo aproximadamente a mesma. Dimensionamento para
evitar estouro Da Figura 10.28 notamos que se deve evitar transbordamento
em cada n. Deixe hk (n) da resposta ao impulso, em cada n k; ento
precisamos de uma constante escalar Xmax como Xmax = 1 maxk | hk (n) |
para que | y (n) | 1. Claramente, este um valor muito conservador. Uma
abordagem melhor escalar as respostas de impulso de cada seo {oi (n)}
para que | oi | = 1 para cada i. Por conseguinte, a sada de cada seco
confinada entre -1 e +1 se a entrada x (n) distribuda ao longo do mesmo
intervalo. Assumindo que x (n) distribudo uniformemente sobre [-1, 1] e
branco, a potncia do sinal de sada Equao (10,93), em que h (n) a
resposta ao impulso do filtro geral. Deixe-gi ser as correspondentes
respostas de impulso escalado em (10,92). Agora, a SNR de sada pode ser
calculada como (10,94) ou (10.95).
10.3.3 anlise utilizando MATLAB
Usando a funo casfiltr, podemos calcular a sada da estrutura
infiniteprecision cascata. Utilizando a abordagem de escalonamento descrito
acima, cada seco de segunda ordem pode ser dimensionado e usado na
simulao de sadas quantificados. Mais uma vez, todos os clculos podem
ser feitos em forma vector, o que melhora a velocidade de execuo. Estes
e outros passos de simulao encontram-se detalhados no exemplo a seguir.
EXEMPLO 10.14 Considere o filtro FIR quarta-ordem dada no
Exemplo 10.13. A sua cascata-forma de realizao tem duas

seces ao longo com um ganho constante B0, que pode ser obtido
utilizando a funo dir2cas: (10.96). Note-se que alguns destes
coeficientes so maiores do que 1, o que vai causar problemas com
o coeficiente de quantizao quando os bits fraccionais nica B so
utilizados. Assim, preciso dimensionar cada seo conforme
explicado. Os valores so escalados (10,97) e b0 = 1. Assim no
precisamos para dimensionar a entrada. Agora G1 (n) = h2 (n) e G2
(n) = 1 em (10,94). Assim, a partir de (10,95), a sada SNR 70,96
dB, o que compara bem com a aplicao de um multiplicador de
forma

directa

(72,41

dB).

Estes

clculos

erro

histograma

plotagem so ilustradas no script MATLAB seguinte.


Cdigo:
% Example Parameters
B = 12; % # of fractional bits
N = 100000; % # of samples
xn = (2*rand(1,N)-1); % Input sequence - Uniform Distribution
h = [0.1,0.2,0.4,0.2,0.1]; % Filter parameters
M = length(h); % Filter length
[b0,Bh,Ah] = dir2cas(h,1); % Cascade sections
h1 = Bh(1,:); % Section-1
h2 = Bh(2,:); % Section-2
h1 = h1/sum(h1); % Scaled so Gain=1
h2 = h2/sum(h2); % Scaled so Gain=1
% Local variables
bM = 7; DbM = 2^bM; % bin parameter
BB = 2^B; % useful factor in quantization
K = round(DbM/2); % Half number of bins
bins = [-K+0.5:1:K-0.5]; % Bin values from -K to K
Q = bins/DbM; % Normalized bins
YTN = 2^(-bM); % Ytick marks interval
YLM = 20*YTN; % Yaxis limit
% Quantize the input and the filter coefficients
h1 = QFix(h1,B,round,satur); % h1 quantized to B bits
h2 = QFix(h2,B,round,satur); % h1 quantized to B bits
xn = QFix(xn,B,round,satur); % Input quantized to B bits
% Filter output without multiplication quantization
yn = casfiltr(b0,Bh,Ah,xn); % output using Casfiltr routine
% Filter output with multi quant (1 multiplier/section)
xq = QFix(xn,B,round,satur); % Section-1 scaled input
wn = filter(h1,1,xq); % Sec-1 unquantized output
wq = QFix(wn,B,round,satur); % Sec-1 quantized output
wq = QFix(wq,B,round,satur); % Section-2 scaled input
yq = filter(h2,1,wq); % Sec-2 unquantized output
yq = QFix(yq,B,round,satur); % Sec-2 quantized output
% Output Error Analysis
qn = yn-yq; % Outout error sequence
varyn = var(yn); varqn = var(qn); % Signal and noise power

qqmax = max(qn); qqmin = min(qn); % Maximun and minimum of


the error
qnmax = max(abs([qqmax,qqmin])); % Absolute maximum range of
the error
qnavg = mean(qn); qnstd = std(qn); % Mean and std dev of the
error
qn = round(qn*(2^bM)/(2*qnmax)+0.5); % Normalized en (interger
between -K & K)
qn = sort([qn,-K:1:(K+1)]); %
H = diff(find(diff(qn)))-1; % Error histogram
H = H/N; % Normalized histogram
Hmax = max(H); Hmin = min(H); % Max and Min of the normalized
histogram
% Output SNRs
SNR_C = 10*log10(varyn/varqn); % Computed SNR
SNR_T = 6.02*(B+1) + 10*log10(sum(h.*h)) ...
- 10*log10(1+sum(h2.*h2)); % Theoretical SNR
O enredo mostrado na Figura 10.29. A distribuio de erro parece
ter um envelope gaussiana, mas o erro no distribudo continuamente.
Este comportamento indica que o erro de sada leva apenas um conjunto
fixo de valores, o qual devido a um conjunto particular de valores de
coeficientes. O computadorizada SNR 70,85 dB, o que concorda com o
valor terico acima. Assim, os nossos pressupostos so razoveis.
10.3.4 flutuante aritmtica de ponto
Anlise para a aritmtica de ponto flutuante mais complicado e
tedioso. Por isso, vamos considerar apenas a realizao de formato direto
com pressupostos simplificados. Figura 10.30 mostra uma realizao forma
direta com um modelo de aritmtica de ponto flutuante. Nesta realizao,
{i (n)}, 1 i M - 1 so os erros relativos no somadores e {i (n)}, 0 i
M-1 so os erros relativos em multiplicadores, com | i | 2-2B e | i | 22B.
Sejam A (n, k) o ganho do multiplicador de ordem k para o n de
sada, que dada por (10,98). Seja y (n)? = Y (n) + Q (n), onde a sada geral
y (n) a sada devido entrada x (n) e Q (n) a sada devido a fontes de
rudo. Em seguida, (10,99).
Subtraindo y (n) = M-1 k = 0 h (k) x (n - k) a partir de (10.99),
obtemos (10.100). Agora, a partir de (10,98), o valor mdio de A (n, k) EA
(n, k) = 1 e a potncia mdia de uma (n, k) E [A2 (n, k)] para pequeno 22B (10.101). Assumindo que o sinal de entrada x (n) tambm uma
sequncia de branco com varincia 2x, em seguida, a partir de (10.101) a

potncia de rudo dada por (10,102). Desde (1- kM + 1) 1 e utilizando


2, y = 2x | h (k) | 2 o poder 2q rudo
superior delimitada por (10,103) ou o SNR inferior delimitada pela
SNR 3 M + 1 22B (10,104). A equao (10,104) mostra que melhor para
calcular os produtos, a fim de aumentar a magnitude.
EXEMPLO 10.15 considerar Novamente o filtro FIR quarta
ordem dada no Exemplo 10.13 em que M = 5, B = 12, e h (n) = {0,1,
0,2, 0,4, 0,2, 0,1}. A partir de (10,104), o SNR inferior delimitada
por SNRdB 10 log103 M + 1 = 224 69,24 dB e o valor aproximado
de (10,102) de 71 dB, o que comparvel ao valor de ponto fixo
de 72 dB. Note-se que os resultados dos pontos de fixao que se
degradam com menos do que no dimensionamento ptimo (por
exemplo, se a amplitude do sinal foram de 10 dB abaixo), enquanto
que o ponto flutuante SNR permaneceria a mesma. Para contrariar
esta situao, pode-se colocar um fator de escala varivel A no
sistema de ponto fixo, que , ento, chegando perto do sistema de
ponto flutuante completo. Na verdade, de ponto flutuante no
nada alm de ponto fixo com varivel de escala, ou seja, um
escalonamento por uma potncia de dois (ou mudana) a cada
multiplicao e adio.

Capitulo 11 - aplicao em filtragem adaptativa


Em captulos 7 e 8 que descreveu mtodos para a concepo FIR e IIR
filtros digitais para satisfazer algumas especificaes desejadas. Nosso
objetivo foi determinar os coeficientes do filtro digital que atendeu s

especificaes desejadas. Em contraste com as tcnicas de concepo de


filtros considerados nestes dois captulos, existem muitas aplicaes de
processamento de sinal digital em que os coeficientes do filtro no pode ser
especificada a priori. Por exemplo, vamos considerar um modem de alta
velocidade que projetado para transmitir dados atravs de canais
telefnicos.

Esse tipo de

modem emprega um filtro chamado um

equalizador de canal para compensar a distoro de canal. O modem deve


efetivamente transmitir dados por meio de canais de comunicao que tm
diferentes caractersticas de resposta de freqncia e, portanto, resultam
em diferentes efeitos de distoro. A nica maneira pela qual isto possvel
se se o equalizador de canal tem coeficientes ajustveis que podem ser
optimizados para minimizar a alguma medida de distoro, sobre a base de
medidas realizadas sobre as caractersticas do canal. Um tal filtro com
parmetros ajustveis chamado um filtro adaptativo, neste caso, um
igualador de adaptao.
Numerosas aplicaes de filtros adaptativos tm sido descritos na
literatura. Algumas das aplicaes mais notveis incluem (1) sistemas de
antena adaptativa, em que filtros adaptativos so utilizados para a
conduo do feixe e para fornecer valores nulos no padro de feixe para
remover a interferncia indesejada [29]; (2) receptores de comunicao
digital, no qual os filtros adaptativos so usados para fornecer equalizao
de interferncia intersmbolos e para identificao do canal [21]; (3) o rudo
adaptativo tcnicas, no qual um filtro adaptativo utilizado para estimar e
eliminar um componente de rudo em algumas sinal desejado cancelando
[27, 9, 15]; e (4) a modelagem do sistema, no qual um filtro adaptativo
usado como um modelo para estimar as caractersticas de um sistema
desconhecido. Estes so apenas alguns dos exemplos mais conhecidos
sobre o uso de filtros adaptativos.
Embora ambos os filtros IIR FIR e foram considerados para a filtragem
adaptativa, o filtro FIR de longe o mais prtico e amplamente utilizado. A
razo para essa preferncia bastante simples. O filtro FIR tem zeros nica
ajustveis, e, portanto, est livre de problemas de estabilidade associados
com filtros adaptativos IIR que tm plos ajustveis, bem como zeros. No
devemos concluir, no entanto, que os filtros FIR adaptativos so sempre
estvel. Pelo contrrio, a estabilidade do filtro depende criticamente do
algoritmo para ajustar os seus coeficientes. Entre as vrias estruturas de

filtro FIR que se podem utilizar, sob a forma directa e a forma da estrutura
so os frequentemente utilizados em aplicaes de filtragem adaptativa. A
estrutura do filtro FIR forma direta com ajustveis coeficientes h (0), h
(1),. . . , H (n - 1) ilustrada na Figura 11.1. Por outro lado, os parmetros
ajustveis em uma estrutura de trelia FIR so os coeficientes de reflexo
Kn mostrados na Figura 6.18.
Uma considerao importante na utilizao de um filtro adaptvel o
critrio para optimizar os parmetros de filtro ajustvel. O critrio deve no
s proporcionar uma medida significativa do desempenho do filtro, mas
tambm deve resultar num algoritmo praticamente realizveis. Um critrio
que fornece uma boa medida do desempenho em aplicaes de filtragem
adaptativa o critrio de mnimos quadrados, e sua contraparte numa
formulao estatstica do problema, ou seja, a mdia quadrados de erro
(MSE) critrio. Os mnimos quadrados (MSE) e resultados critrio um ndice
de desempenho de uma funo quadrtica como dos coeficientes do filtro,
e, portanto, possui um mnimo nico. Os algoritmos resultantes para ajustar
os coeficientes do filtro so relativamente fceis de aplicar.
Neste captulo ns descrevemos um algoritmo bsico, o chamado
algoritmo menos meansquare (LMS), para ajustar de forma adaptativa os
coeficientes de um filtro FIR. A estrutura do filtro adaptvel que ser
implementada a estrutura do filtro FIR forma direta com ajustveis
coeficientes h (0), H (1),. . . , H (n - 1), como ilustrado na Figura 11.1. Depois
descrevemos o algoritmo LMS, ns aplic-la a vrios sistemas prticos em
que filtros adaptativos so empregados.
11.1 REGULAO DO COEFICIENTE DE LMS algoritmo para
Suponha que temos um filtro FIR com coeficientes ajustveis {h (k), 0
k n - 1}. Seja {x (n)} denotar a sequncia de entrada para o filtro, e
deixa a sada correspondente ser {y (n)}, onde y (n) = N-1 k = 0, h (k) x (n?
- k), n = 0,. . . , M (11.1). Suponha que ns tambm temos uma sequncia
desejada {d (n)} com a qual podemos comparar a sada do filtro FIR. Em
seguida, pode formar a sequncia de erro {e (n)}, tendo a diferena entre d
(n) e y (n), que , e (n) = d (n) - y (n), n = 0, . . . , M (11,2) Os coeficientes
do filtro FIR sero seleccionados para minimizar a soma dos quadrados dos
erros. Assim, temos (11.3), onde, por definio, (11.4) e (11.5).

Chamamos {RDX (k)} a correlao cruzada entre a sequncia


desejada de sada {d (n)} e a sequncia de entrada {x (n)} e {Rxx (k)} a
sequncia de autocorrelao {x (n)} .
A soma dos quadrados dos erros E uma funo quadrtica dos
coeficientes do filtro FIR. Consequentemente, a minimizao de E em
relao aos coeficientes do filtro de {H (k)} os resultados de um conjunto de
equaes lineares. E por diferenciao com respeito a cada um dos
coeficientes de filtro, obtm-se (11.6) e, por conseguinte, (11.7). Este o
conjunto de equaes lineares que produzem os coeficientes do filtro
ptimas. Para resolver o conjunto de equaes lineares diretamente,
devemos primeiro calcular a sequncia de autocorrelao {Rxx (k)} do sinal
de entrada ea seqncia crosscorrelation {rdx (k)} entre a sequncia
desejada {d (n)} ea seqncia de entrada {X (n)}. O algoritmo de LMS
fornece

um

mtodo

computacional

alternativo

para

determinar

os

coeficientes de filtro ideal {h (k)}, sem computao explicitamente as


sequncias de correlao {Rxx (k)} e {RDX (k)}. O algoritmo basicamente
um mtodo de gradiente recursiva (mais ngreme-descendentes), que
encontra o mnimo de E e, portanto, produz o conjunto de coeficientes de
filtro ideais.
Comeamos com qualquer escolha arbitrria para os valores iniciais
de {h (k)}, dizem {h0 (k)}. Por exemplo, pode-se comear com h0 (k) = 0, 0
k N-1. Em seguida, aps cada nova amostra de entrada {x (n)} entra
no filtro FIR adaptativa, calculamos a sada correspondente, digamos {y
(n)}, formar o sinal de erro e (n) = d (n) - y (n) e actualizar os coeficientes
de filtro de acordo com a equao hn (k) = HN-1 (k) +? E (n) x (n - k), 0
k N - 1, n = 0, 1, ... (11.8), onde? chamado o parmetro de tamanho do
passo, x (n - k) representa a amostra do sinal de entrada localizada na
torneira de ordem k do filtro no tempo n, e e (n) x (n - k) uma aproximao
(estimativa) de o negativo do gradiente para o k-simo coeficiente de filtro.
Este o algoritmo de LMS recursiva para ajustar os coeficientes do filtro
adaptativo, de modo a minimizar a soma dos quadrados dos erros E.
O

parmetro

tamanho

do

passo?

controla

velocidade

de

convergncia do algoritmo para a soluo ptima. Um grande valor de? leva


a grandes ajustes de tamanho de passo e, assim, a uma convergncia
rpida,

enquanto

que

um

valor

pequeno

de?

resulta

em

menor

convergncia. No entanto, se? feito muito grande o algoritmo torna-se

instvel. Para garantir a estabilidade,? devem ser escolhidos [22] para estar
na gama de (11.9), em que N o comprimento do filtro FIR adaptativa e Px
a potncia do sinal de entrada, que pode ser aproximada por (11,10). A
justificao matemtica das equaes (11.9) e (11,10) e a prova de que o
algoritmo de LMS leva soluo para os coeficientes de filtro ideal dada
em tratamentos mais avanados de filtros adaptativos. O leitor interessado
pode se referir aos livros por Haykin [8] e Proakis e Manolakis [23].
11.1.1 MATLAB EXECUO
O algoritmo de LMS (11.8) pode ser facilmente implementado em
MATLAB. Dada a sequncia de entrada {x (n)}, a sequncia desejada {d
(n)}, tamanho do passo?, E o comprimento desejado do filtro FIR adaptativa
N, podemos usar (11.1), (11.2) e (11.8 ) para determinar os coeficientes do
filtro adaptativo {h (n), 0 n N - 1} recursivamente. Isto mostrado da
seguinte funo, chamada LMS.
Cdigo:
function [h,y] = lms(x,d,delta,N)
% LMS Algorithm for Coefficient Adjustment
% ---------------------------------------% [h,y] = lms(x,d,delta,N)
% h = estimated FIR filter
% y = output array y(n)
% x = input array x(n)
% d = desired array d(n), length must be same as x
% delta = step size
% N = length of the FIR filter
%
M = length(x); y = zeros(1,M);
h = zeros(1,N);
for n = N:M
x1 = x(n:-1:n-N+1);
y = h * x1;
e = d(n) - y;
h = h + delta*e*x1;
end
Alm disso, a funo de LMS fornece a sada {y (n)} do filtro
adaptativo. Vamos aplicar o algoritmo LMS para diversas aplicaes prticas
que envolvem filtragem adaptativa.
11.2 Identificaao do sitema ou sistema de modelagem
Para formular o problema, vamos consulte a Figura 11.2. Temos um
sistema

linear

desconhecido

que

queremos

identificar.

sistema

desconhecido pode ser um zero, todo o sistema (FIR) ou um sistema de


plos e zeros (IIR). O sistema desconhecido ser aproximada (modelada) por
um filtro FIR de comprimento N. Tanto o sistema desconhecido e o modelo
de FIR so ligados em paralelo e so excitadas pela mesma sequncia de
entrada {x (n)}. Se {y (n)} representa o resultado do modelo e {d (n)}
representa a sada do sistema desconhecido, a sequncia de erro {e (n) =
d (n) - y (n)}. Se minimizar a soma dos quadrados dos erros, obtm-se o
mesmo conjunto de equaes lineares, como em (11.7). Portanto, o
algoritmo de LMS dada por (11.8) pode ser utilizado para adaptar os
coeficientes do modelo FIR de modo que a sua sada se aproxima da sada
do sistema desconhecido.
11.2.1 PROJETO 11.1: IDENTIFICAO DO SISTEMA
H trs mdulos bsicos que so necessrios para realizar esse
projeto.
1. Um gerador de sinal de rudo que gera uma seqncia de nmeros
aleatrios com zero de valor mdio. Por exemplo, pode-se gerar uma
sequncia de nmeros aleatrios distribudos uniformemente ao longo do
intervalo [-a, a]. Tal sequncia de nmeros distribudos uniformemente tem
um valor mdio de zero e um desvio de a2 / 3. Esta sequncia de sinal,
chame-o {X

(n)},

ir ser

utilizada

como entrada

para

o sistema

desconhecido e o modelo adaptativa FIR. Neste caso, o sinal de entrada {x


(n)} tem poder Px = A2 / 3. Em MATLAB isso pode ser implementado usando
a funo rand.
2. Um mdulo de sistema desconhecido que podem ser selecionadas
um filtro IIR e implementado por sua equao diferena. Por exemplo,
podemos selecionar um filtro IIR especificado pela equao de segunda
ordem diferena d (n) = A1D (n - 1) + A2D (n - 2) + x (n) + B1X (n - 1) +
B2X ( n - 2) (11,11) onde os parmetros {A1, A2} determinar as posies
dos plos e {b1, b2} determinar as posies dos zeros do filtro. Estes
parmetros so variveis de entrada para o programa. Isto pode ser
implementado pela funo de filtro.
3. Um mdulo de filtro FIR adaptvel, em que o filtro FIR tem N
coeficientes de toque que so ajustadas por meio do algoritmo LMS. O
comprimento N do filtro uma varivel de entrada para o programa. Isto
pode ser implementado usando a funo LMS indicado na seco anterior.

Os trs mdulos esto configurados, como mostrado na Figura 11.2. A


partir deste projeto, podemos determinar quo perto a resposta ao impulso
do modelo FIR se aproxima da resposta ao impulso do sistema desconhecido
aps o algoritmo LMS tem convergido. Para controlar a velocidade de
convergncia do algoritmo LMS, podemos calcular uma mdia de curto
prazo do E2 do erro quadrado (n) e traar-lo. Ou seja, pode-se calcular
(11,12), em que m = n / K = 1, 2,. . . . O intervalo mdio K pode ser
seleccionado para ser (aproximadamente) K = 10N. O efeito da escolha do
parmetro de tamanho do passo? sobre a taxa de convergncia do
algoritmo LMS pode ser observada por monitorizao da ASE (m).
Alm da parte principal do programa, dever tambm incluir, como
um aparte, o clculo da resposta ao impulso do sistema desconhecido, que
pode ser obtido atravs da excitao do sistema com uma sequncia de
amostras de unidade (N). Este impulso de resposta real pode ser
comparada com a do modelo FIR aps a convergncia do algoritmo LMS. As
duas respostas de impulso pode ser representada para fins de comparao.
11,3 SUPRESSO DO NARROWBAND interferncia em uma sinal de
banda larga
Vamos supor que temos uma sequncia de sinal {x (n)}, que consiste
em uma sequncia de sinal de banda larga desejado, dizem {w (n)},
corrompido por uma sequncia de aditivo banda estreita interferncia {s
(n)}. As duas sequncias no esto correlacionadas. Este problema surge
em comunicaes digitais e em deteco de sinal, em que a sequncia de
sinal desejado {w (n)} representa um sinal de espectro de disperso,
enquanto que a interferncia de banda estreita representa um sinal de outro
utilizador da faixa de frequncias ou alguma interferncia intencional de um
bloqueador que est tentando interromper o sistema de comunicao ou de
deteco. De um ponto de vista de filtragem, o nosso objectivo criar um
filtro que suprime a interferncia de banda estreita. Com efeito, um tal filtro
deveria colocar um entalhe na banda de frequncias ocupada pela
interferncia. Na prtica, no entanto, a banda de frequncia da interferncia
pode ser desconhecido. Alm disso, a banda de a interferncia de
frequncia pode variar lentamente no tempo.
As caractersticas de banda estreita da interferncia permitem
estimar s (n) a partir de amostras passadas da sequncia x (n) = s (n) + w

(n) e para subtrair a estimativa de x (n). Uma vez que a largura de banda de
{S (n)} estreito em comparao com a largura de banda de {w (n)}, as
amostras de {S (n)} so altamente correlacionadas. Por outro lado, a
sequncia de banda larga {w (n)} tem uma correlao relativamente
estreita.
A configurao geral do sistema de supresso de interferncia
mostrada na Figura 11.3. O sinal x (n) retardado por amostras D, onde D
o atraso escolhido suficientemente grande de modo a que os componentes
de sinal de banda larga w (n) e w (N - D), que esto contidas em x (n) e x (n
- D), respectivamente, no esto correlacionadas. A sada do filtro FIR
adaptvel a estimativa (11,13).
O sinal de erro que usado em optimizar os coeficientes do filtro FIR
e (n) = x (N) - s (n). A minimizao da soma dos quadrados dos erros de
novo leva a um conjunto de equaes lineares para determinar os
coeficientes de ptimos. Devido ao atraso de D, o algoritmo de LMS de
ajustamento dos coeficientes de forma recursiva torna-se (11,14).
11.3.1 PROJETO 11.2: supresso das interferncias SINUSOIDAL
Trs mdulos bsicos so necessrios para realizar este projeto.
1. Um mdulo gerador de sinal de rudo que gera uma sequncia de
banda larga {w (n)} de nmeros aleatrios com zero de valor mdio. Em
particular,

podemos

uniformemente

gerar

distribudos

uma

sequncia

usando

de

funo

nmeros
rand

como

aleatrios
descrito

anteriormente no projeto de identificao do sistema. A potncia do sinal


denotado como Pw.
2. Um mdulo de sinal sinusoidal gerador que gera uma sequncia s
de onda de seno (n) = Asin 0n, onde 0 <0 < e A a amplitude do sinal.
O poder da sequncia sinusoidal denotado como Ps.
3. Um mdulo de filtro FIR adaptativo usando a funo de filmes,
onde o filtro FIR tem N coeficientes de toque que so ajustadas pelo
algoritmo LMS. O comprimento N do filtro uma varivel de entrada para o
programa.
Os trs mdulos esto configurados, como mostrado na Figura 11.4.
Neste projeto o atraso D = 1 suficiente, uma vez que a sequncia {w (n)}
um rudo branco (espectro plana ou no correlacionados) seqncia. O
objectivo o de adaptar os coeficientes do filtro FIR e, em seguida, para

investigar as caractersticas do filtro adaptativo. interessante para


seleccionar o sinal de interferncia a ser muito mais forte do que o sinal
desejado w (n), por exemplo, Sl = 10Pw. Note que o Px potncia necessria
na escolha do parmetro de tamanho do passo no algoritmo LMS Px = Ps
+ Pw. A resposta de frequncia caracterstica H (ej) do filtro FIR adaptativa
com coeficientes {h (k)} deve apresentar um pico de ressonncia na
frequncia

da

interferncia.

resposta

do

filtro

de

supresso

de

interferncia de freqncia Hs (ej) = 1-H (ej), que deve, ento,


apresentar um entalhe na freqncia da interferncia.
interessante para traar as sequncias {w (n)}, {S (n)} e {x (n)}.
Tambm interessante para traar a resposta em frequncia H (ej) e Hs
(ej) aps o algoritmo LMS tem convergido. A curta durao mdia do erro
quadrado ASE (m), definido por (11,12), podem ser utilizados para controlar
as caractersticas de convergncia do algoritmo LMS. O efeito do
comprimento do filtro adaptativo na qualidade da estimativa deve ser
investigada. O projeto pode ser generalizada, adicionando uma segunda
sinusoid de uma freqncia diferente. Em seguida, H (ej) deve apresentar
dois picos de ressonncia, desde que as frequncias so suficientemente
separadas. Investigar o efeito do comprimento do filtro N da resoluo de
duas sinusides espaados.
11,4 ADAPTATIVA LINHA REALCE
Na seco anterior, foi descrito um mtodo para suprimir uma forte
interferncia de banda estreita a partir de um sinal de banda larga. Um
intensificador de linha adaptativo (ALE) tem a mesma configurao que a do
filtro de supresso de interferncias na Figura 11.3, excepto que o objectivo
diferente. Na linha adaptativo potenciador, {S (n)} o sinal desejado e {w
(n)} representa um componente de rudo de banda larga que mascara {S
(n)}. O sinal desejado {S (n)} pode ser uma linha espectral (uma sinuside
pura) ou um sinal relativamente estreita. Normalmente, a potncia do sinal
de banda larga maior do que a do sinal de banda estreita, que , PW> Ps.
evidente que o EPA um filtro de auto-ajuste, que tem um pico na sua
resposta de frequncia na frequncia da entrada senoidal ou na banda de
frequncias ocupada pelo sinal de banda estreita. Por ter um filtro FIR de
largura de banda estreita, o rudo fora da banda de frequncia do sinal

suprimida, e assim a linha espectral reforada em amplitude em relao


potncia de rudo na {w (n)}.
11.4.1 PROJETO 11.3: ADAPTIVE LINHA REALCE
Este projeto requer os mesmos mdulos de software como aqueles
usados no projeto de supresso de interferncias. Da a descrio dada na
seo anterior aplica-se diretamente. Uma mudana que na ALE, a
condio que Pw> Ps. Em segundo lugar, o sinal de sada o ALE {S (n)}.
Repita o projeto descrito na seo anterior sob essas condies.
11,5 ADAPTATIVA equalizao de canal
A velocidade de transmisso de dados atravs de canais telefnicos
geralmente limitada pela distoro do canal que faz com que a interferncia
entre smbolos (ISI). Em taxas de dados abaixo 2400 bits do ISI
relativamente pequena e, geralmente, no um problema na operao de
um modem. No entanto, a taxas de dados acima de 2400 bits, um igualador
de adaptao empregue no modem para compensar a distoro de canal
e, portanto, para permitir a transmisso de dados altamente fiveis de alta
velocidade. Em canais telefnicos, os filtros so usados em todo o sistema
de separar os sinais em diferentes bandas de frequncia. Estes filtros causar
distoro de amplitude e fase. O igualador de adaptao basicamente um
filtro FIR adaptativa com coeficientes que so ajustadas por meio do
algoritmo de LMS para corrigir a distoro de canal. Um diagrama de blocos,
mostrando os elementos bsicos de um modem de transmisso de dados
atravs de um canal apresentado na Figura 11.5. Inicialmente, os
coeficientes de equalizao so ajustadas atravs da transmisso de uma
sequncia de treino curta, geralmente inferior a um segundo de durao.
Aps o perodo de formao de curta durao, o transmissor comea a
transmitir a sequncia de dados {a (n)}. Para acompanhar os possveis
variaes tempo lento no canal, os coeficientes do equalizador deve
continuar a ser ajustado de forma adaptativa ao receber dados.
Isto usualmente conseguido, tal como ilustrado na Figura 11.5, por
tratamento das decises na sada do dispositivo de deciso correcta e
usando as decises em lugar da referncia {d (n)} para gerar o sinal de
erro. Esta abordagem funciona muito bem quando os erros de deciso
ocorrem com pouca frequncia, tal como menos do que um erro em 100

smbolos de dados. Os erros ocasionais deciso causar apenas um pequeno


desajuste nos coeficientes do equalizador.
11.5.1 PROJETO 11,4: ADAPTIVE equalizao de canal
O objetivo deste projeto investigar o desempenho de um
equalizador adaptativo para transmisso de dados atravs de um canal que
faz com que a interferncia entre smbolos. A configurao bsica do
sistema a ser simulado mostrado na Figura 11.6. Como observamos, cinco
mdulos bsicos so necessrios. Note que temos evitado modulao e
demodulao transportadora, que necessrio em um modem canal
telefnico. Isto feito para simplificar o programa de simulao. No entanto,
todo o processamento envolve operaes aritmticas complexas. Os cinco
mdulos so os seguintes:
1. O mdulo gerador de dados utilizada para gerar uma sequncia
de smbolos de informao complexvalued {A (n)}. Em particular, empregue
quatro smbolos s igualmente provveis + js, s - js, -S + JS, e -s - js, onde s
um factor de escala que pode ser configurado para s = 1, ou pode ser um
parmetro de entrada.
2. O mdulo de filtro de canal um filtro FIR com coeficientes {c (n),
0 n K - 1} que simula a distoro de canal. Para a transmisso sem
distoro, definir-C (0) = 1 e c (n) = 0 para 1 n K - 1. O comprimento do
filtro K um parmetro de entrada.
3. O mdulo gerador de rudo usado para gerar rudo aditivo que
geralmente presente em qualquer sistema de comunicao digital. Se
estamos modelando o rudo que gerado por dispositivos eletrnicos, a
distribuio do rudo deve ser Gaussian com mdia zero. Use a funo de
Randu.
4. O mdulo equalizador adaptativo um filtro FIR com coeficientes
torneira {h (k), 0 <k <N - 1}, que so ajustadas pelo algoritmo LMS. No
entanto, devido utilizao de aritmtica complexa, a equao recursiva no
algoritmo de LMS ligeiramente modificado para hn (k) = HN-1 (k) + e (n) x
*? (N - k) (11,15), onde o asterisco indica o conjugado complexo.
5. O mdulo de dispositivo de deciso leva a estimativa A (n) e
quantifica-lo para um dos quatro pontos de sinal possveis com base no
seguinte regra de deciso:
Re [a (n)]> 0 e Im [a (n)]> 0 - 1 j +

Re [a (n)]> 0 e Im [a (n)] <0 - 1 - j


Re [a (n)] <0 e Im [a (n)]> 0 - + j -1
Re [a (n)] <0 e Im [a (n)] <0 - -1 - j
A eficcia do equalizador em suprimir o ISI introduzido pelo filtro de
canal pode ser visto atravs da representao grfica as seguintes
sequncias relevantes num ecr bidimensional (real-imaginria). A sada do
gerador de dados {a (n)} deve consistir de quatro pontos com valores 1
j. O efeito de distoro de canal e o rudo aditivo pode ser visto, exibindo a
sequncia {x (n)} na entrada para o equalizador. A eficcia do igualador de
adaptao pode ser avaliado atravs da representao grfica sua sada {a
(n)} aps a convergncia dos seus coeficientes. A mdia de curto tempo
ASE erro quadrado (n) podem tambm ser utilizados para controlar as
caractersticas de convergncia do algoritmo LMS. Note-se que um retardo
deve ser introduzido na sada do gerador de dados para compensar os
atrasos de que os encontros de sinal devido ao filtro de canal e do igualador
de adaptao. Por exemplo, este atraso pode ser ajustado para o maior
nmero inteiro mais prximo de (N + K) / 2. Finalmente, um contador de
erros pode ser usado para contar o nmero de erros de smbolos na
sequncia de dados recebidos, e a proporo do nmero de erros para o
nmero total de smbolos (taxa de erro) pode ser exibida. A taxa de erro
pode ser variada, alterando o nvel do ISI e o nvel do rudo aditivo. Sugerese que as simulaes ser realizado para os seguintes trs condies de
canal:
a. Nenhuma ISI: C (0) = 1, c (n) = 0, 1 n K - 1
b. Suave ISI: C (0) = 1, C (1) = 0,2, C (2) = -0,2, c (n) = 0, 3 n K 1
c. Forte ISI: C (0) = 1, C (1) = 0,5, C (2) = 0,5, c (n) = 0, 3 n K - 1
A taxa de erro de medida pode ser representada graficamente como
uma funo da taxa de rudo signalto- (SNR) na entrada para o equalizador,
onde SNR definido como Ps / Pn, onde Ps a potncia do sinal, dado como
Ps = s2, e Pn a potncia do rudo da sequncia na sada do gerador de
rudo.