There is no reason why you should not use a matched filter.
However make sure you understand that a symbol-spaced MF
generates sufficient statistics only for detection,
ie, not for (epoch) synchronization.
Also note that in the case of GMSK (CPM in general) a bank of MFs will
generate colored noise.
Another appropriate implementation of a front end projects the entire
oversampled signal to a set of orthonormal basis functions which has the
advantage of generating white noise samples for (simpler) further
Take a look at how a generic receiver for an arbitrary CPM
is developed in
There, the signal is first projected to its basis functions (which is
calculated by a helper python application in “fsm_utils.py”)
to generate a sufficient statistic which is then used in conjunction
with trellis decoding to do soft-decision sequence detection.
What is missing though is epoch and phase syncronization (to do at some