Como Multiplicar sinais de audio

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Como Multiplicar sinais de audio

Mensagempor Vonnilmam » 28 Dez 2006 21:35

Tenho o seguinte problema:

Meu circuito esta gerando um sinal de audio com forma de onda senoidal, na verdade esse sinal é obtido de um conversor D/A.

Eu preciso multiplicar essa frequencia por 2,4,8 e 16 vezes da sua fundamental que no meu caso vai de 100 htz até 1khz aproximadamente...

O meu problema é que esse sinal é analogico, alguém sabe como eu poderia fazer isso e se alguem entre os ilustres colegas tem como fazer isso através de algum DSP ou outro chip dedicado favor me informar...trata-se de equipamento comercial,

Grato,
Marcos,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Mensagempor MOR_AL » 28 Dez 2006 22:51

Olá Vonnilmam.

Se o seu sinal for analógico, você poderia usar um PLL. Veja os blocos básicos no endereço a seguir.

http://rapidshare.com/files/9343811/PLL_Senoidal1.JPG.html

Existem integrados que possuem quase todos os blocos mostrados. Ex.: CD4046 ou LM565, ambos da National.

Dê uma pesquisada no Databook.

MOR_AL
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor proex » 29 Dez 2006 08:24

Grande Vonnilmam, nao ficou de passar por aqui? O café até esfriou.

Vc arruma cada coisa complicada heim !!!!

Multiplicar a frequencia de uma senoide e manter a forma de onda na saida nao é tão facil assim no dominio analógico.

Ainda mais se a frequencia a ser multiplicada sofre variaçoes dentro da escala que vc mencionou.

Se a frequencia de entrada fosse fixa e se fosse onda quadrada, seria mais facil ainda.

Com os PLLs mencionados, seu circuito vai sofrer para manter a precisao pois o resultado irá depender da tolerancia dos valores de capacitores e resistores.

Com PLLs puramentes digitais, vc terá um resultado extremamenta preciso mas só conseguirá forma de onda quadrada na saida.

Além do mais, nao faço a menor idéia onde arrumar um PLL puramente digital. A nao ser dentro de MCUs cujo sinal de clock passa pelo PLL.

Se o sinal a ser multiplicado vem de um D/A, vc poderia pegar esse sinal, ainda no formato digital na entrada do D/A, e manipula-lo com um DSP, DSPIC ou algum MCU rapido.

Quanto mais rapido melhor pois vc nao teria tanto atraso no processamento até obter o sinal de saida.

No dominio digital, existem duas técnicas de fazer a multiplicaçao de uma senoide que esta sendo amostrada.

A primeira chama-se Pitch Shifting. Nela vc memoriza um ciclo completo do sinal num buffer e depois lê esse buffer com o dobro da velocidade com que gravou. (para o caso de multiplicar por 2)

Ou seja, se vc amostrou o sinal de entrada com sampling rate de 10Khz, vc tera que reproduzi-lo com 20Khz de sampling rate, para multiplica-lo por 2.

A deficiencia do Picth Shifting é que se o sinal de entrada nao for puramente senoidal, vc terá na saida o sinal fundamental multiplicado + harmonicos indesejados.

A outra forma chama-se Picth Scaling que faz uso de tabelas de FFT.

Mais complicado mas, mais perfeito pois nao gera harmonicos idesejaveis mesmo se o sinal de entrada for um sinal complexo, como uma musica por exemplo.

Vc percebe que, tanto no dominio analogico como no digital, essas coisas nao sao simples de implementar, mas as técnicas no dominio digital são mais precisas.

Mas afinal, quem esta gerando o sinal a ser multiplicado nao pode gerar os multiplos que vc precisa ? Ou vc nao tem acesso a isso?
Editado pela última vez por proex em 29 Dez 2006 11:47, em um total de 1 vez.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor MOR_AL » 29 Dez 2006 09:20

O dispositivo PLL funciona perfeitamente. Os capacitores não precisam ser de precisão, a exceção é quando você quiser fazer o filtro analógico de segunda ou terceira ordem, segundo ou terceiro tipo. É o caso em que além de um erro zero de frequência gerada, você consegue um erro de fase zero e de derivada da fase zero. Nestes casos o projeto do PLL é bem complexo, pois além de colocar os polos na origem (em loop aberto), você tem que controlar os zeros para que seu sistema (Root-Locus) seja estável e sem overshoot.
O PLL também é usado em demodulação analógica. O multiplicador ao invés de ser o "ou exclusivo" é um multiplicador analógico, ou integrado ou que utiliza as características não lineares de uma junção PN.

Já fiz diversos PLLs, com blocos analógicos e digitais combinacionais, inclusive um que gerava uma frequência 360 vezes maior que a frequência da rede. Devo dizer que poucos são imediatos, vai depender de sua aplicação.

Boa sorte.

MOR_AL
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Viktor » 29 Dez 2006 10:02

Tô com o Proex. Isso não vai funcionar. A dinâmica seria péssima. Por que você não gera esses sinais com as frequências desejadas logo de cara ?
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

aos amigos...

Mensagempor Vonnilmam » 06 Fev 2007 15:09

Caro Proex, eu estou atravessando uma fase muito complicada...

Mas irei até sua casa para conversarmos e trocarmos muitas ideias e tomar o cafezinho...heheh,

Infelismente eu não tenho acesso a essas frequencias senoidais que na verdade são sinais de audio que já passaram por um DAC de audio de 16 bits, trata-se de um chip dedicado, é que eu tenho 1.000 peças desse chip porem para ele ter um aplicação no nivel que eu desejo tenho que gerar apartir da frequencia principal 4 saidas com multiplos de 2 ou seja, a frequencia principal multiplicada por 2, por 2 por 2 + a principal e teria-se 4 saidas...gerando a mesma frequencia da principal.

Vou testar do PLL que nosso amigo Mor_Al sugeriu e postarei os resultados aquí.

Alguem entre voces sabe quem pode me soldar um chip numa plaquinha PCI no involucro QFN 44....

Necessito com urgencia colocar um item em produção e não estou conseguindo alguem que faça esse trabalho...soldar um QFN 44 numa pci...

Grato, pela ajuda,
Marcos vonnilmam
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: aos amigos...

Mensagempor andre_luis » 07 Fev 2007 08:03

Já usei um OTA para realizar uma multiplicacao analógica e funcionou razoavelmente. Foi um CA3080 da National, se nao me engano.

Dá uma olhada na figura 2.d desse documento :

http://amesp02.tamu.edu/~sanchez/multipli.pdf

Foi por onde me baseei para fazer o circuito, que implementava uma equacao de 2o grau, do tipo:

Vo = a.Vi^2 + b.Vi + c

O único problema foi a sensibilidade aos componentes utilisados ( resistores )
que tiveram de ser de precisão.

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor KrafT » 07 Fev 2007 08:23

Desculpa me meter nesse assunto de gente grande, mas eu na minha infinita ignorância, ia medir o sinal de saída e gerar as novas frequencias a partir do zero, com um mcu ou dsp, se soubesse utiliza-lo.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor Adauto sampaio » 07 Fev 2007 09:05

Caro Vonnilmam, e se vc transformas esse sinal senoidal em uma onda quadrada, aplicar em um módulo CCP do PIC (capture), processar esse sinal (com as multiplicações necessárias) e mandasse para outro módulo CCP (pwm) para transformar novamente em senoide? Como vc vai trabalhar com sinais de frequencia fixa na entrada, acredito que possa ser possível.
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor andre_luis » 07 Fev 2007 10:45

Eu também preferiria trabalhar com DSP, pois se pode incorporar uma série de recursos de tratamento de sinal ( filtragem, pre-scaler, antialiazing,... ) , mas realmente - creio - o buraco seria mais embaixo do que uma mera simulaçao/montagem de circuito ( pspice ) como foi meu caso, antes de montar o prototipo.

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Para todos os amigos

Mensagempor Vonnilmam » 18 Fev 2007 17:58

Meus amigos,

Suas sugestões foram de grande valia, porem o negocio é um pouco mais complicado...

O negocio é o seguinte:

Eu tenho uma "Amostra" de um Timbre Feito a razão de 44.100Khz, esse sinal é semelhante a uma "Senoide" (é um sinal analogico que esta saindo de DSP através de um DAC de audio de 16 bits de resolução).

Imagine esse timbre (wave) sendo colocado na saida do DAC em di versas frequencias na forma de notas musicais aleatoriamente, agora esse timbre poderá ter mais de um "canal" sendo enviado ao mesmo tempo ao DAC, daí teremos a somatoria dessas duas Amostras formando um "Acorde" musicalmente falando....Na realidade temos 8 canais sendo enviados com o mesmo timbre "amostra" simultaneamente.

Fato é que eu possuo uma boa quantidade desse DSP dedicado para musica eletronica e o mesmo me solta na sua saida esse timbre e necessito saber se alguém saberia ou teria uma forma de elevar esse "TOM (notas musicais)" em niveis multiplos partindo da frequencia BASE e multiplicando-a por 2,4 e 8 vezes o seu valor...

Caso alguns do amigos tenha como fazer isso utilizando um DSP por exemplo, favor me contactar mcupic@itelefonica.com.br para conversarmos, eu necessito de muitos chips que façam essa façanha.

Explicando mais: O Chip elevador de oitavas teria que pegar o meu sinal e multiplica-lo por 2 (primeira saida), por 4 (segunda saida) e por 8 (terceira saida) além da saida principal é claro, mantendo-se os mesmos niveis de volume e forma de onda que no caso é um timbre amostrado a 44.100khz (é um som de flauta doce).

Eu não tenho tempo para trabalhar em cima desse digamos "multiplicador de frequencia", porque estou envolvido em outro trabalho complexo com DSP da analog...

Se um dos amigos tiver interesse me avise que lhe envio um chip desses com a literatura para analize, estou pretendendo formar uma produção de 3.500 produtos com esse chip, e nesse caso cada chip iria levar um "multiplicador de frequencias" também...

Valeu,
Marcos vonnilmam
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Mensagempor fj82 » 18 Fev 2007 20:02

Oi, pra fazer um oitavador, você pode usar um CI MC1496(modulador analógico balanceado). Ele na verdade é um multiplicador analógico. A teoria é bem simples, quando você multiplica dois sinais no tempo, é como convoluísse na freqüência. Uma senoide convoluida com ela mesma dá um nível DC e uma senoide com o dobro da freqüência(parecido com a potência em uma carga resistiva, a tensão e corrente estão em fase a potência é um nível médio mais uma oscilação com o dobro da freqüência da tensão). Depois um simples filtro CR corta a componente DC do sinal resultante. Tem um esquema bem parecido na aula prática 5 dessa apostila daqui: http://del.ufrj.br/~baruqui/Elet_IV.pdf. Lá tem até um modelo que funciona muito bem pra substituir o MC1496, mas esse nem é caro.
fj82
 
Mensagens: 2
Registrado em: 14 Fev 2007 18:58

Re: aos amigos...

Mensagempor Viktor » 19 Fev 2007 09:30

andre_teprom escreveu:Já usei um OTA para realizar uma multiplicacao analógica e funcionou razoavelmente. Foi um CA3080 da National, se nao me engano.


Imagino que você tenha multiplicado a amplitude e não as frequências como é o caso aqui. Correto ?
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor Vonnilmam » 19 Fev 2007 15:15

Valeu amigos,

Caro, não consegui abrir o site que voce descreveu...dá um erro no pdf...

Vou testar o MC1496, parece que ele irá atender a necessidade, depois comentarei aquí os resultados,

Muito obrigado amigos,
Marcos,
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 446
Registrado em: 19 Out 2006 14:25
Localização: espacial

Mensagempor fj82 » 19 Fev 2007 16:16

O problema era o ponto no fim do endereço. Tenta agora:

http://del.ufrj.br/~baruqui/Elet_IV.pdf

E o melhor é que a potência do sinal oitavado é a mesma do sinal de entrada.
fj82
 
Mensagens: 2
Registrado em: 14 Fev 2007 18:58

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x