comparison NoveltyCurveProcessor.cpp @ 24:957b83524c06

* Replacing loop unsigned ints with ints
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Tue, 19 Aug 2014 18:20:26 +0100
parents 7d36c742a183
children fe23998968b4
comparison
equal deleted inserted replaced
23:7d36c742a183 24:957b83524c06
111 smoothFilter.process(&spectrogramTransposed[i][0], diffHannWindow, &spectrogramTransposed[i][0], FIRFilter::middle); 111 smoothFilter.process(&spectrogramTransposed[i][0], diffHannWindow, &spectrogramTransposed[i][0], FIRFilter::middle);
112 } 112 }
113 } 113 }
114 114
115 //half rectification (set negative to zero) 115 //half rectification (set negative to zero)
116 void NoveltyCurveProcessor::halfWaveRectify(SpectrogramTransposed &spectrogramTransposed) const 116 void NoveltyCurveProcessor::halfWaveRectify(Spectrogram &spectrogram) const
117 { 117 {
118 int numberOfBlocks = spectrogramTransposed[0].size(); 118 int length = spectrogram.size();
119 int height = spectrogram[0].size();
119 120
120 for (int block = 0; block < numberOfBlocks; block++){ 121 for (int i = 0; i < length; i++){
121 for (int k = 0; k < (int)m_blockSize; k++){ 122 for (int j = 0; j < height; j++){
122 if (spectrogramTransposed[k][block] < 0.0) spectrogramTransposed[k][block] = 0.0; 123 if (spectrogram[i][j] < 0.0) spectrogram[i][j] = 0.0;
123 } 124 }
124 } 125 }
125 } 126 }
126 127
127 //process method 128 //process method
138 for (int k = 0; k < (int)m_blockSize; k++){ 139 for (int k = 0; k < (int)m_blockSize; k++){
139 spectrogramTransposed[k][block] = log(1+m_compressionConstant*spectrogram[block][k]); 140 spectrogramTransposed[k][block] = log(1+m_compressionConstant*spectrogram[block][k]);
140 if(normaliseScale != 0.0) spectrogramTransposed[k][block] /= normaliseScale; //normalise 141 if(normaliseScale != 0.0) spectrogramTransposed[k][block] /= normaliseScale; //normalise
141 } 142 }
142 } 143 }
143 144
144 //smooted differentiator 145 //smooted differentiator
145 smoothedDifferentiator(spectrogramTransposed, 5); //make smoothLength a parameter! 146 smoothedDifferentiator(spectrogramTransposed, 5); //make smoothLength a parameter!
146 //halfwave rectification 147 //halfwave rectification
147 halfWaveRectify(spectrogramTransposed); 148 halfWaveRectify(spectrogramTransposed);
148 149