import numpy as np # 函数 def dis_mats(m, d): # 以线阵为例 dis = np.zeros((m, m)) for i in range(m): D = np.arange(0, m * d, d) - d * int(i) * np.ones(m) dis[i] = D dis = np.triu(dis) dis += dis.T - np.diag(dis.diagonal()) return dis # 所有阵元的间距的集合 def pn_funcs(f, c, dis): # 所有阵元的噪声相关性 k = 2 * np.pi * f / c # pn = np.sinc(k * dis) a = np.sin(k * dis) b = k * dis pn = np.divide(a, b, np.ones_like(a), where=b != 0) # sin0/0=1 return pn def ag_funcs(m, pn): ps = np.power(m, 2) ag_s = ps / np.sum(pn) # ag = 10 * np.log10(ag_s) return ag