Skip to content

Commit 488aca8

Browse files
committed
patch: fix signal passing to restore determinant results
1 parent f165321 commit 488aca8

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@neurodevs/node-signal-processing",
3-
"version": "3.0.2",
3+
"version": "3.0.3",
44
"main": "build/index.js",
55
"repository": {
66
"type": "git",

src/components/HilbertPeakDetector.ts

+23-15
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default class HilbertPeakDetector implements PeakDetector {
4343
}
4444

4545
private padSignalIfNotPowerOfTwo() {
46-
if (!this.signalLengthIsPowerOfTwo) {
46+
if (!this.passedSignalLengthIsPowerOfTwo) {
4747
this.padSignalToNextPowerOfTwo()
4848
}
4949
}
@@ -67,8 +67,8 @@ export default class HilbertPeakDetector implements PeakDetector {
6767
protected setSignalBelowLowerEnvelopeToZero() {
6868
this.thresholdedSignal = this.passedSignal.slice()
6969

70-
for (let i = 0; i < this.signalLength; i++) {
71-
if (this.lowerEnvelope[i] > this.signal[i]) {
70+
for (let i = 0; i < this.passedSignalLength; i++) {
71+
if (this.lowerEnvelope[i] > this.unpaddedSignal[i]) {
7272
this.thresholdedSignal[i] = 0
7373
}
7474
}
@@ -79,7 +79,7 @@ export default class HilbertPeakDetector implements PeakDetector {
7979

8080
let currentSegment = this.createEmptySegment()
8181

82-
for (let i = 0; i < this.signalLength; i++) {
82+
for (let i = 0; i < this.passedSignalLength; i++) {
8383
const value = this.thresholdedSignal[i]
8484
const timestamp = this.timestamps[i]
8585

@@ -126,25 +126,29 @@ export default class HilbertPeakDetector implements PeakDetector {
126126
private removePadding(signal: number[]) {
127127
return signal.slice(
128128
this.numZerosToPadAtStart,
129-
signal.length - this.numZerosToPadAtEnd
129+
this.signalLength - this.numZerosToPadAtEnd
130130
)
131131
}
132132

133133
private get signalLength() {
134+
return this.signal.length
135+
}
136+
137+
private get passedSignalLength() {
134138
return this.passedSignal.length
135139
}
136140

137-
private get signalLengthIsPowerOfTwo() {
138-
return isPowerOfTwo(this.signalLength)
141+
private get passedSignalLengthIsPowerOfTwo() {
142+
return isPowerOfTwo(this.passedSignalLength)
139143
}
140144

141145
private get nextPowerOfTwo() {
142-
const level = Math.log2(this.signalLength)
146+
const level = Math.log2(this.passedSignalLength)
143147
return Math.pow(2, Math.ceil(level))
144148
}
145149

146150
private get totalZerosToPad() {
147-
return this.nextPowerOfTwo - this.signalLength
151+
return this.nextPowerOfTwo - this.passedSignalLength
148152
}
149153

150154
private get numZerosToPadAtStart() {
@@ -163,30 +167,34 @@ export default class HilbertPeakDetector implements PeakDetector {
163167
return Array(this.numZerosToPadAtEnd).fill(0)
164168
}
165169

170+
private get unpaddedSignal() {
171+
return this.removePadding(this.signal)
172+
}
173+
166174
private get upperAnalyticSignal() {
167175
return this.upperHilbert.analyticSignal
168176
}
169177

170178
private get upperEnvelope() {
171-
return this.removePadding(this.upperHilbert.envelope)
179+
return this.upperHilbert.envelope
172180
}
173181

174182
private get lowerAnalyticSignal() {
175-
return this.removePadding(this.lowerHilbert.analyticSignal)
183+
return this.lowerHilbert.analyticSignal
176184
}
177185

178186
private get lowerEnvelope() {
179-
return this.removePadding(this.lowerHilbert.envelope)
187+
return this.lowerHilbert.envelope
180188
}
181189

182190
private get results() {
183191
return {
184192
filteredSignal: this.passedSignal,
185193
timestamps: this.timestamps,
186194
upperAnalyticSignal: this.removePadding(this.upperAnalyticSignal),
187-
upperEnvelope: this.upperEnvelope,
188-
lowerAnalyticSignal: this.lowerAnalyticSignal,
189-
lowerEnvelope: this.lowerEnvelope,
195+
upperEnvelope: this.removePadding(this.upperEnvelope),
196+
lowerAnalyticSignal: this.removePadding(this.lowerAnalyticSignal),
197+
lowerEnvelope: this.removePadding(this.lowerEnvelope),
190198
thresholdedSignal: this.thresholdedSignal,
191199
nonZeroSegments: this.nonZeroSegments,
192200
peaks: this.peaks,

0 commit comments

Comments
 (0)