Un esperimento tutt’altro che insonorizzato
Questo laboratorio è stato sviluppato da Carlo Chillemi, Paola D’Angelo Cicchini, Sofia Colucci, Mia Galante e Riccardo Pacchiarotti in collaborazione con il professor Danilo Comminiello (Dipartimento di Informatica, Elettronica e Telecomunicazioni La Sapienza di Roma).
In molte occasioni ci è capitato di dover produrre o ascoltare un segnale acustico in un luogo esposto a rumori di vario genere come una stazione ferroviaria, un negozio con musica ad alto volume o, più semplicemente, in mezzo al traffico di una congestionata città moderna. Per questo oggi è fondamentale l’utilizzo di sistemi capaci di eliminare il rumore indesiderato al fine di ricavare da un segnale sporco il corrispondente segnale utile pulito, senza interferenze. Il problema posto durante questo percorso è quindi quello di pulire un segnale acustico analogico eliminando il rumore che lo rende di difficile ascolto.
Materiale didattico a supporto
- Il fascicolo 20 – Cancellazione del rumore (in formato PDF di circa 16.9MB)
- Un file in formato ZIP che contiene:
- il codice XML dell’applicazione sviluppata con Blockly;
- il codice Python generato da Blockly e leggermente modificato;
- il file GeoGebra con il test virtuale dell’app.
Prerequisiti
Competenze base
- conoscenze minime del calcolo matriciale;
- conoscenze minime di rappresentazione di audio digitali;
- capacità di tradurre in un linguaggio abbastanza formale una procedura, un algoritmo;
- competenze base di programmazione.
Soft skills
- capacità di problem solving
- capacità di lavoro di gruppo
Obiettivi
L’obiettivo del nostro progetto è elaborare un software capace di ripulire un segnale disturbato dal rumore proveniente da una seconda sorgente migliorandone la qualità. Se non siete avvezzi con la programmazione, non temete, seguiremo quello che noi chiamiamo un approccio semplice al coding, tre step che vi porteranno a realizzare il vostro programma per la cancellazione del rumore:
- sarete guidati alla scrittura di una o più procedure in linguaggio naturale (in italiano) cercando di rendere ogni frase quanto più possibile chiara e non ambigua (non necessariamente alla prima stesura, ci arriveremo per approssimazioni successive – useremo quello che chiamiamo un approccio semplice al coding che è descritto su questo stesso sito in una serie di articoli a partire da Programmare senza un linguaggio di programmazione 1/3);
- le procedure saranno implementate utilizzando il generatore di codice Blockly, l’applicazione è testata all’interno del generatore di codice fino ad essere sicuri del suo funzionamento;
- infine realizzeremo l’app copiando il codice Python generato da Blockly in un interprete e funzionerà senza bisogno di ulteriori interventi!