Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
notch_filter.h File Reference

Second order notch filter. More...

#include "std.h"
+ Include dependency graph for notch_filter.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SecondOrderNotchFilter
 

Functions

static void notch_filter_set_sampling_frequency (struct SecondOrderNotchFilter *filter, uint16_t frequency)
 Set sampling frequency of the notch filter. More...
 
static void notch_filter_set_bandwidth (struct SecondOrderNotchFilter *filter, float bandwidth)
 Set bandwidth of the notch filter. More...
 
static void notch_filter_set_filter_frequency (struct SecondOrderNotchFilter *filter, float frequency)
 Set notch filter frequency in Hz. More...
 
static void notch_filter_update (struct SecondOrderNotchFilter *filter, int32_t *input_signal, int32_t *output_signal)
 Notch filter propagate. More...
 
static void notch_filter_init (struct SecondOrderNotchFilter *filter, float cutoff_frequency, float bandwidth, uint16_t sample_frequency)
 Initialize second order notch filter. More...
 

Detailed Description

Second order notch filter.

Definition in file notch_filter.h.


Data Structure Documentation

struct SecondOrderNotchFilter

Definition at line 32 of file notch_filter.h.

Data Fields
float costheta
float d2
float Ts
int32_t xn1
int32_t xn2
int32_t yn1
int32_t yn2

Function Documentation

static void notch_filter_init ( struct SecondOrderNotchFilter filter,
float  cutoff_frequency,
float  bandwidth,
uint16_t  sample_frequency 
)
inlinestatic

Initialize second order notch filter.

Discrete implementation: y[n] = b * y[n-1] - d^2 * y[n-2] + a * x[n] - b * x[n-1] + a * x[n-2]

Parameters
cutoff_frequencyfrequency to attenuate [Hz]
bandwidthbandwidth of the filter [Hz]
sample_frequencyfrequency at which the filter is updated

Definition at line 101 of file notch_filter.h.

References notch_filter_set_bandwidth(), notch_filter_set_filter_frequency(), notch_filter_set_sampling_frequency(), SecondOrderNotchFilter::xn1, SecondOrderNotchFilter::xn2, SecondOrderNotchFilter::yn1, and SecondOrderNotchFilter::yn2.

Referenced by stabilization_attitude_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void notch_filter_set_bandwidth ( struct SecondOrderNotchFilter filter,
float  bandwidth 
)
inlinestatic

Set bandwidth of the notch filter.

Parameters
bandwidthbandwidth of the filter [Hz]

Definition at line 55 of file notch_filter.h.

References SecondOrderNotchFilter::d2, and SecondOrderNotchFilter::Ts.

Referenced by notch_filter_init().

+ Here is the caller graph for this function:

static void notch_filter_set_filter_frequency ( struct SecondOrderNotchFilter filter,
float  frequency 
)
inlinestatic

Set notch filter frequency in Hz.

Parameters
frequencyto attenuate [Hz]

Definition at line 65 of file notch_filter.h.

References SecondOrderNotchFilter::costheta, and SecondOrderNotchFilter::Ts.

Referenced by indi_apply_notch_filters(), and notch_filter_init().

+ Here is the caller graph for this function:

static void notch_filter_set_sampling_frequency ( struct SecondOrderNotchFilter filter,
uint16_t  frequency 
)
inlinestatic

Set sampling frequency of the notch filter.

Parameters
frequencyfrequency at which the filter is updated

Definition at line 46 of file notch_filter.h.

References SecondOrderNotchFilter::Ts.

Referenced by notch_filter_init().

+ Here is the caller graph for this function:

static void notch_filter_update ( struct SecondOrderNotchFilter filter,
int32_t input_signal,
int32_t output_signal 
)
inlinestatic

Notch filter propagate.

Discrete implementation: y[n] = b * y[n-1] - d^2 * y[n-2] + a * x[n] - b * x[n-1] + a * x[n-2]

Parameters
input_signalinput x[n]
output_signaloutput y[n]

Definition at line 79 of file notch_filter.h.

References SecondOrderNotchFilter::costheta, SecondOrderNotchFilter::d2, SecondOrderNotchFilter::xn1, SecondOrderNotchFilter::xn2, SecondOrderNotchFilter::yn1, and SecondOrderNotchFilter::yn2.

Referenced by indi_apply_notch_filters().

+ Here is the caller graph for this function: