#!/usr/bin/env perl # channel 253 (98.5) must also meet I.F spacing for TV channel 6 @a2a = (10,31,72,115); @a2b1 = (12,48,96,143); @a2b = (15,69,113,178); @a2c3 = (12,42,89,142); @a2c2 = (15,55,106,166); @a2c1 = (22,75,133,200); @a2c = (29,95,165,226); @b12b1 = (14,50,114,175); @b12b = (17,71,145,211); @b12c3 = (14,50,114,175); @b12c2 = (17,56,134,200); @b12c1 = (24,77,161,233); @b12c = (31,105,193,259); @b2b = (20,74,169,241); @b2c3 = (17,71,145,211); @b2c2 = (20,74,169,241); @b2c1 = (27,79,195,270); @b2c = (35,105,217,274); @c32c3 = (14,43,99,153); @c32c2 = (17,56,117,177); @c32c1 = (24,76,144,211); @c32c = (31,96,176,237); @c22c2 = (20,58,130,190); @c22c1 = (27,79,158,224); @c22c = (35,105,188,249); @c12c1 = (34,82,177,245); @c12c = (41,105,209,270); @c2c = (48,105,241,290); sub Miles { $km / 1.609; } sub Print { $one =~ tr/a-z/A-Z/; $two =~ tr/a-z/A-Z/; printf "\n\nMinimum distance separation requirements for FM class %s to %s\n",$one,$two; print "--------------------------------------------------------------\n\n"; printf " Co-Channel : %.2f km (%.2f miles)\n\n",$km = pop(@a),&Miles; printf " +/- 200 kHz : %.2f km (%.2f miles)\n\n",$km = pop(@a),&Miles; printf " +/- 400 or +/- 600 kHz : %.2f km (%.2f miles)\n\n",$km = pop(@a),&Miles; printf " 10.6 or 10.8 MHz : %.2f km (%.2f miles)\n",$km = pop(@a),&Miles; print " (I.F channel)\n\n"; } print "\n\n\t\tFM Station Separation Standards\n\n"; while (!$one) { SEL: print "Enter class of station ONE (a,b,b1,c,c1,c2,c3): "; chomp($one = ); } print "\n"; while (!$two) { print "Enter class of station TWO (a,b,b1,c,c1,c2,c3): "; chomp($two = ); } $ans = $one . $two; if ($ans eq "aa" ) { &Print(@a = @a2a); } elsif ($ans eq "ab1" or $ans eq "b1a") { &Print(@a = @a2b1); } elsif ($ans eq "ab" or $ans eq "ba") { &Print(@a = @a2b); } elsif ($ans eq "ac3" or $ans eq "c3a") { &Print(@a = @a2c3); } elsif ($ans eq "ac2" or $ans eq "c2a") { &Print(@a = @a2c2); } elsif ($ans eq "ac1" or $ans eq "c1a") { &Print(@a = @a2c1); } elsif ($ans eq "ac" or $ans eq "ca") { &Print(@a = @a2c); } elsif ($ans eq "b1b1") { &Print(@a = @b12b1); } elsif ($ans eq "b1b" or $ans eq "bb1") { &Print(@a = @b12b); } elsif ($ans eq "b1c3" or $ans eq "c3b1") { &Print(@a = @b12c3); } elsif ($ans eq "b1c2" or $ans eq "c2b1") { &Print(@a = @b12c2); } elsif ($ans eq "b1c1" or $ans eq "c1b1") { &Print(@a = @b12c1); } elsif ($ans eq "b1c" or $ans eq "cb1") { &Print(@a = @b12c); } elsif ($ans eq "bb") { &Print(@a = @b2b); } elsif ($ans eq "bc3" or $ans eq "c3b") { &Print(@a = @b2c3); } elsif ($ans eq "bc2" or $ans eq "c2b") { &Print(@a = @b2c2); } elsif ($ans eq "bc1" or $ans eq "c1b") { &Print(@a = @b2c1); } elsif ($ans eq "bc" or $ans eq "cb") { &Print(@a = @b2c); } elsif ($ans eq "c3c3") { &Print(@a = @c32c3); } elsif ($ans eq "c3c2" or $ans eq "c2c3") { &Print(@a = @c32c2); } elsif ($ans eq "c3c1" or $ans eq "c1c3") { &Print(@a = @c32c1); } elsif ($ans eq "c3c" or $ans eq "cc3") { &Print(@a = @c32c); } elsif ($ans eq "c2c2") { &Print(@a = @c22c2); } elsif ($ans eq "c2c1" or $ans eq "c1c2") { &Print(@a = @c22c1); } elsif ($ans eq "c2c1" or $ans eq "c1c2") { &Print(@a = @c22c1); } elsif ($ans eq "c2c" or $ans eq "cc2") { &Print(@a = @c22c); } elsif ($ans eq "c1c1") { &Print(@a = @c12c1); } elsif ($ans eq "c1c" or $ans eq "cc1") { &Print(@a = @c12c); } elsif ($ans eq "cc") { &Print(@a = @c2c); } else { undef $one; undef $two; print "\n"; goto SEL; }