saefilter

Filters a signal with an SAE filter.

Syntax

y = saefilter(x,fs,class)

y = saefilter(x,fs,class,fftsize)

Inputs

x
The signal to be filtered. If x is a matrix each column is filtered.
Type: double
Dimension: vector | matrix
fs
The sampling frequency.
Type: double
Dimension: scalar
class
The SAE class of the filter (typically 60, 180, 600 or 1000).
Type: double
Dimension: vector
fftsize
Size of the fft. (optional)
Type: integer
Dimension: scalar

Outputs

y
The filtered signal.

Example

Filter a 200 Hz signal, sampled at 10,000 Hz, with a class 60 filter.

t = [0:0.0001:0.02-0.0001];
input = sin(2*pi*200*t);
plot(t,input);
hold on;
output = saefilter(input, 10000, 60);
plot(t,output);
legend('input','output');
Figure 1. filter

Comments

saefilter is based on SAE paper #810813, "Digital and Analog Filters for Processing Impact Test Data." It uses a frequency domain filter that attenuates 10dB/octave, beginning at 1.65*class.

fs should be at least 10 times class, and will not be accepted if less than 3.3 times as large.

The signal can be zero-padded if desired using fftsize.