Detecting a 10kHz pulse train

I have a 433MHz transmitter and receiver which I want to use to send data between two Arduinos. The RX is quite noisy unless it is receiving a signal. To be able to separate a signal from the noise I want to send say 10 cycles of a 10kHz signal, if this is received then the what follows is the data.

I could detect the 10kHz using an interrupt and timing the pulse width and counting the number of valid pulses but my question is, is there a better way? For example is it possible to use the PWM as an input to do this?

What method are you going to use to detect the actual data? Seems like you could take advantage of whatever code you have already written.

Presumably you already have some scheme to encode a data message over the IR channel. In that case I'd look to include some standard preamble/postamble in that encoding scheme so that the receiver can determine that a message is about to start. If you include a CRC or similar in the message, you can also discard spurious or corrupted messages.

Sorry but the short answer is I don't have a particular protocol for sending data in mind, actually "data" is probably too grand a term for it anyway, more like an instruction to do something.

But for now I just want to get past separating real signals from noise and was wondering if there was a smarter way than writing code to measure the pulse durations to determine that a 10kHz pulse train has arrived?