What filter would you recommended to clean this signal without affecting the rise and fall times of the PWM (such as a LPF would do)?
Do you simply need to measure the frequency and duty ratio of the clean signal, or do you need to extract in real time a cleaner version of your signal from the noisy version?
If you merely need to make measurements, there are mathematical tools that can extract that information from a noisy signal. If you do not need PWM data on a cycle by cycle basis, but can assume it is constant over a number of cycles, you can get greater precision by analyzing a more cycles. A Digital Signal Processor (DSP) chip could be a solution to extracting that information fairly quickly.
If you need to reconstruct a cleaner version of the signal for use in real time, and the amplitude of the PWM signal is greater than the amplitude of the noise, and you know the amplitude of the PWM signal, then you can use a Schmitt trigger to clean up the signal.
If the amplitude of the PWM signal is not known in advance, or the noise has an approximately equal or greater amplitude than the PWM signal, then it will be challenging to clean up the noisy signal in real time. However, prior knowledge of the sorts of noise present may aid the attempt. For example Gaussian noise poses different challenges than noise that might come from fixed frequency noise sources.