7d36bc4422
add dynamic gyro windows control inclusion based on HAL_WITH_DSP and GYROFFT_ENABLED target appropriate ARM cpus constrain window sizes to be achievable improve FFT signal accuracy through configurable window overlap and quinn's estimator calculate energy weighted center frequency add support for learning hover frequency and throttle reference calculate power spectrum rather than amplitude record noise as a per-bin power spectrum calculate true SNR per-bin and use that to determine there is a signal add user config for SNR signal level constrain frequency scanning to MAXHZ calculate and learn the peak bandwidth at the configured attenuation allow enabling/disabling dynamically through rc function MAXHZ should be below Nyquist Incorporate full range of MAXHZ to MINHZ update FFT analysis in a separate thread allocate memory in a specific region constrain window size by CPU class do not allocate any resources when not enabled Prevent self-check and analysis interfering with each other put configuration and initialization to AP_Vehicle add logging fix significant issues with threading, locking and sample buffer access use both calculated noise peaks together with the harmonic notch configuration to detemine which peak represents the fundamental harmonic that should be tracked record harmonic fit add CMSIS 5 libraries and headers allow larger FFT lengths on Linux and SITL
67 lines
2.9 KiB
C
67 lines
2.9 KiB
C
/* ----------------------------------------------------------------------
|
|
* Project: CMSIS DSP Library
|
|
* Title: arm_const_structs.h
|
|
* Description: Constant structs that are initialized for user convenience.
|
|
* For example, some can be given as arguments to the arm_cfft_f32() function.
|
|
*
|
|
* $Date: 27. January 2017
|
|
* $Revision: V.1.5.1
|
|
*
|
|
* Target Processor: Cortex-M cores
|
|
* -------------------------------------------------------------------- */
|
|
/*
|
|
* Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the License); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef _ARM_CONST_STRUCTS_H
|
|
#define _ARM_CONST_STRUCTS_H
|
|
|
|
#include "arm_math.h"
|
|
#include "arm_common_tables.h"
|
|
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048;
|
|
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096;
|
|
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048;
|
|
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096;
|
|
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048;
|
|
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096;
|
|
|
|
#endif
|