Página 1 de 2

tocar wav.

MensagemEnviado: 21 Mai 2008 09:39
por j.silvestre
Senhores

Estou usando o D/A do lpc2148 para reproduzir um som wave, porem estou com alguma duvidas.

1. o som é de 8khz,8bit mono.
2. o tempo do som é de 164,72s(windows media player)

então a cada 125us jogo 8 bits no conversor DA do arm, então o arquivo demora 346 segundos para ser executado, sendo que no media player o tamanho é de 164,72 segundos. o tempo de 125us esta certo, pois estou acompanhando a execução pelo o osciloscópio. O som ainda esta
deformado, preciso colocar um filtro para diminuir os degraus.
porque a execução do arquivo demora + que o dobro ?? este tempo de 125us esta errado ? que filtro que eu coloco para diminuir os degraus ?


se alguém puder ajudar ..



sds

j.silvestre

MensagemEnviado: 21 Mai 2008 11:31
por fabim
olha não confunda melancolia profunda com melancia na bunda, são coisas diferentes.

8Ksps em 8 bits com Vref de 3,3V.

1S/ 8000 amostras.

= uma amostra a cada 125uS.

Suponha o seguinte. voce le uma eeprom externa por exemplo e espera a interrupção que esta setada para cada 125uS.

Aconteceu a interrupção.
125uS

4 uS que é o tempo que eu levei para ler o byte e jogar para o DAC

4 uS que é o tempo que eu levei para zerar o contador e ligar a interrupt

Quer dizer que o som vai ser jogado a cada
125uS + 4uS + 4uS.

133uS..

1/0.000133 = 7.518KSPS. o som vai ficar distorcido e grave..

Você tem que levar em consideração o seguinte.
Para que a cada exatos 125uS o DAC mostre o novo valor na saida como deve proceder ?

interrupção setada para cada 125uS - (4+4uS).

INT setada para acontecer a cada 117uS.

Na saida do DAC por varios motivos voce tem que colocar um ant aliasing.

Bom levando em consideração 8KSPS em 8 Bits, vamos pensar em reprodução de vóz 300 a 3300hz.
coloque um filtro RC na saida do DAC do LPC calculado para FC de 4khz, jogue em um buffer LM358, na saida do LM voce coloca outro filtro igual ao da entrada, depois de feito tudo isso.
Faça a analize com o osciloscopio novamente. Use a caixinha de som do seu PC para poder ouvir o resultado.

Fabim

MensagemEnviado: 21 Mai 2008 16:08
por j.silvestre
Grande fabim...

funcionou a bagaça...

primeiro eu estava cometendo uma barbeiragem .. o arquivo estava 8khz but 16 bits transformei para 8 bits.. dei uma corrigida nos times.. fiz o filtro passa-baixa com fc de 8khz..
e não é que funcionou...... valews..


j.silvestre

MensagemEnviado: 21 Mai 2008 16:21
por fabim
bradesco AG.0535-5 CC:7070, se não der 70 de novo.rs

Fabim

MensagemEnviado: 21 Mai 2008 17:08
por j.silvestre
hehehe..he..



j.silvestre

MensagemEnviado: 21 Mai 2008 19:28
por Viktor
j.silvestre escreveu:hehehe..he..



j.silvestre



Se filtro deve ser para 4kHz e não 8kHz.

MensagemEnviado: 23 Mai 2008 10:13
por j.silvestre
Viktor


foi pra 4kz , eu que digitei errado.

agora mais uma duvida. com o DA de 10 bits do lpc2148, estarei condenado a reproduzir sons apenas de 8 bits ? ou existe alguma técnica ninja que permita reproduzir sons de 16bits com um DA de 8 bits ?



sds

j.silvestre

MensagemEnviado: 23 Mai 2008 11:09
por fabim
pô meu. c tá doido ou não prestou atenção no que escreveu ?

Se o DA é de 8 bits como vai reproduzir com definição de 16 ?

Tipo assim... se voce pegar uma word e jogar em um byte, isto é uma converção implicita, o compilador vai pegar o LSB da word e jogar no byte.

Agora 8 bits é 2X menor que 16 certo ?

A := B/255;
DAC := A;
A := C/255;
DAC := A;

Sucessivo.....
"foi só pra voce entender"

mais se estiver de saco cheio, e estiver usando uma LPC da vida..
Pega um drive de CD de PC daqueles antigos com entrada de phone de ouvido frontal. Todos eles tem um DAC de 16Bits canal duplo com Vref de 2.5V e 115KSPS..
Configure o SPI do LCP pra 16 Bits e clk compativel com o DAC que mensionei. Vai ficar mais mió di bão, por enquanto estou fazendo assim.rsrs. Mais não estou usando LPC, to usando PIC18F a 12 mips.

Risca o zóio depois você posta os resultados, vai observar que vai ficar muito bom.:)

Fabim

MensagemEnviado: 23 Mai 2008 12:14
por Rodrigo_P_A
j.silvestre escreveu:Viktor


foi pra 4kz , eu que digitei errado.

agora mais uma duvida. com o DA de 10 bits do lpc2148, estarei condenado a reproduzir sons apenas de 8 bits ? ou existe alguma técnica ninja que permita reproduzir sons de 16bits com um DA de 8 bits ?



sds

j.silvestre


faça assim:

Pegue o dado de 16 bits, rotacione 6 bits à direite, e utilize somente os bits mais significaticos. Eu fiz isso, e ficou muito bom.

exemplo:

dado16bits;

DAC=( dado16bits>>6 ); // pronto

MensagemEnviado: 23 Mai 2008 12:50
por proex
Cacilda, que bagunça ehehhehehhe.

Afinal:

O sampling rate é 4 ou 8khz?
A palavra de áudio é 8 ou 16 bits?
O conversor A/D do ARM é de quantos bits?

MensagemEnviado: 23 Mai 2008 12:56
por j.silvestre
captei...

não existe almoço gratis... hehehe...



sds


j.silvestre

MensagemEnviado: 23 Mai 2008 13:02
por j.silvestre
Proex

seguinte a bagaça esta funcionando...

palavra de 8bits

8khz uma palavra enviada para DA a cada 125us.

DA de 10 bits...

só queria saber se existia um chuncho.... para aumentar a resolução do DA para 16 bits.
...


sds

j.silvestre

MensagemEnviado: 23 Mai 2008 13:32
por Rodrigo_P_A
j.silvestre escreveu:Proex

seguinte a bagaça esta funcionando...

palavra de 8bits

8khz uma palavra enviada para DA a cada 125us.

DA de 10 bits...

só queria saber se existia um chuncho.... para aumentar a resolução do DA para 16 bits.
...


sds

j.silvestre


Aumentar pra 16 bits num dá, mas do jeito que eu te falei vc consegue usar em 10 bits , ao invés de 8 como vc está fazendo

MensagemEnviado: 23 Mai 2008 13:46
por j.silvestre
Captei.


j.silvestre

MensagemEnviado: 23 Mai 2008 16:30
por barboza
J.

Use codificação ALaw ou uLaw com 8 bits que o som fica bem melhor que os 8 bits lineares.

A decodificação é fácil e rápida!