OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 complex_f normalization_factor = uniform_cov_mat_[i].elements()[0][0]; | 327 complex_f normalization_factor = uniform_cov_mat_[i].elements()[0][0]; |
328 uniform_cov_mat_[i].Scale(1.f / normalization_factor); | 328 uniform_cov_mat_[i].Scale(1.f / normalization_factor); |
329 uniform_cov_mat_[i].Scale(1 - kBalance); | 329 uniform_cov_mat_[i].Scale(1 - kBalance); |
330 } | 330 } |
331 } | 331 } |
332 | 332 |
333 void NonlinearBeamformer::InitInterfCovMats() { | 333 void NonlinearBeamformer::InitInterfCovMats() { |
334 for (size_t i = 0; i < kNumFreqBins; ++i) { | 334 for (size_t i = 0; i < kNumFreqBins; ++i) { |
335 interf_cov_mats_[i].clear(); | 335 interf_cov_mats_[i].clear(); |
336 for (size_t j = 0; j < interf_angles_radians_.size(); ++j) { | 336 for (size_t j = 0; j < interf_angles_radians_.size(); ++j) { |
337 interf_cov_mats_[i].push_back(new ComplexMatrixF(num_input_channels_, | 337 interf_cov_mats_[i].push_back(std::unique_ptr<ComplexMatrixF>( |
338 num_input_channels_)); | 338 new ComplexMatrixF(num_input_channels_, num_input_channels_))); |
339 ComplexMatrixF angled_cov_mat(num_input_channels_, num_input_channels_); | 339 ComplexMatrixF angled_cov_mat(num_input_channels_, num_input_channels_); |
340 CovarianceMatrixGenerator::AngledCovarianceMatrix( | 340 CovarianceMatrixGenerator::AngledCovarianceMatrix( |
341 kSpeedOfSoundMeterSeconds, | 341 kSpeedOfSoundMeterSeconds, |
342 interf_angles_radians_[j], | 342 interf_angles_radians_[j], |
343 i, | 343 i, |
344 kFftSize, | 344 kFftSize, |
345 kNumFreqBins, | 345 kNumFreqBins, |
346 sample_rate_hz_, | 346 sample_rate_hz_, |
347 array_geometry_, | 347 array_geometry_, |
348 &angled_cov_mat); | 348 &angled_cov_mat); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
561 new_mask_ + high_mean_end_bin_ + 1); | 561 new_mask_ + high_mean_end_bin_ + 1); |
562 if (new_mask_[quantile] > kMaskTargetThreshold) { | 562 if (new_mask_[quantile] > kMaskTargetThreshold) { |
563 is_target_present_ = true; | 563 is_target_present_ = true; |
564 interference_blocks_count_ = 0; | 564 interference_blocks_count_ = 0; |
565 } else { | 565 } else { |
566 is_target_present_ = interference_blocks_count_++ < hold_target_blocks_; | 566 is_target_present_ = interference_blocks_count_++ < hold_target_blocks_; |
567 } | 567 } |
568 } | 568 } |
569 | 569 |
570 } // namespace webrtc | 570 } // namespace webrtc |
OLD | NEW |