How to design digital equivalent for a lowpass Bessel filter (Thiran filter)?

79 views (last 30 days)
In the process of applying a lowpass Bessel filter to my signal, I realized that besself function does not support the design of digital Bessel filters and the bilinear function can be used to convert an analog filter into a digital form, except for Bessel filters. The digital equivalent for Bessel filters is the Thiran filter. The only thing I know for my filter is that it should have less than 5GHz bandwidth ( let's say 3GHz bandwidth). I do appreciate if someone could help me write the code in Matlab. The code which I have so far is:
%lowpass filter
sig = MY SIGNAL;
sig_length = 5000001; % my signal length
fs = 10000e9 % sampling rate
fc = 3e9; % cutt off frequency
order = 4;
wo = 2*pi*fc;
[z,p,k] = besself(order, wo,'low'); % zero, pole and gain form
% Convert to digital fileter
[zd,pd,kd] = bilinear(z,p,k,fs); % z-domain zero/pole/gain
[sos,g] = zp2sos(zd,pd,kd); % convert to second order section
filteredSignal = filtfilt(sos, g, sig);

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!