ESP-IDF Firmware
Firmware architecture and call graph
Loading...
Searching...
No Matches
dsps_fird_f32_ansi.c
Go to the documentation of this file.
1
// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include "
dsps_fir.h
"
16
17
int
dsps_fird_f32_ansi
(
fir_f32_t
*fir,
const
float
*input,
float
*output,
int
len)
18
{
19
int
result = 0;
20
for
(
int
i = 0; i < len ; i++) {
21
for
(
int
k
= 0 ;
k
< fir->
decim
;
k
++) {
22
fir->
delay
[fir->
pos
++] = *input++;
23
if
(fir->
pos
>= fir->
N
) {
24
fir->
pos
= 0;
25
}
26
}
27
float
acc = 0;
28
int
coeff_pos = 0;
29
for
(
int
n
= fir->
pos
;
n < fir->
N
;
n
++) {
30
acc += fir->
coeffs
[coeff_pos++] * fir->
delay
[
n
];
31
}
32
for
(
int
n
= 0;
n
< fir->
pos
;
n
++) {
33
acc += fir->
coeffs
[coeff_pos++] * fir->
delay
[
n
];
34
}
35
output[result++] = acc;
36
}
37
return
result;
38
}
dsps_fir.h
fir_f32_t
struct fir_f32_s fir_f32_t
Data struct of f32 fir filter.
dsps_fird_f32_ansi
int dsps_fird_f32_ansi(fir_f32_t *fir, const float *input, float *output, int len)
32 bit floating point Decimation FIR filter
Definition
dsps_fird_f32_ansi.c:17
fir_f32_s::coeffs
float * coeffs
Definition
dsps_fir.h:30
fir_f32_s::pos
int pos
Definition
dsps_fir.h:33
fir_f32_s::delay
float * delay
Definition
dsps_fir.h:31
fir_f32_s::N
int N
Definition
dsps_fir.h:32
fir_f32_s::decim
int decim
Definition
dsps_fir.h:34
N
#define N
Definition
test_mmult.c:13
n
const int n
Definition
test_mmult.c:17
k
const int k
Definition
test_mmult.c:18
components
espressif__esp-dsp
modules
fir
float
dsps_fird_f32_ansi.c
Generated by
1.16.1