annotate trunk/matlab/bmm/carfac/CARFAC_GenerateTestData.m @ 696:d8a404fbc4df

Rename variables to be consistent with the rest of the library.
author ronw@google.com
date Thu, 27 Jun 2013 15:30:46 +0000
parents 7f424c1a8b78
children cdb7fb83a03b
rev   line source
alexbrandmeyer@668 1 % Author: Alex Brandmeyer
alexbrandmeyer@668 2 %
alexbrandmeyer@668 3 % This Matlab file is part of an implementation of Lyon's cochlear model:
alexbrandmeyer@668 4 % "Cascade of Asymmetric Resonators with Fast-Acting Compression"
alexbrandmeyer@668 5 % to supplement Lyon's upcoming book "Human and Machine Hearing"
alexbrandmeyer@668 6 %
alexbrandmeyer@668 7 % Licensed under the Apache License, Version 2.0 (the "License");
alexbrandmeyer@668 8 % you may not use this file except in compliance with the License.
alexbrandmeyer@668 9 % You may obtain a copy of the License at
alexbrandmeyer@668 10 %
alexbrandmeyer@668 11 % http://www.apache.org/licenses/LICENSE-2.0
alexbrandmeyer@668 12 %
alexbrandmeyer@668 13 % Unless required by applicable law or agreed to in writing, software
alexbrandmeyer@668 14 % distributed under the License is distributed on an "AS IS" BASIS,
alexbrandmeyer@668 15 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
alexbrandmeyer@668 16 % See the License for the specific language governing permissions and
alexbrandmeyer@668 17 % limitations under the License.
alexbrandmeyer@668 18
alexbrandmeyer@668 19 function CARFAC_GenerateTestData()
alexbrandmeyer@668 20 % function GenerateTestData()
alexbrandmeyer@668 21 % This function generates a set of text files in the AIMC repository that
alexbrandmeyer@668 22 % can be used to compare the output of the C++ version of CARFAC with that
alexbrandmeyer@668 23 % of the Matlab version.
alexbrandmeyer@668 24
alexbrandmeyer@668 25 % This designates a subdirectory of the C++ CARFAC folder to store the
alexbrandmeyer@668 26 % test data
alexbrandmeyer@668 27 data_dir = '../../../carfac/test_data/';
alexbrandmeyer@678 28 precision_level = 9;
alexbrandmeyer@668 29
alexbrandmeyer@678 30 % The following section generates data for the binaural test of the C++
alexbrandmeyer@678 31 % version of CARFAC.
alexbrandmeyer@678 32 n_ears = 2;
alexbrandmeyer@678 33
alexbrandmeyer@678 34 file_signal = wavread('plan.wav');
alexbrandmeyer@678 35 file_signal = file_signal(9000:9903); % trim for a faster test
alexbrandmeyer@678 36
alexbrandmeyer@678 37 itd_offset = 22; % about 1 ms
alexbrandmeyer@678 38 test_signal = [file_signal((itd_offset+1):end), ...
alexbrandmeyer@678 39 file_signal(1:(end-itd_offset))] / 10;
alexbrandmeyer@678 40
alexbrandmeyer@678 41 filename = 'file_signal_binaural_test.txt'
alexbrandmeyer@678 42 data = test_signal;
alexbrandmeyer@678 43 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 44
alexbrandmeyer@678 45 CF_struct = CARFAC_Design(n_ears);
alexbrandmeyer@678 46 CF_struct = CARFAC_Init(CF_struct);
alexbrandmeyer@678 47 [CF_struct, nap_decim, nap, bm, ohc, agc] = CARFAC_Run(CF_struct, test_signal);
alexbrandmeyer@678 48
alexbrandmeyer@678 49 %Store the data for each each as individual 2d text data.
alexbrandmeyer@678 50 nap1 = nap(:,:,1);
alexbrandmeyer@678 51 nap2 = nap(:,:,2);
alexbrandmeyer@678 52 bm1 = bm(:,:,1);
alexbrandmeyer@678 53 bm2 = bm(:,:,2);
alexbrandmeyer@678 54
alexbrandmeyer@678 55 filename = 'binaural_test_nap1.txt'
alexbrandmeyer@678 56 data = nap1;
alexbrandmeyer@678 57 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 58
alexbrandmeyer@678 59 filename = 'binaural_test_bm1.txt'
alexbrandmeyer@678 60 data = bm1;
alexbrandmeyer@678 61 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 62
alexbrandmeyer@678 63 filename = 'binaural_test_nap2.txt'
alexbrandmeyer@678 64 data = nap2;
alexbrandmeyer@678 65 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 66
alexbrandmeyer@678 67 filename = 'binaural_test_bm2.txt'
alexbrandmeyer@678 68 data = bm2;
alexbrandmeyer@678 69 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@668 70
alexbrandmeyer@668 71
alexbrandmeyer@678 72 % Longer audio segment test
alexbrandmeyer@668 73
alexbrandmeyer@678 74 n_ears = 2;
alexbrandmeyer@678 75 start = 80001;
alexbrandmeyer@678 76 n_timepoints = 2000;
alexbrandmeyer@678 77
alexbrandmeyer@678 78 [test_signal, fs] = wavread([data_dir 'Anka_SLTS.wav']);
alexbrandmeyer@678 79 test_signal = test_signal(start:start+n_timepoints-1,:);
alexbrandmeyer@678 80 size(test_signal)
alexbrandmeyer@678 81
alexbrandmeyer@678 82 filename = 'file_signal_long_test.txt'
alexbrandmeyer@678 83 data = test_signal;
alexbrandmeyer@678 84 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 85
alexbrandmeyer@678 86 CF_struct = CARFAC_Design(n_ears, fs);
alexbrandmeyer@678 87 CF_struct = CARFAC_Init(CF_struct);
alexbrandmeyer@678 88 [CF_struct, nap_decim, nap, bm, ohc, agc] = CARFAC_Run(CF_struct, test_signal);
alexbrandmeyer@678 89
alexbrandmeyer@678 90 %Store the data for each each as individual 2d text data.
alexbrandmeyer@678 91 nap1 = nap(:,:,1);
alexbrandmeyer@678 92 nap2 = nap(:,:,2);
alexbrandmeyer@678 93 bm1 = bm(:,:,1);
alexbrandmeyer@678 94 bm2 = bm(:,:,2);
alexbrandmeyer@678 95
alexbrandmeyer@678 96 filename = 'long_test_nap1.txt'
alexbrandmeyer@678 97 data = nap1;
alexbrandmeyer@678 98 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 99
alexbrandmeyer@678 100 filename = 'long_test_bm1.txt'
alexbrandmeyer@678 101 data = bm1;
alexbrandmeyer@678 102 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 103
alexbrandmeyer@678 104 filename = 'long_test_nap2.txt'
alexbrandmeyer@678 105 data = nap2;
alexbrandmeyer@678 106 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');
alexbrandmeyer@678 107
alexbrandmeyer@678 108 filename = 'long_test_bm2.txt'
alexbrandmeyer@678 109 data = bm2;
alexbrandmeyer@678 110 dlmwrite([data_dir filename],data,'precision', precision_level,'delimiter',' ');