I would like to decode a signal from a radio clock source, using an off the shelf receiver, and a microprocessor.

The output of the receiver is a digital level which encodes either carrier on or carrier off from the transmitted signal. 

The signal itself is encoded over a period of 1 minute with approx 2 bits per second, each bit being 100mS wide. (The signal is the NPL time signal, formally MSF Rugby)

It occured to me that the clock of my microprocessor will not be precise and that additionally the signal would be subject to noise and that my sampling approach should really take this into account.

I could...

(1) have an interrupt on a falling/rising edges

By detecting edges I could then time the width of the current value using the local clock.

(2) sample at period intervals, say every 20mS

If I sampled every 20mS I would get 5 samples per pulse

Neither of these approaches feel quite right. The first would cause a large number of interrupts if there was a burst of noise. The second seems like it could accumulate errors due to the local clock drift.

Any suggestions?

Thanks in advance