Skip to content

Commit 1074e64

Browse files
Use only 32 bit float in arm_snr_f32()
1 parent 9febfa6 commit 1074e64

File tree

1 file changed

+38
-46
lines changed

1 file changed

+38
-46
lines changed

teensy3/math_helper.c

Lines changed: 38 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
/* ----------------------------------------------------------------------
3232
* Include standard header files
3333
* -------------------------------------------------------------------- */
34-
#include<math.h>
34+
#include <math.h>
3535

3636
/* ----------------------------------------------------------------------
3737
* Include project header files
@@ -50,49 +50,43 @@
5050

5151
float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
5252
{
53-
float EnergySignal = 0.0, EnergyError = 0.0;
54-
uint32_t i;
55-
float SNR;
56-
int temp;
57-
int *test;
58-
59-
for (i = 0; i < buffSize; i++)
60-
{
61-
/* Checking for a NAN value in pRef array */
62-
test = (int *)(&pRef[i]);
63-
temp = *test;
64-
65-
if(temp == 0x7FC00000)
66-
{
67-
return(0);
68-
}
69-
70-
/* Checking for a NAN value in pTest array */
71-
test = (int *)(&pTest[i]);
72-
temp = *test;
73-
74-
if(temp == 0x7FC00000)
75-
{
76-
return(0);
77-
}
78-
EnergySignal += pRef[i] * pRef[i];
79-
EnergyError += (pRef[i] - pTest[i]) * (pRef[i] - pTest[i]);
80-
}
53+
float EnergySignal = 0.0;
54+
float EnergyError = 0.0;
55+
uint32_t i;
56+
float SNR;
57+
int temp;
58+
int *test;
59+
60+
for (i = 0; i < buffSize; i++) {
61+
/* Checking for a NAN value in pRef array */
62+
test = (int *)(&pRef[i]);
63+
temp = *test;
64+
65+
if (temp == 0x7FC00000) {
66+
return(0);
67+
}
68+
69+
/* Checking for a NAN value in pTest array */
70+
test = (int *)(&pTest[i]);
71+
temp = *test;
72+
73+
if (temp == 0x7FC00000) {
74+
return(0);
75+
}
76+
EnergySignal += pRef[i] * pRef[i];
77+
EnergyError += (pRef[i] - pTest[i]) * (pRef[i] - pTest[i]);
78+
}
8179

8280
/* Checking for a NAN value in EnergyError */
8381
test = (int *)(&EnergyError);
84-
temp = *test;
82+
temp = *test;
8583

86-
if(temp == 0x7FC00000)
87-
{
88-
return(0);
89-
}
90-
91-
92-
SNR = 10 * log10 (EnergySignal / EnergyError);
93-
94-
return (SNR);
84+
if(temp == 0x7FC00000) {
85+
return(0);
86+
}
9587

88+
SNR = 10 * log10f(EnergySignal / EnergyError);
89+
return (SNR);
9690
}
9791

9892

@@ -128,18 +122,16 @@ void arm_float_to_q12_20(float *pIn, q31_t * pOut, uint32_t numSamples)
128122
{
129123
uint32_t i;
130124

131-
for (i = 0; i < numSamples; i++)
132-
{
133-
/* 1048576.0f corresponds to pow(2, 20) */
125+
for (i = 0; i < numSamples; i++) {
126+
/* 1048576.0f corresponds to pow(2, 20) */
134127
pOut[i] = (q31_t) (pIn[i] * 1048576.0f);
135128

136129
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
137130

138-
if (pIn[i] == (float) 1.0)
139-
{
131+
if (pIn[i] == (float) 1.0) {
140132
pOut[i] = 0x000FFFFF;
141-
}
142-
}
133+
}
134+
}
143135
}
144136

145137
/**

0 commit comments

Comments
 (0)