Ho trovato che il mio smartphone (Android 4.2.2) non è in grado di generare forme d'onda quadrate (ne ho bisogno per utilizzare l'uscita audio come linea seriale per il trasferimento dei dati). All'inizio supponevo fosse la mia applicazione, ma poi ho fatto molti test significativi. Questi sono gli ultimi test. Spero che tu possa trovare una spiegazione per il fenomeno.distorsione audio Android su forma d'onda quadrata
Ho generato un file wav con una forma d'onda quadra a 500Hz al suo interno. Riproduco il file wav su un telefono Android e su un iPhone Apple. Ho registrato e analizzato il segnale con il mio notebook (il cavo audio collegato all'ingresso audio del notebook).
Quindi ho ripetuto i test con il cavo audio collegato tra un dispositivo ricetrasmettitore bluetooth e l'ingresso audio del notebook. E gli smartphone collegati via bluetooth (uno alla volta) al dispositivo ricetrasmettitore bluetooth.
NOTA: il dispositivo ricetrasmettitore bluetooth è un dispositivo che riceve dati audio tramite bluetooth e fornisce un'uscita audio con un jack audio standard.
Questo è il segnale generato dal iphone collegato direttamente sulla presa audio:
Questo è il segnale generato dal dispositivo Bluetooth di ricezione dati dal iphone:
Questo è il segnale generato dal dispositivo Android direttamente collegato al jack audio:
Questo è il segnale generato dal dispositivo Bluetooth che riceve i dati dallo smartphone Android:
Analisys:
-Il dispositivo bluetooth introduce un taglio alla larghezza di banda del segnale (mi sembra accettabile).
iphone -La ha davvero buona parte analogica (emette una buona forma d'onda quadra)
-Il dispositivo Android è pessima parte analogica (anche se è perfetto per il gioco musicale)
-il i dati inviati dal telefono Android al dispositivo bluetooth non sono corretti, infatti il segnale acquisito è diverso da quello acquisito con i dati provenienti dall'iPhone.
Ho ripristinato lo smartphone ai valori di fabbrica ma il problema non è stato risolto. Ho anche provato ad installare la ROM personalizzata kitkat ma il problema è ancora lì. Ho anche provato con un Nexus 5 (Android 5) e Samsung S4 mini (Android 4.2.2 come il mio) e si comportano come l'iphone.
Sospetto che il problema abbia a che fare con il suono DTS in studio (ho provato a disattivarlo ea impostarlo in modi diversi senza successo). la DTS sembra essere l'unica differenza software tra il mio telefono e il mini samsung s4.
DOMANDA: Posso capire che il lato analogico del mio dispositivo Android non è buono come l'iphone, potrei anche supporre che la parte analogica del mio dispositivo Android sia rotta ... ma non capisco perché io non ottenere lo stesso risultato quando inserisco il dispositivo ricetrasmettitore bluetooth.
C'è sicuramente il filtro sia in passa-basso sia in passa-alto nei condensatori di serie se non altrove. C'è anche molto probabilmente ogni sorta di brutta elaborazione come la conversione della frequenza di campionamento in corso. Ma potrebbero esserci problemi con il tuo programma, come il buffer underrun su alcuni dispositivi. Per diagnosticare realmente, si prega di mostrare le immagini dell'uscita distorta, a varie frequenze e coprendo più cicli dell'onda quadra. Quanto è grande la dimensione del buffer? Che cosa restituisce la query sulla dimensione del buffer minima sul dispositivo non valido? Anche la generazione e il codice di riproduzione sarebbero utili. –
Puoi anche provare a creare il tuo segnale come file .wav su un PC con qualcosa come Audacity o una porta del tuo programma che scrive campioni su un file, verificandone la riproduzione come desiderato lì, e quindi cercando di riprodurlo sul Dispositivo Android. Ciò aiuterà a determinare se si tratta di un problema con l'hardware del dispositivo o il software di fabbrica o con il tuo programma. –
hi @Cris Stratton, non è importante la mia app, perché il problema è presente anche se suono un file wav dall'app audio predefinita (quella fornita con Android). Proverò a fornire un'istantanea – Gaucho