Both gives quite good response:As separate filters:
LPF (1st order)LPF (2nd order)Code: Select all
0.495742728952490 0.201393367086572 1.000000000000000 -0.304426466162266
HPF (4th order, same for both)Code: Select all
0.495742728952490 0.602608294382985 0.158790522194091 1.000000000000000 0.504894384885179 -0.252335432834296
As combined filters:Code: Select all
1.18767698102009 -4.75070792408037 7.12606188612055 -4.75070792408037 1.18767698102009 1.000000000000000 -3.888553450107600 5.667527095167571 -3.669386132781579 0.890412497063071
5th order:6th order:Code: Select all
[0.588402730019084 -2.114578549207340 2.574286896638522 -0.919416694862366 -0.367726753456895 0.239032370868995] [1.0 -4.193437345479311 6.853084418397484 -5.397323870680988 2.009149234848459 -0.271472430592242]
Code: Select all
[[0.5884027300190836 -1.6384145461593100 0.8580879826180272 1.1837389307393180 -1.1416401766192728 -0.0386320187694699 0.1884570981716236] [1.0 -3.384188885614779 3.453610828634393 0.171625555633360 -2.392296872830998 1.376227862809258 -0.224978476938553]
https://i.postimg.cc/BZN4gRNf/e0Ow9.png
(green = analog model, red = 5th order filter, black = 6th order filter, small window shows the difference of responses when approaching the Nyqvist frequency)
I noticed that compared to analog model, "peak" around 2.5kHz is little off but, supposing, it is possible to fix by changing the dc gains of HPF and LPF a bit. There also seems to be something going on at below 2 Hz (maybe because of using c2d(.. 'matched')) but, as the magnitude level is below -120dB it shouldn't be an issue ... (maybe mapping using BLT could improve that ...?).
As I'm noobie with DSP/Matlab/Octave, how can one find error (curve) against analog model ?
EDIT: Responses for low sample rates (4, 8, 16 and 32 kHz):
https://i.postimg.cc/VLfL7xnM/9tNJa.png