%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SYN - náměty pro 1.cvičení: Úvod do problematiky % 24. září 2025 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ----------------------------------------------------------- % PŘÍKLAD 1.1: Aliasing - chirp signál % Vysvětlete vznik signálu y fs = 10000; okno = 512; prekryti = 500; NFFT = 1024; doba = 10; % zacatek v F0=0, v T1=1 sekunde dosahne F1=5000 Hz % y = chirp(t,F0,T1,F1) t = 0:1/fs:doba-1/fs; y=chirp(t,0,1,5000); ----------------------------------------------------------- % PŘÍKLAD 1.2: Aliasing - audio signal % Vysvětlete rozdíly mezi signály y1 a y2 [x,fs]=wavread('tom'); % fs = 44100 Hz okno = 512; prekryti = 500; NFFT = 1024; DF = 20; % decimacni faktor y1 = x(1:DF:end); % fs=2205 Hz pro DF = 20 y2 = decimate(x,20); ----------------------------------------------------------- kvant.m function y=kvant(x,b) y = (round(2^(b-1) *x+.5)-.5)/2^(b-1); ----------------------------------------------------------- % PŘÍKLAD 1.3: Kvantování sinusovky % Zobrazte 1 periodu kvantované sinusovky % a) 1-bit % b) 2-bity % c) 3-bity fs = 22050; f0 = 50; doba = .02; ----------------------------------------------------------- % PŘÍKLAD 1.4: Kvantování - audio signál % Zobrazte a poslouchejte "Tom's dinner" při různém kvantování [x,fs]=audioread('tom.wav'); ----------------------------------------------------------- % PŘÍKLAD 1.5: Amplitudová obálka - perkusní zvuky % Pro generování perkusních zvuků (syntetických zvonů, bicích, ...) % se často používá exponenciálních obálek. % Generujme tón „a1“ s exponenciálně tlumenou obálkou. % Časovou konstantu, která určuje dobu poklesu, budeme postupně měnit od 0,3 s až do 1 ms. % Výsledné signály si poslechneme a zobrazíme v časové oblasti. % Povšimněme si, jak se zkracující se časovou konstantou získává zvuk charakter kliknutí. fs = 16000; % vzorkovaci frekvence doba = 0.5; % cas.trvani signalu f0 = 440; % frekvence harmonickeho signalu t = 0:1/fs:doba-1/fs; % casova osa tau = [ 0.3 0.1 0.03 0.01 0.003 0.001]; % casove konstanty obalky ----------------------------------------------------------- % PŘÍKLAD 1.6: Amplitudová obálka ADSR - neperkusní zvuky % % Časové obálky syntetických hudebních nástrojů se často modelují jako % posloupnost čtyř časových úseků: % A - attack (náběh) % D - decay (pokles) % S - sustain (průběh) % R - release (doznívání) % % % 1.0_| % | /\ % | / \ % 0.5_| / \________ % | / \ % | / \ % 0_|/__________________\______ % | A | D| S | R| % 0 V V V V % a1 a2 a3 a4 % % Generujme tón „a1“ jako harmonický signál o délce 1 sekundy % a vytvořme časovou obálku typu ADSR složenou z lineárních úseků. % Sledujme vliv: prodlužování doby náběhu A a poklesu D (zvyrazneni nabehu v case) fs = 8000; f0 = 440; doba_celkem = 1; doba_A = [0.001 0.003 0.01 0.03 0.1 0.3]; doba_D = [0.001 0.003 0.01 0.03 0.1 0.3]; doba_R = 0.02; doba_S = doba_celkem-doba_A-doba_D-doba_R; a1 = 1; a2 = 0.3; a3 = 0.2; a4 = 0; ----------------------------------------------------------- % PŘÍKLAD 1.7: Amplitudová obálka ADSR - neperkusní zvuky % % Generujme tón „a1“ jako harmonický signál o délce 1 sekundy % a vytvořme časovou obálku typu ADSR složenou z lineárních úseků. % Sledujme vliv: změny amplitudy nástupu A (zvyrazneni nabehu v amplitude) y = [ ]; fs = 8000; f0 = 440; doba_celkem = 1; doba_A = 0.1; doba_D = 0.1; doba_R = 0.1; doba_S = doba_celkem-doba_A-doba_D-doba_R; a1 = [0.15 0.3 0.45 0.6 0.75 1.0]; a2 = 0.15; a3 = 0.15; a4 = 0; ----------------------------------------------------------- % PŘÍKLAD 1.8: Amplitudová obálka ADSR - neperkusní zvuky % % Generujme tón „a1“ jako harmonický signál o délce 1 sekundy % a vytvořme časovou obálku typu ADSR složenou z lineárních úseků. % Sledujme vliv: změny amplitudy trvání průběhu S % (zvyrazneni nabehu poklesem ustal. casti) y = [ ]; fs = 8000;f0 = 440; doba_celkem = 1; doba_A = 0.1; doba_D = 0.1; doba_R = 0.1; doba_S = doba_celkem-doba_A-doba_D-doba_R; a1 = 1; a2 = [0.9 0.75 0.6 0.45 0.3 0.15]; a3 = [0.9 0.75 0.6 0.45 0.3 0.15]; a4 = 0; ----------------------------------------------------------- % PŘÍKLAD 1.9: Obálka typu náběh - útlum n = 0.5; % n = 0.01; 0.1; 0.7; tau = 0.1; % tau = 0.4; 0.1; 0.7; O = t.^n .* exp(-t./tau); O = O/max(O); ----------------------------------------------------------- % PŘÍKLAD 1.10: Aperiodický překmit (perkuse) tau1 = 0.05; tau2 = 0.15; O = exp(-t/tau2)-exp(-t/tau1); O = O/max(O);