I'm not sure I understand the question, but if you have the exact waveform you want to recover, you can basically employ a matched filter to detect the existence of the signal in the acquired data.
This does not really constitute denoising, but if you have full knowledge of the signal and the noise functions, I'm not sure how denoising would be useful, as the best possible denoising would be to just subtract the noise from the function (assuming all noise is additive).
Edit I am not able to comment (not enough reputation) so I'm going to reply here.
Imagine that I have different classes of clean signals. I know what the signal looks like in each one of them. Before I turn the signal source on I listen for environmental noise. Then the signal source turns on but I don't know which kind of signal it is transmitting. Is there a way to denoise the noisy signal to be able to infer which signal was transmitted? – dr.doom 18 hours ago
I'm now very convinced that you are looking for a matched filter. In fact, that's exactly their application.
I don't exactly know how many types of signals you are using for this, but attempt the following:
- Acquire noisy data.
- Cross-correlate your noiseless signals one by one with the retrieved signal.
- Any sharp peak will indicate the presence of your signal in the retrieved data.
Now, there is a possibility that your signals are not orthogonal (that is, they are similar enough that you will measure some correlation for more than one signal), so in that case you should look for the largest correlation, and not just any signal that produces a correlation peak when matched with the data.