help-octave
[Top][All Lists]

## Re: Parametric Equalizer Design

 From: Sergei Steshenko Subject: Re: Parametric Equalizer Design Date: Tue, 8 Mar 2022 02:03:16 +0200 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

```
On 07/03/2022 18:58, Renato S. Yamane wrote:
```
```Em seg., 7 de mar. de 2022 às 15:50, Nicholas Jankowski
<jankowski.nicholas@gmail.com> escreveu:
```
```There is no way to add a feature like this on Octave, right?
https://www.mathworks.com/help/audio/ug/parametric-equalizer-design.html
```
```looking at the examples on that page, and many of the functions they call
(object oriented design
tools like fdesign) are still listed as unimplemented in the Signal package, it
likely is not currently
possible to do exactly what they do.  depending on your exact needs, there may
be other ways
to accomplish the tasks you need to do.  Here are links to the current signal
package with function
reference, and the wiki 'missing' list:
```
```Hi, thanks for your feedback.

Basically, this is a sketch of what I'm doing:

signal = noise(30 * 44100, 1, 'pink');
[z, p, k] = butter(2, [100/(44100/2), 2000/(44100/2)]);
sos = zp2sos (z, p, k);
filtered = sosfilt(sos, signal);
normalized = filtered / (rms(filtered) / 10^(-6/20));
audiowrite ('test.wav', normalized, 44100);

But, before export the file, I would like to add a booster (or a
reduction) in a specific area (let's say -3dB at 500Hz, with a Q=1)

Many thanks,
Renato

----------
We are transitioning to a web based forum
for community help discussions at
https://octave.discourse.group/c/help
```
```

Renato,

```
if I understand correctly what you're doing, you work on finite length signal not in real time.
```
If it's the case, then why not use the following approach:

```
direct_fft(signal_time domain) -> multiply_the_spectrum_by_arbitrary_needed_filer -> inverse_fft(filtered_signal)
```
?

The question is how to implement the arbitrary_filter.

```
The trivial approach: you just "draw" it, i.e. you create peaks/dips by whatever means necessary in magnitude only.
```
```
The problem (?) is that such a filter won't be minimum phase. If it is indeed a problem, there is open source code allowing to produce minimum phase filter spectrum from magnitude only spectrum. The mathematical foundation of this all is here: https://en.wikipedia.org/wiki/Kramers%E2%80%93Kronig_relations .
```
--Sergei.

```