• Sonuç bulunamadı

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.

Benzer Belgeler