[ x, Fs ] = audioread("0964590.wav"); Fs X = fftshift(fft(x)); dF = Fs / length(X); dOmega = 2*pi / length(X); f = -Fs/2 : dF : (Fs-dF)/2; % opd 2.1 omega = -pi : dOmega : pi-dOmega; % opd 2.2 % plot(f, 20 * log10(abs(X))); % opd 2.1 %plot(omega, 20 * log10(abs(X))); % opd 2.2 %title('Frequentiespectrum |X(f)|'); %xlabel('f (Hz)'); %ylabel('|X| (dB)'); %grid; Oc = 0.461983; Og = 0.01; filterOrde = 128; Oa = Oc - 0.5*Og; Ob = Oc + 0.5*Og; H = ones(1, length(X)); for i = round((pi-Oa)/dOmega) : round((pi-Ob)/dOmega) H(i) = 0; end for i = round((pi+Oa)/dOmega) : round((pi+Ob)/dOmega) H(i) = 0; end %plot(omega, H); %title('filter ding |H(f)|'); %xlabel('f (Hz)'); %ylabel('|X| (dB)'); %grid; h = zeros(1, length(filterOrde)); j = 1i; n = 0 : filterOrde/2; %h = 1/(2*pi) * ( exp(i*Ob*n) - exp(i*Oa*n) + exp(i*-Ob*n) - exp(i*-Oa*n) )/exp(j*n); %h(n==0) = 1/(2*pi) * Og*2; h = ( exp(j*Oa*n) - 1 ... + exp(j*(2*pi)*n) - exp(j*(2*pi-Oa)*n) ... + exp(j*(2*pi-Ob)*n) - exp(j*Ob*n) ... )./(j*n*(2*pi)); h(n==0) = 1/(2*pi) * 2*pi - Og*2; %plot(0 : filterOrde/2, h); Fa = Oa * Fs/(2*pi) Fb = Ob * Fs/(2*pi) freqz(h, 1, 0 : Fs/2, Fs); conv()