Equalizador com PIC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor proex » 12 Jun 2007 18:15

Fabim, é assim mesmo como descreveu.

O Dsp lê uma amostra no conversor AD estéreo de 24 bits, executa 128 filtros para satisfazer o processo de equalização dos canais L/R. Depois envia os sinais resultantes para o conversor DA.

Como minha placa trabalha com taxa de amostragem de 92Khz, a cada 10,3 micro segundos o DSP repete todo o processo.

O PIC é usado somente para varrer os POTS e atualizar os coeficientes de cada filtro que compõe o equalizador.

O gosto de um DSP é muito parecido com o gosto de um PIC LQFP, só que diferente, ehehehhehhehehe.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor EDSONCAN » 12 Jun 2007 19:09

Curiosidade:

Acredito que vc deve impor um atraso constante para evitar distorções, qual o erro de fase que um sistema destes impoe ao sinal original?

Pergunto por que quando projetava equalizadores analogicos sempre havia um erro de quase 10 graus entre o sinal original.

Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor proex » 12 Jun 2007 19:33

Os filtros adotados chamam-se Biquad cuja correçao de fase já esta incluida nos coeficientes calculados. O atraso entre o sinal de entrada e o sinal de saida é de uma amostragem, 10,3uS, devido ao processo de amostragem.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor EDSONCAN » 13 Jun 2007 06:58

Proex

Se vc pensar na carta de tempo desse projeto ela e bastante interessante:

- le-se um A/D de audio de 24 bits
- le-se 4 potenciometros, por exemplo.( nao ha necessidade de ler todos de uma vez);
- calcula-se os coeficientes dos 128 filtros;
- aplica-se 128 os filtros;
- gera-se o D/A de 24 bits.

Tudo isso em 10,3useg de tempo maximo.
Gostaria de saber como é feito, mas acho que estaria sendo curioso demais, portanto nao vou perguntar.

Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor fabim » 13 Jun 2007 08:33

eim eim eim;;; tendeu ne proex, eu tambem não vou perguntar..

Seria muita curiosidade.....


E aí 8,3uS.. eim eim.. hum


Fabim .. rsrsrs
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor proex » 13 Jun 2007 09:46

Ops, na verdade nao é 10,3uS. E tambem nao é 92Khz de amostragem, é 96Khz

www.shareaphoto.info/uploads/60e34f4822.jpg
Imagem

O filtro Biquad acima é composto por 4 linhas de atraso (Z-1). Duas delas, á direita, são cópias das duas á esquerda. A diferença esta nos coeficientes dos ganhos de realimentação aplicados em "b0/2" , "b1/2" , "b2" , "-a2" e "-a1/2".

Para conseguirmos obter um sinal já filtrado na saida, precisamos que duas amostras sejam carregadas nessa 4 linhas de atrtaso.

2 amostras a 96Khz de amostragem demoram 20,8uS para serem carregadas.

Esses equalizador de 31 bandas possui consequentemente 31 filtros passa -banda ligados em paralelo. Igulazinho ao equalizadores analogicos que adotam filtros com Giratores.

As saidas desses filtros sao entao somadas e o resultado é enviado ao conversor DA.

Como em áudio digital, tudo é sincronizado pela frequncia da taxa de amostragem, sempre que o DSp esta lendo o AD, esta tambem escrevendo no DA o resultado anterior.

Passos:
1-Le AD, Escreve no DA o resultado do processo anterior.
2-Processa o valor lido (calcula os filtros)
3-Goto 1

O Dsp adotado trabalha em 170 MIPS e lembrem-se que DSP nao é como processadores comuns. DSP executa até 4 instruçoes por linha de programa.

Isso quer dizer, por exemplo, que se vc quiser dar um NOP em alguma linha do programa, vc precisa escrever: NOP, NOP, NOP, NOP.

Com 170MIPS, consegue-se simular até 130 filtros desses entre 20,8uS.

Estao achando demais? O Blackfin da Analog Devices roda em 700 MIPS.

Imagine o que é possivel fazer com um bicho desse.

Infelizmente nao posso dizer quais chips adotados nesse projeto pois se trata de projeto comercial o qual estou a procura de investidor para industrializaçao de uma linha de equipamentos de áudio digital.

Mas podemos discutir as teorias e as praticas envolvidas em áudio digital.

Bem, é mais ou menos assim, as vezes mais ou as vezes menos.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabim » 13 Jun 2007 10:12

cara depois de um bom tempo que eu atraves da sua explicação entendi como funciona esse mala do SI3000.. poutz.... tinha até desistido dele :(.
Agora que eu peguei a lógica vou começar a mexer novamente.... :)

Mais escuta..... cuma que pode Ler e escrever simultaneamente ?

Bom como disse DSP processa 4 comandos por linha né. :)

Obrigado pela explicação, ajudou bastante :)

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor EDSONCAN » 13 Jun 2007 11:32

Obrigado pela explicacao

Na verdade meu objetivo era aplicar algo semelhante em balancas, pois temos um modulo webserver que le uma celula e estamos pensando em aumentar para 8, mas teremos problemas de processamento, pois temos que fazer muitas contas com variaveis de 24 Bits.

Hoje o projeto usa um coldfire de 32 bits

SDS
Edosn
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor proex » 13 Jun 2007 12:42

Fabim, o que é SI3000?

Edson, como seu caso é ler sensor de balança, sua taxa de amostragem é infinitamente menor que a minha, de 96Khz.

Acredito que uma taxa de 60 amostragens por segundo seria o suficiente no seu caso e assim seu processador teria um tempo enorme entre uma amostra e outra, para processar seus filtros.

Acho que o coldfire daria conta disso. Mas como tem protocolo de rede envolvido, nao saberia te dizer sobre as temporizaçoes envolvidas nesse caso.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabim » 13 Jun 2007 12:59

SI3000 é um codec SPI de alta velocidade 20mhz.
www.silabs.com/public/documents/tpub_do ... si3000.pdf

Ele tem um conversor stereo de 16 bits.

SCK,SDI,SDO

Depois de configurado bunitim o menino.
Vc pega as amostras de audio trata e devolve, ele joga tumatico pra um DAC..

é da Silabs.

Baratim e pancadão, pra audio até +/- uns 10khz é super pratico e o audio é excelente..

abraços

fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor EDSONCAN » 13 Jun 2007 13:01

A taxa hoje é de 240 amostras/segundo 24 bits.
E que essas celulas sao em platafoma (balanca rodoviaria) e tem as equacoes de compensação de plataforma.
Nao esquecer que ele é um webserver tambem, mas hoje os filtros consomem muito tempo, estamos pensando em altera-los.

SDS
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor proex » 13 Jun 2007 13:21

Fabim, esse codec é destinado á compressao de sinal de voz. Nao serve pra audio profissional onde o padrão atual é 24 bits de resoluçao, e 106dB Faixa Dinâmica.

Edsom, ja considerou a possibilidade de trocar de processador?
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor EDSONCAN » 13 Jun 2007 15:50

Ele é usado para outros produtos e tem contrato de lote anual, sem contar que o preço é muito bom para um chip com Ethernet 10/100M.
SDS
Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x