diff --git a/src/wav/question_2_4.m b/src/wav/question_2_4.m new file mode 100644 index 0000000000000000000000000000000000000000..83e29b32e2adee0c2ee8521ffedc669a33f6c23c --- /dev/null +++ b/src/wav/question_2_4.m @@ -0,0 +1,34 @@ +Fs = 44100; T = 1; +t = linspace(0, T, Fs*T); +f0 = 220; +source = sawtooth(2*pi*f0*t); % signal riche +env = linspace(0,1,0.05*Fs); % attaque +env = [env, ones(1, length(t)-length(env))]; % sustain simple +x = source .* env; % signal source modulé + +%% 🔻 Filtre 1 : FIR ordre 20, coupure 1000 Hz +d1 = designfilt('lowpassfir', ... + 'FilterOrder', 20, ... + 'CutoffFrequency', 1000, ... + 'SampleRate', Fs); +y1 = filter(d1, x); + +%% 🔻 Filtre 2 : FIR ordre 100, plus sélectif +d2 = designfilt('lowpassfir', ... + 'FilterOrder', 100, ... + 'CutoffFrequency', 1000, ... + 'SampleRate', Fs); +y2 = filter(d2, x); + +%% 🔻 Filtre 3 : IIR Butterworth ordre 6 +d3 = designfilt('lowpassiir', ... + 'DesignMethod', 'butter', ... + 'FilterOrder', 6, ... + 'HalfPowerFrequency', 1000, ... + 'SampleRate', Fs); +y3 = filter(d3, x); + +%% 🎧 Écoute comparative +disp('Filtre FIR ordre 20'); soundsc(y1, Fs); pause(T+1); +disp('Filtre FIR ordre 100'); soundsc(y2, Fs); pause(T+1); +disp('Filtre IIR ordre 6'); soundsc(y3, Fs); pause(T+1);