Prima Esercitazione per il corso di Analisi del Segnale per le Telecom A.A. 2009/10 Cambio di frequenza di campionamento Riccardo Bernardini bernardini@uniud.it 13 aprile 2010 Indice 1 Descrizione dell esercitazione 1 1.1 Cosa deve fare lo studente................................... 1 1.2 Codice da produrre....................................... 2 A Norme per la consegna dell esercitazione 4 A.1 Formato del Subject:...................................... 4 A.2 Formato dei nomi di file.................................... 4 A.3 Generatore di nomi di file/subject................................ 5 1 Descrizione dell esercitazione Sia x c : R R un segnale a tempo continuo x c avente supporto in frequenza pari a ( 3300,3300) Hz (ossia, X c ( f) 0 f < 3300 Hz). Si supponga di avere il segnale x 16 : Z(T 1 ) R ottenuto campionando x c a 16 khz (ossia, x 16 (nt 1 ) = x c (nt 1 )) e di voler ricavare da x 16 ottenere il segnale x 7 : Z(T 3 ) R che si sarebbe ottenuto campionando x c a 7 khz, (ossia, x 7 (nt 3 ) = x c (nt 3 )). Lo schema da usare per operare il cambio di frequenza di campionamento è quello mostrato in Fig. 1: il segnale viene prima interpolato ad un dominio intermedio opportuno Z(T 2 ), filtrato con un passa-basso e quindi ri-campionato a 7 khz. 1.1 Cosa deve fare lo studente Lo studente deve 1. Progettare il filtro (sia IIR ellittico che FIR ottimo) passa-basso in modo tale che il rapporto segnalerumore nel punto u mostrato in Fig. 1 sia maggiore o uguale a 30 db. A tal fine si consideri come 1
u x x T 16 2 x 7 Z(T 1 ) Z(T 2 ) Z(T 2 ) Z(T 3 ) Figura 1: Schema da usare segnale utile nel punto u il segnale u id che si sarebbe ottenuto filtrando l uscita dell interpolatore x T2 con un filtro passa basso ideale h id, ossia Il segnale di disturbo è quindi u id = x T2 h id (1) ε = u u id = x T2 h x T2 h id (2) dove h è la risposta impulsiva del filtro progettato. Il rapporto segnale-rumore sarà quindi u id 2 / ε 2. Suggerimento: si ricordi il teorema di Parseval e si osservi che, detti A e B due segnali si ha 2. Implementare lo schema di Fig. 1 usando le seguenti strutture AB 2 A B 2 (3) (a) Forma diretta II (funzione filter di Matlab) con coefficienti a precisione piena (IIR e FIR) (b) Forma in cascata con coefficienti a precisione piena (IIR e FIR) (c) Forma in parallelo con coefficienti a precisione piena (solo IIR) (d) Forma diretta II (funzione filter di Matlab) con coefficienti quantizzati a 16 bit (IIR e FIR) (e) Forma in cascata con coefficienti quantizzati a 16 bit (IIR e FIR) (f) Forma in parallelo con coefficienti quantizzati a 16 bit (solo IIR) (g) Campionamento/interpolazione multistadio (secondo necessità) a minimo costo computazionale (solo con filtri IIR) (h) Forma polifase (solo FIR) 3. Confrontare tra loro i costi computazionali (in somme e prodotti reali al secondo) delle strutture (a), (b), (c), (g) e (h) 1.2 Codice da produrre Lo studente dovrà produrre due funzioni matlab Cambio di frequenza di campionamento La funzione dovrà avere la seguente interfaccia uscita=ricampiona(ingresso, modo) dove 2
Tabella 1: Modi Valore dimodo Tecnica da usare iir-diretta-float Filtro IIR in forma diretta II con coeff. float fir-diretta-float Filtro FIR in forma diretta II con coeff. float iir-cascata-float Filtro IIR in forma cascata con coeff. float fir-cascata-float Filtro FIR in forma cascata con coeff. float iir-parallelo-float Filtro IIR in forma parallelo con coeff. float iir-diretta-16-bit Filtro IIR in forma diretta II con coeff. a 16 bit fir-diretta-16-bit Filtro FIR in forma diretta II con coeff. a 16 bit iir-cascata-16-bit Filtro IIR in forma cascata con coeff. a 16 bit fir-cascata-16-bit Filtro FIR in forma cascata con coeff. a 16 bit iir-parallelo-16-bit Filtro IIR in forma parallelo con coeff. a 16 bit iir-multistadio Forma multistadio ottima fir-polifase Forma polifase ingresso è un vettore (riga o colonna) con i campioni del segnale x 16 uscita è un vettore colonna con i campioni del segnale x 7 modo è una stringa (case-insensitive) che rappresenta l implementazione da usare. Si veda la Tabella 1. Ottimizzazione multistadio La funzione dovrà avere la seguente interfaccia [costi, filtri]=multistadio ottimo(fmax, fattore) dove fattore È il fattore di campionamento richiesto Fmax È la massima frequenza nel segnale di ingresso (normalizzata alla freq. di campionamento). Chiaramente si ha Fmax < 0.5. costi È un vettore distruct aventi i seguenti campi stadi Un vettore di interi che rappresenta una possibile scomposizione. Per esempio, se il vettorestadi=[2, 3, 7] corrisponde ad uno schema in cui prima si campiona di un fattore due, poi di un fattore tre ed infine di un fattore sette. È ovvio che prod(stadi)=fattore costo Il numero di operazioni (somme e prodotti reali) per campione richieste dalla scomposizione. filtri È un vettore di struct aventi due campi: num eden. filtri(i) rappresenta il filtro da usare nell i-simo stadio della scomposizione ottima. 3
A Norme per la consegna dell esercitazione La relazione ed i file MATLAB prodotti per l esercitazione devono essere consegnati al docente secondo le indicazioni riportate di seguito. Relazioni consegnate in maniera non conforme alle indicazioni che seguono saranno considerate non consegnate. Ogni gruppo deve spedire il codice MATLAB e la relazione finale all indirizzo bernardini@uniud.it La mail spedita deve avere un Subject: costruito secondo le regole descritte in Appendice A.1. I file dell esercitazione devono essere spediti in un archivio zip, tar.gz (o tgz) o tar.bz2. Il nome dell archivio deve essere costruito secondo le regole descritte in Appendice A.2. L archivio deve contenere La relazione finale in formato PDF (o PostScript). Il file con la relazione deve avere lo stesso nome usato per l archivio, ma con l estensione pdf (in minuscolo). La prima pagina della relazione finale deve contenere i nomi degli studenti che compongono il gruppo, il titolo dell esercitazione e l anno accademico corrente. Una directory matlab (minuscolo) contenente i sorgenti MATLAB dell esercitazione. (Nel caso della presente esercitazione, la directorymatlab conterrà almeno i filericampiona.m emultistadio_ottimo.m) A.1 Formato del Subject: Il Subject: usato per la mail usata per consegnare l esercitazione deve avere la forma A0910-1 <cognome>, <cognome2>,... dove ogni <cognome1>, <cognome2>,... sono i cognomi degli studenti che compongono il gruppo in ordine alfabetico. Per esempio, il Subject: da usare per un gruppo formato dagli studenti Pippo Recupero, Gigi de Giggis e Pino D Amore, è A0910-1 D Amore, de Giggis, Recupero A.2 Formato dei nomi di file Il nome da usarsi per l archivio e il file PDF con la relazione è A0910-1-<cognome-1>_<nome-1>-<cognome-2>_<nome-2>-... dove <cognome-n> e <nome-n> sono il cognome ed il nome dell n-simo componente del gruppo (secondo l ordine alfabetico). <cognome-n> e <nome-n> devono essere normalizzati secondo le seguenti regole 4
Si cancella dal nome/cognome ogni carattere non alfabetico (es. spazi, apostrofi,... ). Tutte le lettere vengono convertite in minuscolo Per esempio, il nome di file da usare per la relazione del gruppo formato dagli studenti Pippo Recupero, Gigi de Giggis e Pino D Amore, è A0910-1-damore_pino-degiggis_gigi-recupero_pippo.pdf A.3 Generatore di nomi di file/subject Per comodità dello studente, è disponibile all indirizzo http://www.diegm.uniud.it/bernardini/didattica/analisi/laboratorio/crea_nome.php una pagina HTML che permette di costruire in maniera automatica sia il nome da usare per l archivio, sia la stringa da usare per Subject:. 5