A method for operating a communication device so as to mitigate intermodulation interference to a signal, comprising: continuously monitoring a plurality of communication channels by the communication device; using a noise floor level estimate of the communication device to detect when the communication device is under an influence of high interference; determining an optimal level of attenuation to be applied by a variable attenuator of the communication device's receiver so as to mitigate the influence of intermodulation interference due to an interference signal; and selectively adjusting an amount of attenuation being applied by the variable attenuator to achieve the optimal level of attenuation; wherein the optimal level of attenuation is determined by: performing attenuation adding operations by the variable attenuator to iteratively add an incremental amount of attenuation; and measuring a noise level difference between a noise level of a current iteration of the attenuation adding operations and a noise floor level of a previous iteration of the attenuation adding operations, characterized in that the optimal level of attenuation is further determined by: calculating a slope of the signal, where the slope is defined by the change in noise power over a change in attenuation; comparing the slope to a threshold value Y; and considering the optimal level of attenuation to be a previous level of attenuation applied by the variable attenuator when the slope is less than the threshold value Y. continuously monitoring a plurality of communication channels by the communication device; using a noise floor level estimate of the communication device to detect when the communication device is under an influence of high interference; determining an optimal level of attenuation to be applied by a variable attenuator of the communication device's receiver so as to mitigate the influence of intermodulation interference due to an interference signal; and selectively adjusting an amount of attenuation being applied by the variable attenuator to achieve the optimal level of attenuation; wherein the optimal level of attenuation is determined by: performing attenuation adding operations by the variable attenuator to iteratively add an incremental amount of attenuation; and measuring a noise level difference between a noise level of a current iteration of the attenuation adding operations and a noise floor level of a previous iteration of the attenuation adding operations, characterized in that the optimal level of attenuation is further determined by: calculating a slope of the signal, where the slope is defined by the change in noise power over a change in attenuation; comparing the slope to a threshold value Y; and considering the optimal level of attenuation to be a previous level of attenuation applied by the variable attenuator when the slope is less than the threshold value Y. performing attenuation adding operations by the variable attenuator to iteratively add an incremental amount of attenuation; and measuring a noise level difference between a noise level of a current iteration of the attenuation adding operations and a noise floor level of a previous iteration of the attenuation adding operations, characterized in that the optimal level of attenuation is further determined by: calculating a slope of the signal, where the slope is defined by the change in noise power over a change in attenuation; comparing the slope to a threshold value Y; and considering the optimal level of attenuation to be a previous level of attenuation applied by the variable attenuator when the slope is less than the threshold value Y. calculating a slope of the signal, where the slope is defined by the change in noise power over a change in attenuation; comparing the slope to a threshold value Y; and considering the optimal level of attenuation to be a previous level of attenuation applied by the variable attenuator when the slope is less than the threshold value Y.