2.7. Vidalı Birleştirme Mekaniği
2.7.4. Vida bağlantılarının mukavemet hesapları
A base teórica do sistema de cancelamento de eco acústico e redução de ruído foi apresentada neste capítulo.
Crê-se que as razões para a escolha do algoritmo EFLSL foram ex- plicadas: velocidade de convergência, robustez numérica e baixa com- plexidade computacional (comparado a outros algoritmos da mesma fa- mília).
Acredita-se também que o algoritmo de subtração espectral, depen- dente de adequadas estruturas de análise e síntese espectrais, foi jus- tificado. Com a inclusão da técnica de estimação do ruído por estatísti- cas mínimas e dos critérios psicoacústicos, o subsistema de redução de ruído descrito tem condições para operar em ambientes ruidosos e com características variantes no tempo.
O próximo capítulo enfoca os aspectos práticos do sistema, sua im- plementação em processador digital de sinais para operação em tempo real, as escolhas feitas para alguns parâmetros introduzidos neste ca- pítulo teórico. Referências abundantes às listagens dos programas cri- ados para projetar e executar os algoritmos de cancelamento de eco e redução de ruído acompanham as explicações do capítulo seguinte.
Implementação Prática
As discussões do capítulo anterior foram aplicadas na construção de um protótipo funcional, capaz de demonstrar a utilidade dos fil- tros adaptativos da família RLS e também dos processos de análise, modificação e síntese espectrais.
Este capítulo inicia com uma exposição breve da arquitetura do processador digital de sinais escolhido para o protótipo e segue mostrando a simulação e implementação eficiente do algoritmo LSL nesse processador. Um processo semi-formal desenvolvido es- pecialmente para este projeto, mas com potencial para uso na implementação de algoritmos adaptativos em geral, é detalhado. A implementação do sub-sistema de análise e síntese espec- trais, usando eficientes estruturas polifásicas, vem logo a seguir. Os aspectos práticos do processo de estimação de ruído a partir do sinal capturado pelo microfone são expostos, bem como as rotinas de supressão espectral de ruído, com e sem ponderação psicoa- cústica.
O capítulo termina com algumas observações sobre a integra- ção do filtro adaptativo e do redutor de ruído em um único sistema. Além disso, são feitos alguns comentários sobre a montagem do protótipo funcional.
3.1
Processador SHARC
A implementação dos algoritmos usados no sistema de cancelamento de eco acústico e redução de ruído foi feita em processador digital de sinais da Analog Devices1, modelo SHARC2 ADSP-21061 (doravante
denominado somente “SHARC”). Alguns detalhes de sua arquitetura seguem descritos nesta seção, de forma a facilitar a compreensão prin- cipalmente da implementação eficiente do algoritmo de cancelamento de eco acústico.
SHARC é um processador de ponto flutuante de 32 bits que pode executar qualquer instrução em um único ciclo de máquina. Outras características relevantes para a implementação em questão são (ver Figura 3.1 na página seguinte):
• Memória interna de 1 Mbit, que pode ser organizada em 32K pa- lavras de 32 bits cada ou 16K instruções de 48 bits cada;
• Dois barramentos separados para acesso à memória interna per- mitem que dois operandos sejam transferidos em um mesmo ciclo; • As operações de multiplicação (e de inversão) são realizadas por uma unidade computacional especializada, enquanto uma uni- dade aritmética se encarrega das adições e subtrações;
• Um conjunto de 16 registradores serve para guardar os operandos mais utilizados e minimizar a quantidade de acessos à memória; • A programação pode ser feita usando uma sintaxe algébrica da
linguagem assembly ou utilizando a linguagem “C”.
Operações em paralelo. Os 16 registradores, onde ficam os fato-
res e parcelas e também os resultados das operações, podem ser divi- didos em quatro grupos de quatro elementos cada um, de acordo com a Tabela 3.1 na página 53.
1Consultarhttp://www.analog.com para mais informações. 2
PM Address Bus (PMA) 24
DM Address Bus (DMA) 32
PM Data Bus (PMD)
DM Data Bus (DMD)
PROCESSOR PORT I/O PORT INSTRUCTION CACHE 32 x 48−Bit DAG 2 8 x 4 x 24 DAG 1
8 x 4 x 32 ADDR DATA DATA ADDR
Bus Connect (PX) MULTIPLIER BARREL SHIFTER ALU DATA REGISTER FILE 16 x 40−Bit
Core Processor Dual−Ported SRAM
Two Independent, Dual−Ported Blocks BLOCK 0 BLOCK 1 PROGRAM SEQUENCER 48 32/40
Figura 3.1: Diagrama de blocos parcial do processador ADSP-2106x SHARC. Adaptado de [38].
Uma adição/subtração e uma multiplicação podem ser executadas em paralelo pelo processador, desde que se atendam as seguintes con- dições:
1. Um dos fatores deve estar no grupo A e o outro no grupo B; e 2. Uma das parcelas deve estar no grupo C e a outra no grupo D.
A Figura 3.2 na página seguinte ilustra essas restrições e também indica que os resultados das operações paralelas podem ser colocados em qualquer um dos registradores. Para manter as unidades computa-
Grupo Registradores
A R0, R1, R2 e R3
B R4, R5, R6 e R7
C R8, R9, R10 e R11
D R12, R13, R14 e R15
Tabela 3.1: Grupos de registradores no SHARC.
cionais operando de modo eficiente, a colocação dos fatores, parcelas e resultados intermediários deve ser cuidadosamente avaliada.
R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 Unidade Aritmética R0 . . . R15 MultiplicaçãoUnidade de R0 . . . R15
Figura 3.2: Diagrama de condições para funcionamento paralelo das unidades computacionais do SHARC.
Ponteiros. A transferência de dados entre memória e registradores
pode ser feita em paralelo com as operações aritméticas, usando 16 ín- dices de endereçamento indireto, identificados pelos códigos I0–I15. Me- tade desses índices (I0–I7) realiza transferências sobre o barramento
DM (Data Memory) e a outra metade (I8–I15), sobre o barramento PM (Program Memory).
Para realizar o incremento e decremento desses índices, há 16 modi- ficadores de índice, identificados por M0–M15. Cada modificador pode ser utilizado para alterar, durante uma transferência, o valor de qual- quer índice I0–I15.
Esses índices atuam portanto como ponteiros para as diversas va- riáveis envolvidas na execução do algoritmo. Fazendo escolhas adequa- das sobre quais índices são atrelados a quais variáveis, pode-se garan- tir que os operandos ficam disponíveis às unidades computacionais no momento necessário.