Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
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 int32_t notch_filter_get_output (struct SecondOrderNotchFilter *filter)
 Get latest notch filter output. 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

◆ SecondOrderNotchFilter

struct SecondOrderNotchFilter

Definition at line 32 of file notch_filter.h.

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

Function Documentation

◆ notch_filter_get_output()

static int32_t notch_filter_get_output ( struct SecondOrderNotchFilter filter)
inlinestatic

Get latest notch filter output.

Parameters
filterfilter data structure
Returns
Latest filtered value

Definition at line 105 of file notch_filter.h.

References SecondOrderNotchFilter::yn1.

◆ notch_filter_init()

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 119 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 adaptive_notch_filter_init(), and stabilization_attitude_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ notch_filter_set_bandwidth()

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

Set bandwidth of the notch filter.

Parameters
filterfilter data structure
bandwidthbandwidth of the filter [Hz]

Definition at line 57 of file notch_filter.h.

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

Referenced by notch_filter_init().

+ Here is the caller graph for this function:

◆ notch_filter_set_filter_frequency()

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

Set notch filter frequency in Hz.

Parameters
filterfilter data structure
frequencyto attenuate [Hz]

Definition at line 68 of file notch_filter.h.

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

Referenced by adaptive_notch_filter_update(), indi_apply_notch_filters(), and notch_filter_init().

+ Here is the caller graph for this function:

◆ notch_filter_set_sampling_frequency()

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

Set sampling frequency of the notch filter.

Parameters
filterfilter data structure
frequencyfrequency at which the filter is updated

Definition at line 47 of file notch_filter.h.

References SecondOrderNotchFilter::Ts.

Referenced by notch_filter_init().

+ Here is the caller graph for this function:

◆ notch_filter_update()

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
filterfilter data structure
input_signalinput x[n]
output_signaloutput y[n]

Definition at line 83 of file notch_filter.h.

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

Referenced by adaptive_notch_filter_update(), and indi_apply_notch_filters().

+ Here is the caller graph for this function: