= High Pass Filter

include::../../common.adoc[]

== Overview

High pass second-order IIR (Infinite Impulse Response) filter. This filter is embodied by the `highpass` class.

== Include

```c++
#include <q/fx/biquad.hpp>
```

== Declaration

```c++
struct highpass : biquad
{
         highpass(frequency f, float sps, double q = 0.707);
   void  config(frequency f, float sps, double q = 0.707)
};
```

:biquad: xref:reference/biquad.adoc[biquad]

== Expressions

In addition to valid expressions for {biquad}, `highpass` allows these expressions.

=== Notation

`hp`              :: Object of type `highpass`.
`f`               :: Object of type `frequency`.
`sps`             :: Floating point value representing samples per second.
`q                :: Q or quality factor.
`a [, b, c, d]`   :: Required `a`, optional `b, c, d`.

=== Constructor

[cols="1,1"]
|===
| Expression                  | Semantics

| `highpass(f, sps [, q])`    |  Construct a `highpass` filter from `f`, `sps` and optional `q` (defaults to `0.707`).
|===

NOTE: C++ brace initialization may also be used.

=== Mutators

[cols="1,1"]
|===
| Expression                  | Semantics

| `hp.config(f, sps [, q])`   |  Configure a `highpass` from `f`, `sps` and optional `q` (defaults to `0.707`).
|===

