MarioBon ha scritto: 27/12/2020, 15:43
...
Purtroppo ho questa mania di voler scrivere il software che uso
...
Ho pensato di utilizzare l'IA per creare un programma che generi il segnale di distorsione densa (DD) e che poi analizzi il risultato della sua somministrazione ad un DUT.
Lo spunto mi è venuto da vari post di Mario e Tom. In breve le caratteristiche del programma in Python (che ha fatto tutto l'IA: io gli davo qualche dritta e probabilmente questo l'ha solo confusa..).
CARATTERISTICHE DEL SEGNALE DI TEST (GENERATORE)
Il segnale è progettato per massimizzare la risoluzione spettrale e la coerenza digitale:
Frequenza di Campionamento: 48.000 Hz.
Risoluzione Bit: 24-bit (salvato in contenitore PCM 32-bit per compatibilita').
Dimensione FFT (N_FFT): 262.144 campioni (2^18).
Risoluzione in Frequenza: Circa 0,183 Hz per bin.
Durata: 20 secondi (necessari per garantire la stabilita' e la cattura di piu' periodi completi).
Densita' Spettrale: Massima (1 riga di segnale ogni 2/4/8 bin).
Ottimizzazione Fattore di Cresta: Ottenuta tramite l'applicazione delle fasi di Schroeder e un algoritmo iterativo di clipping controllato (25 iterazioni) per massimizzare il rapporto segnale/rumore (SNR) senza saturazione digitale.
________________________________________
ALGORITMO DI ANALISI (DEEP-LOCK MODE)
L'analizzatore utilizza una tecnica di sincronizzazione coerente per eliminare lo Spectral Leakage:
A. Sincronizzazione Sample-Accurate
Il software non analizza il file in una posizione casuale. Esegue una scansione campione-per-campione (Deep-Lock) per individuare l'esatto offset temporale che minimizza il leakage spettrale. Questo permette di "incastrare" i toni del segnale esattamente al centro dei bin della FFT di analisi.
B. Finestra di Analisi Uniforme (Rettangolare)
Grazie alla sincronizzazione perfetta e alla coerenza di clock (se generatore e acquisizione condividono lo stesso quarzo), viene utilizzata una finestra rettangolare. Questa scelta impedisce l'allargamento dei lobi laterali dei toni, mantenendo l'energia del segnale confinata in un singolo bin e lasciando il bin adiacente (distorsione) incontaminato.
C. Rilevamento Adattivo Segnale/Rumore
Per ogni coppia di bin adiacenti, il software identifica automaticamente il bin "Segnale" (quello con ampiezza maggiore) e il bin "Rumore". Questo rende la misura immune a eventuali inversioni di parita' o rotazioni di fase, garantendo precisione anche sotto i 50 Hz.
________________________________________
ELABORAZIONE DATI E VISUALIZZAZIONE
Calcolo Distorsione: Rapporto tra il valore efficace (RMS) dei bin di rumore e dei bin di segnale, espresso in percentuale (%).
Smoothing Logaritmico Adattivo:
Sotto i 100 Hz: 1/12 di ottava (per stabilizzare le fluttuazioni del rumore rosa residuo).
Sopra i 100 Hz: 1/24 di ottava (per preservare il dettaglio spettrale).
Metà di quello che c'è scritto non lo capisco (ad esempio il deep-lock mode): in questo l'aiuto dell'IA è decisivo.
Una precisazione: utilizzando la massima densità anche il loop-back di schede audio valide (EMU 0202 e Motu M4) produceva distorsioni altissime, a meno di non diminuire l'ampiezza del segnale (che già era attenuato di più di 5 dB). Passando a densità inferiori (1 su 4 e 1 su 8) la situazione si stabilizza rendendo la misura utilizzabile senza troppe paranoie (tipo la classica domanda: distorce la scheda audio o l'amplificatore?). Devo ancora testare seriamente il programma e questo post testimonia solamente il piacere che ho avuto ad addentrarmi in territori nei quali non sono molto ferrato facendomi guidare, si spera in modo corretto, da qualcuno che ne sa di più

.