|
Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités
Carte evaluation DSP ADAU1452 ADAU1466 ADAU1467
ah punaise j'en ai pas ramené assez !!!
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
Convertir du DSD en PCM quelle drôle d'idée
Le concept du DSD était justement pour éviter cela.
Sinon, moi non plus je n'ai rien compris à ton idée (c'est qu'elle doit être géniale) de sortie DSD

Sinon, moi non plus je n'ai rien compris à ton idée (c'est qu'elle doit être géniale) de sortie DSD

- tcli
- Messages: 4087
- Inscription Forum: 23 Nov 2009 22:40
- Localisation: Complètement à l'ouest
achh, alors il y a 2 choses, l'ami Pavel a codé dans un FPGA un super algo de conversion DSD to PCM ce qui permet ensuite de gerer le PCM en FIFO et de le renvoyer reclocké vers des DAC standard ou un ampli genre Tact. son algo est original en terme de filtre et de respect de la phase blabla. il y a aussi d'autres algo devloppé par Anagrame ou ABC-PCB (genre S2 ou Q5) . N'oublions pas que de toute facon, les DAC DSD convertissent en PCM pour appliquer un filtre FIR , voire un volume (je generalise peut etre un peux vite)
EDIT: tient, le Totaldac a aussi un algorithme pour accepter le DSD (over PCM) et le convertir en R2R...
en ce qui concerne l'idée précedente, c'est l'inverse qui m'interresse: comment sortir du DSP en mode DSD pour arreter de s'embetter avec les DACs, puisque dans ce cas, un simple RC suffit pour filtrer le DSD (pour faire simple, sachant qu il y a aussi du Noise HF mais bon).
Le probleme c'est qu'il n'y a pas de sortie DSD (ou "PDM") sur l'ADAU1452, contrairement à certains DSP de Texas Instrument.
Du coup il faut trouver une astuce. Premierement utiliser une sortie Data d'un port I2S et s'arranger pour que les 2x32bits qui sont envoyés à chaque sample (fs) representent 64 bits du flux DSD equivalent.
Deuxiement, il faut un algo (genre upsampling fir) pou obtenir ces fameux 64 bits
On peux surement ruser pour que l'assemblage des 64 bits soit par exemple la concatenation de 8 valeurs qui sortent d'une table, histoire d'optimiser.
Finalement vient le switch SPDT pour comuter du +/-3v et un integrateur RC et un volme en R2R sur 3 bits;
pour une poignée de cerise on peux envisager de sortir 4 canaux de qualité à partir des 4 port I2S.
avec un peu de glue (cpld) on peux envisager 16 canaux ou 8 en differentiels , ce qui permetrait une gestion filtre actif 2x4 voies+Centre+Sub+4 rear sur une seule carte. un "maxi-dcx" en fait
EDIT: tient, le Totaldac a aussi un algorithme pour accepter le DSD (over PCM) et le convertir en R2R...
en ce qui concerne l'idée précedente, c'est l'inverse qui m'interresse: comment sortir du DSP en mode DSD pour arreter de s'embetter avec les DACs, puisque dans ce cas, un simple RC suffit pour filtrer le DSD (pour faire simple, sachant qu il y a aussi du Noise HF mais bon).
Le probleme c'est qu'il n'y a pas de sortie DSD (ou "PDM") sur l'ADAU1452, contrairement à certains DSP de Texas Instrument.
Du coup il faut trouver une astuce. Premierement utiliser une sortie Data d'un port I2S et s'arranger pour que les 2x32bits qui sont envoyés à chaque sample (fs) representent 64 bits du flux DSD equivalent.
Deuxiement, il faut un algo (genre upsampling fir) pou obtenir ces fameux 64 bits
On peux surement ruser pour que l'assemblage des 64 bits soit par exemple la concatenation de 8 valeurs qui sortent d'une table, histoire d'optimiser.
Finalement vient le switch SPDT pour comuter du +/-3v et un integrateur RC et un volme en R2R sur 3 bits;
pour une poignée de cerise on peux envisager de sortir 4 canaux de qualité à partir des 4 port I2S.
avec un peu de glue (cpld) on peux envisager 16 canaux ou 8 en differentiels , ce qui permetrait une gestion filtre actif 2x4 voies+Centre+Sub+4 rear sur une seule carte. un "maxi-dcx" en fait

Dernière édition par maxidcx le 21 Mai 2014 22:33, édité 1 fois.
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50



ben y a des gens, pas chinois qui on l'algo ki va bien pour transformer le PCM en DSD et ils en font un argument commercial a 5995$
http://audiofi.net/2014/02/ps-audio-dir ... cm-to-dsd/
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
bon j'ai deja trouvé ca, mais pas sur ton moteur de recherche !
"Actually DSD is not very different from PCM. DSD is just PCM with 1-bit-samples at a very high sampling rate. So, PCM->DSD can be done via upsampling + lowpassfiltering + properly noise-shaped quantizing. (The last part is kinda difficult)" alors je vais commencer par essayer de faire un upsampling 8X avec un FIR et vehiculer le resultat sous forme hexa AA ou 55 sur la sortie I2S. ca devrait chanter un peux
"Actually DSD is not very different from PCM. DSD is just PCM with 1-bit-samples at a very high sampling rate. So, PCM->DSD can be done via upsampling + lowpassfiltering + properly noise-shaped quantizing. (The last part is kinda difficult)" alors je vais commencer par essayer de faire un upsampling 8X avec un FIR et vehiculer le resultat sous forme hexa AA ou 55 sur la sortie I2S. ca devrait chanter un peux
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
la nuit porte conseil, et la réponse de Pavel ne c'est pas fait attendre : la conversion PCM - DSD est une galere totale, et d'un point de vu strictement theorique il sera donc impossible de la faire proprement et selon les regles de l'art avec l'ADAU. Il a un algo beton qui transfome le pcm en dsd256 dans un fpga; je n'ose pas lui demander le cout de la license IP 
bref, mon plan court terme pour les prochains jours est le suivant:
faire une interpolation 4x d'un signal entrant. C'est assez simple semble til.
http://www.dspguru.com/dsp/faqs/multirate/interpolation
on insert 3 zero entre chaque echantillons et on fait passer disons 5 echantillons par un FIR 20 taps reglé en passe bas sur la frequence de coupure (disons 20khz). rephase est mon ami.
on transforme ce fir 20 taps en 4 FIR polyphase de 5 taps , en combinant les coefs comme expliqué dans le chapitre 3.4.2. Excel est mon ami.
on se retrouve avec 4 echantillons interpolés en sortie des 4 FIRs.
Apres il faut transformer l'ecart d'energie entre 2 echantillons successifs sous forme d'un flux de bit "PDM" et on a 16 bits dispo par echantillons... faut creuser...

bref, mon plan court terme pour les prochains jours est le suivant:
faire une interpolation 4x d'un signal entrant. C'est assez simple semble til.
http://www.dspguru.com/dsp/faqs/multirate/interpolation
on insert 3 zero entre chaque echantillons et on fait passer disons 5 echantillons par un FIR 20 taps reglé en passe bas sur la frequence de coupure (disons 20khz). rephase est mon ami.
on transforme ce fir 20 taps en 4 FIR polyphase de 5 taps , en combinant les coefs comme expliqué dans le chapitre 3.4.2. Excel est mon ami.
on se retrouve avec 4 echantillons interpolés en sortie des 4 FIRs.
Apres il faut transformer l'ecart d'energie entre 2 echantillons successifs sous forme d'un flux de bit "PDM" et on a 16 bits dispo par echantillons... faut creuser...
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
maxidcx a écrit:la nuit porte conseil, et la réponse de Pavel ne c'est pas fait attendre : la conversion PCM - DSD est une galere totale, et d'un point de vu strictement theorique il sera donc impossible de la faire proprement et selon les regles de l'art avec l'ADAU. Il a un algo beton qui transfome le pcm en dsd256 dans un fpga; je n'ose pas lui demander le cout de la license IP
bref, mon plan court terme pour les prochains jours est le suivant:
faire une interpolation 4x d'un signal entrant. C'est assez simple semble til.
http://www.dspguru.com/dsp/faqs/multirate/interpolation
on insert 3 zero entre chaque echantillons et on fait passer disons 5 echantillons par un FIR 20 taps reglé en passe bas sur la frequence de coupure (disons 20khz). rephase est mon ami.
on transforme ce fir 20 taps en 4 FIR polyphase de 5 taps , en combinant les coefs comme expliqué dans le chapitre 3.4.2. Excel est mon ami.
on se retrouve avec 4 echantillons interpolés en sortie des 4 FIRs.
Apres il faut transformer l'ecart d'energie entre 2 echantillons successifs sous forme d'un flux de bit "PDM" et on a 16 bits dispo par echantillons... faut creuser...
Et la marmotte...j'ai rien compris

- Kro
- Messages: 29447
- Inscription Forum: 12 Jan 2004 19:24
- Localisation: Isère (38)
...et moi, à la base, je voulais juste savoir si il était satisfait!!!



- sdf
- Messages: 4495
- Inscription Forum: 09 Jan 2003 16:22
- Localisation: Toulouse
Faut se dire que c'est comme la pub : si on ne la comprend pas, c'est qu'on est pas dans la cible 

- alkasar
- Messages: 11517
- Inscription Forum: 29 Nov 2005 22:47
- Localisation: Neuf deux
c'est un sacré brassage de cerveau ce truc, mais j'ai quasiment bouclé l'appli SigmaStudio avec moins de 300 steps pour 2 sorties I2S/DSD
je pense que ca va etre un peu coton a debugger car y a pas mal de possibilité d'inverser le sens des bits ou des echantillons sortant du FIR blablabla. demain je branche les transfos sur les I2S via un petit RC. Je parie sur du white noise
tiens faut que je reflechisse a la cible, mais on peux aussi faire dans le philanthropique educationel experimental ?
je pense que ca va etre un peu coton a debugger car y a pas mal de possibilité d'inverser le sens des bits ou des echantillons sortant du FIR blablabla. demain je branche les transfos sur les I2S via un petit RC. Je parie sur du white noise

tiens faut que je reflechisse a la cible, mais on peux aussi faire dans le philanthropique educationel experimental ?
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
maxidcx a écrit:on peux aussi faire dans le philanthropique educationel experimental ?
tu peux, tu peux

- alkasar
- Messages: 11517
- Inscription Forum: 29 Nov 2005 22:47
- Localisation: Neuf deux

tiens d'ailleurs je suis chanceux j'obtiens un peux de musique au dessus du white noise ! (jai branché directement l'I2S sur un RC et hop vers l'ampli, une folie.
j'ai semble t il un soucis de mise à l'échelle apres la difference entre les FIR et pour le calcul de l'index dans la "lookup table" qui genere le flux pdm... pfff... je vais faire une version simplifiée pour commencer
- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
bon, je pense que je ne vais pas reussir a faire un truc correct a la hauteur des expectations... à la rigueur le concept peux marcher pour faire une ou 2 sorties additionelles pour un woofer < 1khz.
Par contre je tire 2 idées de ces essais :
- possibilité d'upsampler 4x la vitesse du dsp et de ressortir cela assez simplement sur de l'I2S en exploitant les modes TDM. Ca permet d'entrevoir un pilotage de DAC R2R à 384k par exemple pour saffranchir de quelques discussion concernant le filtrage de sortie.
- possibilité de travailler en derivation avec integrateur en aval, c'est a dire plutot que d'envoyer du PCM pur et dur sur 24 bits sur des convertisseurs 24 ou 32 bits, on peux envoyer du 16 bit (AD1851), qui represente non pas la valeure absolue, mais l'ecart avec l'échantilon precedent. un faisant suivre par un I/V dans lequel on remplace la resistance par une capa, y a de quoi faire un truc pas mal. Bref on reinvente le sigma-delta en version diy
si quelqu'un à des idées ou des retours sur le fait de sortir en "deltae" plutot quand "sigma"... welcome
Par contre je tire 2 idées de ces essais :
- possibilité d'upsampler 4x la vitesse du dsp et de ressortir cela assez simplement sur de l'I2S en exploitant les modes TDM. Ca permet d'entrevoir un pilotage de DAC R2R à 384k par exemple pour saffranchir de quelques discussion concernant le filtrage de sortie.
- possibilité de travailler en derivation avec integrateur en aval, c'est a dire plutot que d'envoyer du PCM pur et dur sur 24 bits sur des convertisseurs 24 ou 32 bits, on peux envoyer du 16 bit (AD1851), qui represente non pas la valeure absolue, mais l'ecart avec l'échantilon precedent. un faisant suivre par un I/V dans lequel on remplace la resistance par une capa, y a de quoi faire un truc pas mal. Bref on reinvente le sigma-delta en version diy
si quelqu'un à des idées ou des retours sur le fait de sortir en "deltae" plutot quand "sigma"... welcome

- maxidcx
- Membre HCFR Contributeur
- Messages: 3105
- Inscription Forum: 25 Avr 2007 10:50
maxidcx a écrit::thks:
tiens d'ailleurs je suis chanceux j'obtiens un peux de musique au dessus du white noise ! (jai branché directement l'I2S sur un RC et hop vers l'ampli, une folie.
j'ai semble t il un soucis de mise à l'échelle apres la difference entre les FIR et pour le calcul de l'index dans la "lookup table" qui genere le flux pdm... pfff... je vais faire une version simplifiée pour commencer
Il ne te manquerait pas surtout un noise shaper par hasard ?

- tcli
- Messages: 4087
- Inscription Forum: 23 Nov 2009 22:40
- Localisation: Complètement à l'ouest
|
Retourner vers Filtrage actif, Equalisation et Processeurs
|