You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: Average_Filtering.m
    path of file: ./repos/SAR-Synthetic-Aperture-Radar/2-InSAR干涉SAR-人造场景仿真/RD算法，并采用二维频域相位相乘实现SRC
    
    the code of the file until where you have to start completion: function PHY_s_after_avg_filtering = Average_Filtering(PHY_s_after_flat_earth,window_M,window_N)
% 本函数原理基于：    “回转均值滤波”
%
% 本函数用来对去平地相位后的干涉相位做“回转均值滤波”
% 该方法参考：保铮《雷达成像技术》第8章，8.5.2节。
%            详见第 304 页 相关内容
%
% 函数输入值：
% 1） PHY_s_after_flat_earth      代表去平地相位后的干涉相位（即缠绕相位）；
% 2） window_M 和 window_N        表示“回转均值滤波”所选定的窗口大小；
% 函数返回值：
% 1）PHY_s_after_avg_filtering 	 表示“回转均值滤波”后的干涉相位（也是缠绕相位）；
%
% 于 2015.04.27.修改了部分错误；
% 本程序截止至：2014.04.30. 9:17 a.m.

%%
% ------------------------------------------------------------------------
%                               回转均值滤波
% ------------------------------------------------------------------------
M = window_M;      % 斜距向平滑窗口大小，由外界输入
N = window_N;      % 方位向平滑窗口大小，由外界输入

[Naz,Nrg] = size(PHY_s_after_flat_earth);   % 数据大小

disp('正在进行“回转均值滤波”，请等待');
h = waitbar(0,'正在进行“回转均值滤波”，请等待');
for pp = 1:Naz

    
function PHY_s_after_avg_filtering = Average_Filtering(PHY_s_after_flat_earth,window_M,window_N)
% 本函数原理基于：    “回转均值滤波”
%
% 本函数用来对去平地相位后的干涉相位做“回转均值滤波”
% 该方法参考：保铮《雷达成像技术》第8章，8.5.2节。
%            详见第 304 页 相关内容
%
% 函数输入值：
% 1） PHY_s_after_flat_earth      代表去平地相位后的干涉相位（即缠绕相位）；
% 2） window_M 和 window_N        表示“回转均值滤波”所选定的窗口大小；
% 函数返回值：
% 1）PHY_s_after_avg_filtering 	 表示“回转均值滤波”后的干涉相位（也是缠绕相位）；
%
% 于 2015.04.27.修改了部分错误；
% 本程序截止至：2014.04.30. 9:17 a.m.

%%
% ------------------------------------------------------------------------
%                               回转均值滤波
% ------------------------------------------------------------------------
M = window_M;      % 斜距向平滑窗口大小，由外界输入
N = window_N;      % 方位向平滑窗口大小，由外界输入

[Naz,Nrg] = size(PHY_s_after_flat_earth);   % 数据大小

disp('正在进行“回转均值滤波”，请等待');
h = waitbar(0,'正在进行“回转均值滤波”，请等待');
for pp = 1:Naz
    for qq = 1:Nrg
        % 首先进行条件判断，看窗口window是否超过了矩阵的边界：
        if pp<(N+1) || pp>(Naz-N) || qq<(M+1) || qq>(Nrg-M)
            % 若满足上述条件中的任何一个，说明窗口位于矩阵边界，进行以下进一步判断
            if (pp-N) < 1
                x_min = 1;
            else
                x_min = pp - N;
            end