Lezione 18 Modulazione di frequenza Programmazione timbrica - Prof. Luca A. Ludovico Introduzione • Una modulazione è l’alterazione dell’ampiezza, della frequenza o della fase di un oscillatore provocata da un altro segnale. L’oscillatore modulato viene detto portante (carrier), l’oscillatore che modula viene detto modulante (modulator). • In generale, la modulazione comporta la comparsa di nuove frequenze che si aggiungono – o talvolta sostituiscono - allo spettro della portante. Tali frequenze vengono dette laterali, perché appaiono in modo simmetrico sopra e sotto la frequenza della portante. • Se l’oscillatore modulante agisce sul parametro di frequenza del segnale portante, ha luogo la modulazione di frequenza. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Modulazione di frequenza • Scegliendo due segnali sinusoidali, se l’ampiezza del segnale modulante è 0 non si verifica modulazione e rimane solo l’oscillazione della portante. Aumentando l’ampiezza della modulante si amplifica il periodico effetto di deviazione verso il grave e verso l’acuto della frequenza della portante. • Il massimo mutamento nella frequenza del segnale portante è detto deviazione di picco (peak frequency deviation) e si misura in hertz. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Generazione di bande laterali • Mentre con la modulazione ad anello e di ampiezza da due segnali sinusoidali puri si ottiene una coppia di frequenze laterali, con la modulazione di frequenza si ottengono virtualmente infinite coppie. • Nel caso di due segnali sinusoidali di frequenza fm = 3 Hz e fp = 1000 Hz le bande laterali che compaiono sono: fp - fm = 997 Hz fp - 2fm = 994 Hz fp - 3fm = 991 Hz … Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza fp + fm = 1003 Hz fp + 2fm = 1006 Hz fp + 3fm = 1007 Hz … FM con modulante LFO: effetto di vibrato • In analogia con la sintesi AM, dove l’utilizzo di un Low Frequency Oscillator come segnale modulante produceva l’effetto di tremolo, in questo caso si genera un effetto di vibrato. – Si pensi al dito del violinista che blocca la corda. • L’ampiezza della sinusoide modulante determina la deviazione di picco, la frequenza della sinusoide modulante determina la periodicità con cui avviene il ciclo di deviazione. Per quanto riguarda l’ampiezza, in termini musicali è più corretto definirla in valore percentuale che assoluto: si pensi a quanto è differente la percezione di 2 Hz su un La a 220 Hz (circa 0.9%) rispetto a un La a 880 Hz (circa 0.23%). • Esempio: kvibr oscili 2, 3 Si noti che per il risultato è sufficiente una variabile di controllo. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Indice di modulazione • Teoricamente sono sempre presenti tutte le frequenze somma e differenza fino all’infinito, ma per essere percepite esse devono avere un’ampiezza sufficiente. • Il numero di bande udibili dipende dall’indice di modulazione M, definito come la deviazione di picco D diviso la frequenza della modulante fm : M = D / fm e quindi D = M ∙ fm • Si nota che M cresce all’aumentare di D e al diminuire di fm. Come caso particolare, M = 1 se D = fm Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Indice di modulazione e larghezza di banda • Indice di modulazione M = D / fm • Empiricamente si nota che al crescere di M aumenta il numero di bande udibili, sottraendo energia alla portante (e alle frequenze laterali più prossime) per distribuirla alle estremità. • Regole di calcolo approssimative: – il numero di coppie che hanno più di 1/100 dell’ampiezza della portante (ossia tra 0 e -40db) è approssimativamente M + 1 [De Poli, 1983] – la larghezza di banda totale è circa 2 ∙ (D + fm) [Chowning, 1973] Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Indice di modulazione e larghezza di banda Variazione dello spettro in funzione di M = D / fm, con D variabile e fm costante. In accordo con le regole empiriche, la larghezza di banda totale, pari circa a 2 ∙ (D + fm), al crescere di M – quindi anche di D - va via via aumentando. Variazione dello spettro in funzione di M = D / fm, con D costante e fm variabile. La larghezza di banda totale, pari circa a 2 ∙ (D + fm), al crescere di M (e quindi al decrescere di fm) va via via diminuendo. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Osservazione • Creando una serie teoricamente infinita di bande laterali, questa tecnica permette con due soli oscillatori di creare timbri molto ricchi. • Cosa succede quando somme e differenze comportano la creazione di frequenze cui è associata un’ampiezza percepibile, ma il cui valore è negativo, o supera il massimo valore di frequenza ricostruibile a una data frequenza di campionamento? • Si ha il fenomeno della riflessione (foldover), che comporta un ribaltamento simmetrico delle frequenze in questione rispetto al valore limite scavalcato. Le frequenze «riflesse» si miscelano con quelle non riflesse, arricchendo ulteriormente il timbro. Tali componenti sono però in controfase, quindi in caso di sovrapposizione si annullano parzialmente. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Foldover rispetto alla frequenza di Nyquist • Si ipotizzi che sr = 10 kHz, e una delle frequenze somma risultanti sia flat = 7 kHz. Poiché fNyq = 5 kHz, la frequenza viene ribaltata simmetricamente nell’intervallo [0..5000] e quindi diventa un alias a 3 kHz, in controfase rispetto all’originale. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Esempio e commenti • Modulazione di frequenza con 2 segnali sinusoidali, effettuata specificando (nello score) frequenza e ampiezza di portante e modulante, e in alternativa frequenza e ampiezza della portante + frequenza della modulante e indice di modulazione: → 18_01_fm.csd • Score ; i1 0 i1 3 i1 6 i1 9 2.9 . . . fmod 1000 1000 1000 1000 Amod 10000 10000 10000 10000 fpor 3 3 3 3 Apor 30 90 150 3000 • Nei primi 3 suoni si avverte glissando ascendente/discendente: perché? Il quarto suono contiene un’evidente variazione timbrica. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Esempio • Nel seguente esempio viene fatto variare linearmente l’indice di modulazione all’interno dell’emissione di ciascun evento sonoro. La variazione lo porta da 0 (nessuna modulazione) a un valore massimo di ampiezza per la sinusoide modulante specificato nello score. • A seconda della deviazione di picco e della frequenza della portante, a un certo punto si avvertono gli effetti di foldover, fino alla completa distorsione del timbro iniziale. • Esempio: → 18_02_indice_modulaz.csd Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza FM tramite opcode: foscil e foscili • La modulazione di frequenza con oscillatori può essere ottenuta anche attraverso gli appositi opcode foscil e foscili (interpolazione lineare). • Sintassi: ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs], ove – xamp è l’ampiezza – kcps è la frequenza nominale – xcar è il fattore moltiplicativo da applicare a kcps per ottenere la frequenza della portante – xmod è il fattore moltiplicativo da applicare a kcps per ottenere la frequenza della modulante – kndx è l’indice di modulazione – ifn (obbligatorio) è l’indice di una tabella, che normalmente contiene un ciclo di sinusoide pura • Esempio: → 18_03_foscili.csd Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Commenti sui moltiplicatori • Sintassi: ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs], ove kcps è la frequenza nominale, xcar è il fattore moltiplicativo da applicare a kcps per ottenere la frequenza della portante e xmod è il fattore moltiplicativo da applicare a kcps per ottenere la frequenza della modulante. • Quindi, per avere fp = 200 Hz e fm = 350 Hz, si possono assegnare indifferentemente i seguenti valori: – kcps = 1, xcar = 200, xmod = 350: non si sfrutta la frequenza nominale – kcps = 50, xcar = 4, xmod = 7: la frequenza nominale è il MCD tra le frequenze di portante e modulante – kcps = 200, xcar = 1, xmod = 1,75: si evidenzia il rapporto di frequenza tra portante e modulante, il che aumenta la leggibilità in merito alla formazione di famiglie spettrali (vedi prossima slide) Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Famiglie spettrali • Se il Massimo Comun Divisore tra frequenza portante e modulante corrisponde a una frequenza udibile, il suono risultante ha spettro armonico e la frequenza fondamentale apparente del suono risultante è proprio il MCD. • Si parla di frequenza apparente perché potrebbe anche mancare dallo spettro, ma l’orecchio la ricostruirebbe in presenza di un numero adeguato di armoniche (sempre che non manchino troppe armoniche di ordine basso). – Un esempio è fp = 250 Hz, fm = 350 Hz, viene percepita ffond = MCD = 50 Hz ma nello spettro non c’è. • Se non esiste MCD, come nel caso di numeri primi tra loro, o esiste ma cade al di fuori della banda audio (indicativamente MCD < 20), lo spettro risultante è inarmonico. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Famiglie spettrali: casi particolari • Se fm = fp sono presenti tutte le armoniche. Esempio: fp = 100 Hz, fm = 100 Hz, ffond = MCD = 100 Hz Bande laterali: fp - fm = 0 Hz fp + fm = 200 Hz fp - 2fm = -100 Hz (cioè 100 Hz in c.f.) fp + 2fm = 300 Hz fp - 3fm = -200 Hz (cioè 200 Hz in c.f.) fp + 3fm = 400 Hz … … • Se fm = 2 ∙ fp sono presenti solo le armoniche dispari. Esempio: fp = 100 Hz, fm = 200 Hz, ffond = MCD = 100 Hz Bande laterali: fp - fm = -100 Hz (cioè 100 Hz in c.f.) fp - 2fm = -300 Hz (cioè 300 Hz in c.f.) fp - 3fm = -500 Hz (cioè 500 Hz in c.f.) … Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza fp + fm = 300 Hz fp + 2fm = 500 Hz fp + 3fm = 700 Hz … Famiglie spettrali: casi particolari • Se fm = (11/35) fp ? Esempio: fp = 550 Hz, fm = 700 Hz, ffond = MCD = 50 Hz Bande laterali: fp - fm = -150 Hz fp + fm = 1250 Hz fp - 2fm = -850 Hz fp + 2fm = 1950 Hz fp - 3fm = -1150 Hz fp + 3fm = 2650 Hz fp - 4fm = -2250 Hz fp + 4fm = 3350 Hz … … Anche se la fondamentale percepita dovrebbe essere a 50 Hz, mancando troppe armoniche di ordine basso (la II, dalla IV alla XVII, ecc.) si avverte un accordo e non un singolo suono a spettro armonico. • Per ottenere uno spettro inarmonico, si scelgono numeri primi tra loro o con MCD < 20. • Esempi: → 18_04_famiglie_spettrali.csd Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza FM con portanti e con modulanti multiple • Costruendo uno strumento FM basato su un singolo oscillatore che modula contemporaneamente n oscillatori portanti, ciascuno con una propria ampiezza e frequenza, si genera un suono dallo spettro molto più complesso. I parametri possono inoltre variare nel tempo. • La complessità dello spettro è legata all’indice di modulazione: se l’indice aumenta, aumenta la larghezza di banda dello spettro. • Esempio: → 18_05_nport_1mod.csd • Analogamente, è possibile costruire strumenti FM complessi in cui n oscillatori, con inviluppi d’indice di modulazione differenti, modulano un singolo oscillatore portante con inviluppo d’ampiezza indipendente. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Simulazione di suoni strumentali • Fin dai primordi dell’utilizzazione della FM in campo musicale, se ne è apprezzata la caratteristica di poter ottenere suoni complessi (con timbri molto ricchi) partendo da un numero esiguo di oscillatori. • Ad esempio, John Chowning (Stanford University) nei primi anni ‘50 ottenne con 2 oscillatori un timbro che in sintesi additiva ne avrebbe richiesti 50. • Il sistema fu brevettato e utilizzato da Yamaha per costruire i primi sintetizzatori in FM, tra cui il GS1, e il celeberrimo DX7 del 1983. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Simulazione di suoni strumentali Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza Simulazione di suoni strumentali • Simulazione del timbro di clarinetto: questo strumento produce quasi esclusivamente armoniche dispari. Lo si può ottenere in FM con una modulante la cui frequenza sia il doppio di quella della portante. • Simulazione del timbro degli ottoni: i suoni prodotti da tromba, corno e trombone iniziano con un suono puro (sinusoide) per evolvere poi rapidamente verso un spettro complesso. Questo effetto si può simulare iniziando con un indice di modulazione nullo e aumentandolo rapidamente fino al valore soglia 4 durante l’attacco, per poi farlo decrescere a 0. L’effetto può essere migliorato introducendo una «incertezza» nella frequenza in fase di attacco. • Simulazione del timbro di strumenti a intonazione indeterminata (campane, gong, piatti): si usa un rapporto irrazionale tra le frequenze di portante e modulante, generando spettro inarmonico. Programmazione timbrica - Prof. Luca A. Ludovico Modulazione di frequenza