如何获得 CFAR(恒定误报算法)的正确阈值水平?

How to get correct threshold level for CFAR (Constant False alarm algorithm)?

  1. 我对正弦信号(添加了噪声)进行了傅里叶变换。我必须将这些值传递给 CFAR 算法(一个函数)并在我的主 matlab 文件中取回阈值。
  2. 获得这些值后,我绘制了相同的图,并得到了一张如屏幕截图所示的图表。显然 阈值高于信号而不是信号 (就像区分噪声和有用目标的阈值线)。

任何人都可以帮助我如何在正确的位置获得阈值或者我可能做错了什么?感谢您提供解决问题的任何指示或提示。

PS:由于显而易见的原因,我不允许 post 代码。

您可能没有对滤波器系数进行归一化。这是一个示例代码:

% Reference and guard cells
winRef=10; 
winGuard=5; 

% Filter coefficients
win=[ones(1,winRef),zeros(1,winGuard),ones(1,winRef)];
win=win/sum(win); % normalize

% CFAR
cfar=conv(signal,win,'same');