def make_bin_weights(self):
erb_max = hz2erb(self.sr/2.0)
ngrid = 1000
erb_grid = np.arange(ngrid) * erb_max / (ngrid - 1)
hz_grid = (np.exp(erb_grid / 9.26) - 1) / 0.00437
resp = np.zeros((ngrid, self.n_bins))
for b in range(self.n_bins):
w = self.widths[b]
r = (2.0 * w + 1.0) / self.sr * (hz_grid - self.hz_freqs[b])
resp[:,b] = np.square(np.sinc(r)+ 0.5 * np.sinc(r + 1.0) + 0.5 * np.sinc(r - 1.0));
self.weights = np.dot(linalg.pinv(resp), np.ones((ngrid,1)))
评论列表
文章目录