%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SYN – 9. cvičení: % TVAROVACÍ, GRANULAČNÍ A KONKATENAČNÍ SYNTÉZA % Modulační syntéza % 27. 11. 2025 % Roman Cmejla %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Potřebné soubory pro skript: % Tom.wav % Trumpet.wav % Trumpet2.wav % digits.rar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ----------------------------------------------------------- % Příklad 9.1: Tvarování pomocí nelineárních funkcí % a) Lineární funkce: y = k.*x; k = [-1 .. -0.5 .. 1] % b) Mocninná funkce s kladným sudým exponentem: y = x.^k; k = [2, 4, 6 .. 16] % c) Mocninná funkce s kladným lichým exponentem: y = x.^k; k = [3, 5 .. 15] % d) Kombinovaná mocninná funkce: y = x.^4 + x.^3 + x.^2 + x.^1 % e) Cyklometrická funkce: y = max(x) * atan(k * x / max(x)); k = [-1000 .. 1000] % f) Hyperbolická funkce: y = max(x) * tanh(k * x / max(x)); k = [-1000 .. 1000] % g) Nelineární funkce: y = x.*(abs(x) + k)./(x.^2 + (k-1)*abs(x) + 1); k = [-0.5 .. 100] % h) Kytarové zkreslení I: y = (1+n)*x./(1+n*abs(x)); n = 2*k/(1-k); k = [-1 .. 1] % i) Kytarové zkreslení II: y = x + (abs(x) > k) .* (abs(x) - k) .* sin(pi + 2*pi*x); k = [0.1 .. 1] % j) Funkce pro klarinet: použijte jednu z výše uvedených funkcí % k simulaci zvuku klarinetu. % Úkol: analyzujte převodní charakteristiky, průběhy vstupního a výstupního % signálu a amplitudová spektra. %% ----------------------------------------------------------- % Příklad 9.2: Čebyševovy polynomy % a) Vygenerujte vyšší harmonické složky pomocí Čebyševových polynomů: % T1 = x; T2 = 2*x.^2 - 1; T3 = 4*x.^3 - 3*x; … % b) Vytvořte obdélníkový signál pomocí Čebyševových polynomů. % c) Vytvořte trojúhelníkový signál pomocí Čebyševových polynomů. % d) Vytvořte pulzní signál pomocí Čebyševových polynomů. % Úkol: vykreslete generované průběhy a analyzujte jejich spektrální vlastnosti. %% ----------------------------------------------------------- % Příklad 9.3: Tvarovací syntéza žesťových nástrojů % Parametry: f0 = 440 Hz; doba = 1 s; fs = 44100 Hz % a) Vytvořte základní průběh. % b) Aplikujte tvarovací syntézu pomocí Čebyševových polynomů. % c) Přidejte amplitudovou obálku. % d) Vizualizujte průběh a jeho spektrogram. %% ----------------------------------------------------------- % Příklad 9.4: Tvarovací syntéza banja % Použijte amplitudové spektrum banja k návrhu převodní charakteristiky. % a) Odvoďte převodní funkci pomocí Čebyševových polynomů. % b) Syntetizujte zvuk banja pomocí nalezené převodní funkce. % c) Aplikujte exponenciální doznívací obálku. % d) Vizualizujte průběh a spektrogram výsledného signálu. %% ----------------------------------------------------------- % Příklad 9.5: Granulační syntéza % Parametry: fs = 20000 Hz; grain_length = 0.01 s; gap_between_grains = 0.01 s % a) Sestrojte jednotlivá zrna pomocí Gaussových funkcí. % b) Složte zrna do výsledné granulační textury. % c) Vizualizujte výsledek a analyzujte průběh jednotlivých zrn. %% ----------------------------------------------------------- % Příklad 9.6: Granulační syntéza ve frekvenční oblasti % Parametry zrn se mění (šířka pásma, střední frekvence, hustota). % a) Vytvořte zrna ve spektrální doméně s různou šířkou pásma a hustotou. % b) Proveďte inverzní FFT pro převod zrn do časové domény. % c) Složte zrna do výsledného signálu. % d) Vizualizujte spektrální a časové charakteristiky. %% ----------------------------------------------------------- % Příklad 9.7: Jednoduchá konkatenační syntéza českých číslovek % Použijte databázi záznamů číslic: % `nula.asc`, `jedna.asc`, `dve.asc`, `tri.asc`, `ctyri.asc`, % `pet.asc`, `sest.asc`, `sedu.asc`, `osum.asc`, `deve.asc`. % a) Vytvořte sekvenci číslic reprezentovanou konkatenační řečí. % b) Otestujte například sekvenci '9876543210'. % c) Vizualizujte průběh a spektrogram výsledného signálu. %% ----------------------------------------------------------- % Příklad 9.8: Principy granulační a konkatenační syntézy % Použijte soubor `trumpet.wav` nebo jiný vstupní signál. % a) Rekonstruujte signál v normálním pořadí. % b) Rekonstruujte signál v obráceném pořadí. % c) Rekonstruujte signál v náhodném pořadí zrn (oken). % d) Vizualizujte všechny verze rekonstruovaného signálu. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%