If the duty cycle is fixed you can just use the pulseIn() function to measure the length of the pulse. From that you can calculate everything else.
http://arduino.cc/en/Reference/PulseIn
#define MICROSECONDS_PER_MINUTE (60UL*1000000UL)
#define PULSES_PER_REVOLUTION 128 /* You'll have to figure this out */
int rpm(int inputPin) {
unsigned long pulseLength = pulseIn(inputPin, HIGH); // Microseconds per pulse
pulseLength = (pulseLength * 100) / 30; // Convert from 30% to 100%
unsigned long pulseRate = MICROSECONDS_PER_MINUTE / pulseLength; // Pulses per minute
return pulseRate / PULSES_PER_REVOLUTION;
}