Tools related to FPV IMD (Intermodulation Distortion)
Java Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

ET's FPV IMD Tools

IMD (Intermodulation Distortion) is when two transmitters combine to produce interference at a third frequency.  For instance, if using the frequencies 5760, 5800 and 5840, any two of these will work well together, but when all three frequencies are in use IMD interferece is generated at 5760 and 5840 Mhz.  If the 5840 frequency is changed to 5880 then IMD interference is not seen at any of the three frequencies in use.  IMD is calculated with this formula:  F3 = (F1^2) - F2

See here for an rcgroups discussion thread on IMD.  (Also here and here.)  There's a video that demonstrates the effect.  Folks on the thread have generated spreadsheets to tabulate IMD values.  This looked like a good place for some software, so I've created the tools below:


The IMDTabler tool generates a table of IMD values for a given set of frequencies.  Table cells are colored red to indicate where IMD frequencies would cause interference with the given frequencies, and hovering the mouse cursor over a cell will show more information.  Each generated table is given an IMD rating, with a score of 100 corresponding to minimal IMD interference.

Clicking on one of the links at the top of the IMDTabler page will generate a table with the given frequencies.  To generate tables for the examples described above:  5760 5800 5840    5760 5800 5880


The FreqSetGen tool attempts to generate an optimal set of frequencies given a larger set of possible frequencies.  The tool has the following entry fields:

Number of frequencies:  The number of frequencies in each generated set.

Possible frequencies:  A list of all the possible frequencies to choose from.  Note that the larger this list is, the more time the generator processor will need to complete.

Mandatory frequencies:  An optional list of frequencies that mush appear in each generated set.

Minimum separation:  The minimum separation (in MHz) between values in the generated frequency sets.  Separation less than 37 MHz is likely to result in more interference between adjacent frequencies.

Maximum run time:  The maximum time allowed (in seconds) for a run of the generator process.  The largest value allowed is 600 (10 minutes).

So far the best 6-frequency set I've found is this one:

ETBest6:  5645 5685 5760 5805 5905 5945    IMD rating: 87    view

Removing 5805 yields a very good 5-frequency set:

ET6minus1:  5645 5685 5760 5905 5945    IMD rating: 100    view


The FreqSetGen tool can be run as a local application for faster processing and unlimited maximum-run-time.  (Java version 7 or later is required.)  The latest version of ET's IMD Tools may be downloaded from here.  FreqSetGen application usage:

FreqSetGen numFreq "possibleFreqs" "mandatoryFreqs" [minFreqSep] [maxRunSecs]


FreqSetGen 4 "5740 5760 5780 5800 5820 5840 5860 5880" "5740" 37 300

Source Code

The Java source is available in the distribution.  The web content is via Java servlets running on a Tomcat server.  If reusing the code, please provide attribution:  "ET's IMD Tools -"

Feedback:  If you have comments, questions or suggestions, do let me know, or post a comment to the thread on rcgroups.

Click here to contact me home page