文件
AcousticSo/pyat/cscore.py
T

32 行
675 B
Python

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