Witam wszystkich serdecznie,
Chciałem zwrócić się do Was z prośbą o pomoc. Otóż na studiach na przedmiot Telekomunikacja mam do zaprojektowania filtr dolnoprzepustowy, który jest liniowy i przepuszcza pasmo od 0 do 350Hz w Octave. Problem w tym, że kompletnie jestem w tym zielony a wykładowca skąpi (i to bardzo) swojej wiedzy na ten temat... Znalazłem jakiś poradnik, który mówi jak taki filtr zrobić, niestety jest opisany raczej skąpo. O ile rozumiem jak działa projektowanie takiego filtra (z użyciem metody fir1) to już nie rozumiem czy częstotliwość próbkowania oraz tłumienie pasma mają być dobrane do filtrowanej częstotliwości (tak tego też się nie dowiedziałem na wykładach). Kiedy dochodzi do wykreślania wykresu to już w ogóle jest dla mnie czarna magia i przestaję to ogarniać.
Czy ktoś z was mógłby zerknąć na ten kod z tutoriala i go opisać łopatologicznie tak, żeby każdy to w miarę zrozumiał? Ewentualnie czy da się ten przykład przerobić na potrzeby mojego zadania?
Kod z tutoriala:

close all;
clear all;
clf;


f1 = 10000;
f2 = 15000;
delta_f = f2-f1;
Fs = 192000;
dB  = 40;
N = dB*Fs/(22*delta_f);

f =  [f1 ]/(Fs/2)
hc = fir1(round(N)-1, f,'low')


figure
plot((-0.5:1/4096:0.5-1/4096)*Fs,20*log10(abs(fftshift(fft(hc,4096)))))
axis([0 20000 -60 20])
title('Filter Frequency Response')
grid on

x = sin(2*pi*[1:1000]*5000/Fs) +  sin(2*pi*[1:1000]*2000/Fs) + sin(2*pi*[1:1000]*13000/Fs)  + sin(2*pi*[1:1000]*18000/Fs);

sig = 20*log10(abs(fftshift(fft(x,4096))));
xf = filter(hc,1,x)

figure
subplot(211)
plot(x)
title('Sinusoid with frequency components 2000, 5000, 13000, and 18000 Hz')


subplot(212)
plot(xf)
title('Filtered Signal')
xlabel('time')
ylabel('amplitude')


x= (x/sum(x))/20
sig = 20*log10(abs(fftshift(fft(x,4096))));
xf = filter(hc,1,x)

figure
subplot(211)
plot((-0.5:1/4096:0.5-1/4096)*Fs,sig)
hold on
plot((-0.5:1/4096:0.5-1/4096)*Fs,20*log10(abs(fftshift(fft(hc,4096)))),'color','r')
hold off
axis([0 20000 -60 10])
title('Input to filter - 4 Sinusoids')
grid on
subplot(212)
plot((-0.5:1/4096:0.5-1/4096)*Fs,20*log10(abs(fftshift(fft(xf,4096)))))
axis([0 20000 -60 10])
title('Output from filter')
xlabel('Hz')
ylabel('dB')
grid on

A to link do samego tutoriala:
https://www.allaboutcircuits.com/technical-articles/design-of-fir-filters-design-octave-matlab/
Za wszelką pomoc dziękuję i pozdrawiam