Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
ITABase
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Institute of Technical Acoustics (ITA)
ITABase
Commits
63371436
Commit
63371436
authored
May 31, 2017
by
Dipl.-Ing. Jonas Stienen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding more methods for base classes
parent
cabd76b0
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
42 additions
and
14 deletions
+42
-14
include/ITAInterpolation.h
include/ITAInterpolation.h
+10
-10
include/ITASampleBuffer.h
include/ITASampleBuffer.h
+1
-1
include/ITASpectrum.h
include/ITASpectrum.h
+3
-0
src/ITAInterpolation.cpp
src/ITAInterpolation.cpp
+3
-3
src/ITAMagnitudeSpectrum.cpp
src/ITAMagnitudeSpectrum.cpp
+10
-0
src/ITASampleBuffer.cpp
src/ITASampleBuffer.cpp
+10
-0
src/ITASpectrum.cpp
src/ITASpectrum.cpp
+5
-0
No files found.
include/ITAInterpolation.h
View file @
63371436
...
...
@@ -30,7 +30,7 @@ class ITASampleBuffer;
* For equidistant sampling.
*
*/
class
IITA
VDL
InterpolationRoutine
class
IITA
Sample
InterpolationRoutine
{
public:
//! Human-readable name
...
...
@@ -70,37 +70,37 @@ public:
};
//! Linear interpolation (fast)
class
ITA_BASE_API
CITA
VDLLinearInterpolation
:
public
IITAVDL
InterpolationRoutine
class
ITA_BASE_API
CITA
SampleLinearInterpolation
:
public
IITASample
InterpolationRoutine
{
public:
inline
CITA
VDL
LinearInterpolation
()
{};
inline
~
CITA
VDL
LinearInterpolation
()
{};
inline
CITA
Sample
LinearInterpolation
()
{};
inline
~
CITA
Sample
LinearInterpolation
()
{};
inline
std
::
string
GetName
()
const
{
return
"Linear Interpolation"
;
};
inline
void
GetOverlapSamples
(
int
&
iLeft
,
int
&
iRight
)
const
{
iLeft
=
1
;
iRight
=
0
;
};
bool
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
=
0
)
const
;
};
//! Cubic-Spline interpolation (efficient)
class
ITA_BASE_API
CITA
VDLCubicSplineInterpolation
:
public
IITAVDL
InterpolationRoutine
class
ITA_BASE_API
CITA
SampleCubicSplineInterpolation
:
public
IITASample
InterpolationRoutine
{
public:
inline
CITA
VDL
CubicSplineInterpolation
()
{};
inline
~
CITA
VDL
CubicSplineInterpolation
()
{};
inline
CITA
Sample
CubicSplineInterpolation
()
{};
inline
~
CITA
Sample
CubicSplineInterpolation
()
{};
inline
std
::
string
GetName
()
const
{
return
"Cubic Spline Interpolation"
;
};
inline
void
GetOverlapSamples
(
int
&
iLeft
,
int
&
iRight
)
const
{
iLeft
=
2
;
iRight
=
2
;
};
bool
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
=
0
)
const
;
};
//! Windowed Sinc-Interpolation (costly)
class
ITA_BASE_API
CITA
VDLWindowedSincInterpolation
:
public
IITAVDL
InterpolationRoutine
class
ITA_BASE_API
CITA
SampleWindowedSincInterpolation
:
public
IITASample
InterpolationRoutine
{
public:
inline
CITA
VDL
WindowedSincInterpolation
(
const
int
iWindowSize
=
13
)
:
m_iWindowSize
(
iWindowSize
)
inline
CITA
Sample
WindowedSincInterpolation
(
const
int
iWindowSize
=
13
)
:
m_iWindowSize
(
iWindowSize
)
{
m_iWindowSize
=
m_iWindowSize
+
m_iWindowSize
%
1
;
};
inline
~
CITA
VDL
WindowedSincInterpolation
()
{};
inline
~
CITA
Sample
WindowedSincInterpolation
()
{};
inline
std
::
string
GetName
()
const
{
return
"Windowed Sinc-Interpolation"
;
};
inline
void
GetOverlapSamples
(
int
&
iLeft
,
int
&
iRight
)
const
{
iLeft
=
m_iWindowSize
/
2
;
iRight
=
m_iWindowSize
/
2
;
};
bool
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
=
0
)
const
;
...
...
include/ITASampleBuffer.h
View file @
63371436
...
...
@@ -332,7 +332,7 @@ public:
std
::
string
toString
()
const
;
//! Werte als Zeichenkette zurckgeben
std
::
string
v
aluesToString
()
const
;
std
::
string
V
aluesToString
()
const
;
//! berblendfunktionen
enum
...
...
include/ITASpectrum.h
View file @
63371436
...
...
@@ -63,6 +63,9 @@ public:
//! Get a copy of the values (slow, do not use for read access)
std
::
vector
<
float
>
GetValuesCopy
()
const
;
//! Get values (read-only)
const
std
::
vector
<
float
>&
GetValues
()
const
;
//! Scalar multiplication
void
Multiply
(
const
float
fFactor
);
...
...
src/ITAInterpolation.cpp
View file @
63371436
...
...
@@ -10,7 +10,7 @@ void spline_cubic_set_equidistant( const int n, const float* y, float* ypp );
// Evaluate cubic spline interpolation point using only base values (y) and second derivatives (ypp) for equidistant data
float
spline_cubic_val_equidistant
(
const
int
n
,
const
float
fX
,
const
float
*
y
,
const
float
*
ypp
);
bool
CITA
VDL
LinearInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
bool
CITA
Sample
LinearInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
{
assert
(
pOutput
->
length
()
>=
iOutputLength
+
iOutputOffset
);
...
...
@@ -138,7 +138,7 @@ bool CITAVDLLinearInterpolation::Interpolate( const ITASampleBuffer* pInput, con
return
false
;
}
bool
CITA
VDL
CubicSplineInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
bool
CITA
Sample
CubicSplineInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
{
// Eingabe validieren
assert
(
iInputStartOffset
>=
2
);
...
...
@@ -182,7 +182,7 @@ bool CITAVDLCubicSplineInterpolation::Interpolate( const ITASampleBuffer* pInput
return
true
;
}
bool
CITA
VDL
WindowedSincInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
bool
CITA
Sample
WindowedSincInterpolation
::
Interpolate
(
const
ITASampleBuffer
*
pInput
,
const
int
iInputLength
,
const
int
iInputStartOffset
,
ITASampleBuffer
*
pOutput
,
const
int
iOutputLength
,
const
int
iOutputOffset
/*=0*/
)
const
{
// Eingabe validieren
assert
(
iInputStartOffset
>=
m_iWindowSize
/
2
);
...
...
src/ITAMagnitudeSpectrum.cpp
View file @
63371436
...
...
@@ -9,6 +9,16 @@ CITAMagnitudeSpectrum::CITAMagnitudeSpectrum( const int nNumBands )
SetValueUnit
(
"dB"
);
}
std
::
vector
<
float
>
CITAMagnitudeSpectrum
::
GetMagnitudesCopy
()
const
{
return
CITASpectrum
::
GetValuesCopy
();
}
const
std
::
vector
<
float
>&
CITAMagnitudeSpectrum
::
GetMagnitudes
()
const
{
return
CITASpectrum
::
GetValues
();
}
void
CITAMagnitudeSpectrum
::
SetMagnitudes
(
const
std
::
vector
<
float
>&
vfMagnitudes
)
{
CITASpectrum
::
SetValues
(
vfMagnitudes
);
...
...
src/ITASampleBuffer.cpp
View file @
63371436
...
...
@@ -668,3 +668,13 @@ std::string ITASampleBuffer::toString() const
ss
<<
" }"
;
return
ss
.
str
();
}
std
::
string
ITASampleBuffer
::
ValuesToString
()
const
{
std
::
stringstream
ss
;
ss
<<
"Sample buffer { "
;
for
(
int
i
=
0
;
i
<
m_iLength
;
i
++
)
ss
<<
m_pfData
[
i
]
<<
" "
;
ss
<<
"}"
;
return
ss
.
str
();
}
src/ITASpectrum.cpp
View file @
63371436
...
...
@@ -69,6 +69,11 @@ std::vector< float > CITASpectrum::GetValuesCopy() const
return
m_vfValues
;
}
const
std
::
vector
<
float
>&
CITASpectrum
::
GetValues
()
const
{
return
m_vfValues
;
}
void
CITASpectrum
::
Multiply
(
const
float
fFactor
)
{
for
(
size_t
n
=
0
;
n
<
m_vfValues
.
size
();
n
++
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment