Are the pulses analog or digital? I thought they are digital so far.
It would be between 300ms on(high) 300ms off(low) and 1200ms on(high) and 1200ms off(low)
If they are digital which is 1V or less for LOW and 3V or more for HIGH....
And you check the pin once every 50ms, a very long time to Arduino, then;
5 or 6 reads the same before change is a short HIGH or LOW pulse which maybe needs to be paired HIGH and LOW.
23 or 24 reads for a long HIGH or LOW pulse.
say 30+ reads the same is steady HIGH or LOW?
You don't have to catch the edges when the flats are so wide and so different.
Mitsubishi Labs has a white paper out about led-to-led communication that does that, only much much faster. They read pulses 100's of usecs wide at 20usec intervals. 3 or 4 is a short, 7 or more is a long. At those speeds they are able to get solid bi-directional comms between 2 leds held 2 or 3 cm apart. It's still wireless.