libdspl-2.0

Функции

int butter_ap (double rp, int ord, double *b, double *a)
 Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Баттерворта. Подробнее...
 
int butter_ap_zp (int ord, double rp, complex_t *z, int *nz, complex_t *p, int *np)
 Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Баттерворта. Подробнее...
 
int cheby1_ap (double rp, int ord, double *b, double *a)
 Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Чебышёва первого рода. Подробнее...
 
int cheby1_ap_zp (int ord, double rp, complex_t *z, int *nz, complex_t *p, int *np)
 Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Чебышёва первого рода. Подробнее...
 
int cheby2_ap (double rs, int ord, double *b, double *a)
 Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Чебышёва второго рода. Подробнее...
 
int cheby2_ap_zp (int ord, double rs, complex_t *z, int *nz, complex_t *p, int *np)
 Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Чебышёва второго рода. Подробнее...
 
int filter_zp2ab (complex_t *z, int nz, complex_t *p, int np, int ord, double *b, double *a)
 Функция пересчета нулей и полюсов аналогового фильтра в коэффициенты передаточной характеристики $ H(s) $. Подробнее...
 
int low2high (double *b, double *a, int ord, double w0, double w1, double *beta, double *alpha)
 Частотное преобразование ФНЧ-ФВЧ Подробнее...
 
int low2low (double *b, double *a, int ord, double w0, double w1, double *beta, double *alpha)
 Частотное преобразование ФНЧ-ФНЧ Подробнее...
 
int ratcompos (double *b, double *a, int n, double *c, double *d, int p, double *beta, double *alpha)
 Рациональная композиця Подробнее...
 

Подробное описание

Функции расчета цифровых БИХ-фильтров.

Функции

◆ butter_ap()

int butter_ap ( double  Rp,
int  ord,
double *  b,
double *  a 
)

Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Баттерворта.


Функция рассчитывает коэффициенты передаточной характеристики $H(s)$ аналогового нормированного ФНЧ Баттерворта порядка ord с частотой среза 1 рад/с по уровню $ -R_p $ дБ.

Аргументы
[in]RpНеравномерность АЧХ в полосе пропускания (дБ).
Параметр задает уровень искажений в полосе от 0 до 1 рад/с.
Значение должно быть положительным.

[in]ordПорядок фильтра.
Количество коэффициентов числителя и знаменателя передаточной функции $H(s)$ равно ord+1.

[out]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[out]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Фильтр рассчитан успешно.

В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 33

◆ butter_ap_zp()

int butter_ap_zp ( int  ord,
double  rp,
complex_t z,
int *  nz,
complex_t p,
int *  np 
)

Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Баттерворта.


Функция рассчитывает значения нулей и полюсов передаточной функции $ H(s)$ аналогового нормированного ФНЧ Баттерворта порядка ord с частотой среза 1 рад/с по уровню $-R_p$ дБ.

Аргументы
[in]ordПорядок фильтра.
[in]rpНеравномерность АЧХ в полосе пропускания (дБ).
Параметр задает уровень искажений в полосе от 0 до 1 рад/с.
Значение должно быть положительным.

[out]zУказатель на массив комплексных нулей передаточной характеристики $ H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]nzУказатель на переменную количества нулей передаточной характеристики $ H(s)$.
По данному укащзателю будет записано количество нулей фильтра, которые были рассчитны и помещены в вектор z.
Память должна быть выделена.

[out]pУказатель на массив комплексных полюсов передаточной характеристики $ H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]npУказатель на переменную количества полюсов передаточной характеристики $ H(s)$.
По данному укащзателю будет записано количество нулей фильтра, которые были рассчитны и помещены в вектор p.
Память должна быть выделена.

Возвращает
RES_OK Массивы нулей и полюсов рассчитаны успешно.
В противном случае код ошибки.
Заметки
Нормированный ФНЧ Баттерворта не имеет нулей, поэтому массив нулей z не будет изменен, а по указателю nz будет записан 0.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 80

Используется в butter_ap().

◆ cheby1_ap()

int cheby1_ap ( double  Rp,
int  ord,
double *  b,
double *  a 
)

Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Чебышёва первого рода.


Функция рассчитывает коэффициенты передаточной характеристики $ H(s)$ аналогового нормированного ФНЧ Чебышёва первого рода порядка ord с частотой среза 1 рад/с по уровню $-R_p$ дБ.

Особенностью фильтра Чебышёва первого рода являются равноволновые пульсации АЧХ в полосе пропускания.

Аргументы
[in]RpНеравномерность АЧХ в полосе пропускания (дБ).
Параметр задает уровень искажений в полосе от 0 до 1 рад/с.
Значение должно быть положительным.

[in]ordПорядок фильтра.
Количество коэффициентов числителя и знаменателя передаточной функции $ H(s)$ равно ord+1.

[out]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[out]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Фильтр рассчитан успешно.

В противном случае код ошибки.

Пример использования функции cheby1_ap:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dspl.h"
// Порядок фильтра
#define ORD 4
// размер векторов частотной характериситки фильтра
#define N 1000
int main()
{
void* handle; // DSPL handle
handle = dspl_load(); // Load DSPL function
double a[ORD+1], b[ORD+1]; // коэффицинеты H(s)
double Rp = 3.0; // неравномерность в полосе пропускания 3дБ
// Частота (w), АЧХ (mag), ФЧХ (phi) и ГВЗ (tau)
double w[N], mag[N], phi[N], tau[N];
int k;
// рассчитываем нормированный ФНЧ Чебышева 1 рода
int res = cheby1_ap(Rp, ORD, b, a);
if(res != RES_OK)
printf("error code = 0x%8x\n", res);
// печать коэффициентов фильтра
for(k = 0; k < ORD+1; k++)
printf("b[%2d] = %9.3f a[%2d] = %9.3f\n", k, b[k], k, a[k]);
// вектор частоты в логарифмической шакале от 0.01 до 100 рад/c
logspace(-2.0, 2.0, N , DSPL_SYMMETRIC, w);
//частотные характеристика фильтра
freqs_resp(b, a, ORD, w, N, DSPL_FLAG_LOG|DSPL_FLAG_UNWRAP,
mag, phi, tau);
// Сохранить характеристики для построения графиков
writetxt(w, mag, N, "dat/cheby1_ap_test_mag.txt");
writetxt(w, phi, N, "dat/cheby1_ap_test_phi.txt");
writetxt(w, tau, N, "dat/cheby1_ap_test_tau.txt");
dspl_free(handle); // free dspl handle
// выполнить скрипт GNUPLOT для построения графиков
// по рассчитанным данным
return system("gnuplot -p gnuplot/cheby1_ap_test.plt");;
}

Результат работы программы:

b[ 0] =     0.125     a[ 0] =     0.177
b[ 1] =     0.000     a[ 1] =     0.405
b[ 2] =     0.000     a[ 2] =     1.169
b[ 3] =     0.000     a[ 3] =     0.582
b[ 4] =     0.000     a[ 4] =     1.000



В каталоге dat будут созданы три файла:

cheby1_ap_test_mag.txt    АЧХ фильтра  
cheby1_ap_test_phi.txt    ФЧХ фильтра
cheby1_ap_test_tau.txt    ГВЗ фильтра

Кроме того программа GNUPLOT произведет построение следующих графиков по сохраненным в файлах данным:

cheby1_ap_test.png

Скрипт GNUPLOT для построения графиков из текстовых файлов:

set logscale x
unset key
set grid
set xlabel "frequency, rad/s"
set terminal wxt size 920, 260 enhanced font 'Verdana,8'
set multiplot layout 1,3 rowsfirst
set ylabel "Magnitude, dB"
set yrange [-100:5]
plot 'dat/cheby1_ap_test_mag.txt' with lines
set ylabel "Phase response, rad"
unset yrange
plot 'dat/cheby1_ap_test_phi.txt' with lines
set ylabel "Groupdelay, sec"
unset yrange
plot 'dat/cheby1_ap_test_tau.txt' with lines
unset multiplot
set terminal pngcairo size 920, 260 enhanced font 'Verdana,8'
set output 'img/cheby1_ap_test.png'
set multiplot layout 1,3 rowsfirst
set ylabel "Magnitude, dB"
set yrange [-100:5]
plot 'dat/cheby1_ap_test_mag.txt' with lines
set ylabel "Phase response, rad"
unset yrange
plot 'dat/cheby1_ap_test_phi.txt' with lines
set ylabel "Groupdelay, sec"
unset yrange
plot 'dat/cheby1_ap_test_tau.txt' with lines
unset multiplot
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 129

◆ cheby1_ap_zp()

int cheby1_ap_zp ( int  ord,
double  rp,
complex_t z,
int *  nz,
complex_t p,
int *  np 
)

Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Чебышёва первого рода.


Функция рассчитывает значения нулей и полюсов передаточной функции $ H(s)$ аналогового нормированного ФНЧ Чебышёва первого рода порядка ord с частотой среза 1 рад/с по уровню $-R_p$ дБ, с неравномерностью в полосе пропускания $ R_p $ дБ.

Аргументы
[in]ordПорядок фильтра.
[in]rpНеравномерность АЧХ в полосе пропускания (дБ).
Параметр задает уровень искажений в полосе от 0 до 1 рад/с.
Значение должно быть положительным.

[out]zУказатель на массив комплексных нулей передаточной характеристики $ H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]nzУказатель на переменную количества нулей передаточной функции $H(s)$.
По данному указателю будет записано количество нулей фильтра, которые были рассчитаны и помещены в вектор z.
Память должна быть выделена.

[out]pУказатель на массив комплексных полюсов передаточной характеристики $H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]npУказатель на переменную количества полюсов передаточной функции $ H(s)$.
По данному укащзателю будет записано количество нулей фильтра, которые были рассчитны и помещены в вектор p.
Память должна быть выделена.

Возвращает
RES_OK Массивы нулей и полюсов рассчитаны успешно.
В противном случае код ошибки.
Заметки
Нормированный ФНЧ Чебышёва первого рода не имеет нулей, поэтому массив нулей z не будет изменен, а по указателю nz будет записан 0.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 186

Используется в cheby1_ap().

◆ cheby2_ap()

int cheby2_ap ( double  Rs,
int  ord,
double *  b,
double *  a 
)

Расчет передаточной характеристики $ H(s) $ аналогового нормированного ФНЧ Чебышёва второго рода.


Функция рассчитывает коэффициенты передаточной характеристики $H(s)$ аналогового нормированного ФНЧ Чебышёва второго рода порядка ord с частотой заграждения 1 рад/с по уровню $-R_s$ дБ.

Особенностью фильтра Чебышёва второго рода являются:
1) равноволновые пульсации АЧХ в полосе заграждения.
2) уровень АЧХ $H(j\cdot 1) = -R_s$ дБ.

Аргументы
[in]RsУровень подавления в полосе пропускания (дБ).
Значение должно быть положительным.

[in]ordПорядок фильтра.
Количество коэффициентов числителя и знаменателя передаточной функции $H(s)$ равно ord+1.

[out]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[out]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Фильтр рассчитан успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 239

◆ cheby2_ap_zp()

int cheby2_ap_zp ( int  ord,
double  rs,
complex_t z,
int *  nz,
complex_t p,
int *  np 
)

Расчет массивов нулей и полюсов передаточной функции $ H(s) $ аналогового нормированного ФНЧ Чебышёва второго рода.


Функция рассчитывает значения нулей и полюсов передаточной функции $H(s)$ аналогового нормированного ФНЧ Чебышёва второго рода порядка ord с частотой заграждения 1 рад/с по уровню $-R_s$ дБ.

Аргументы
[in]ordПорядок фильтра.
[in]rsУровень подавления АЧХ в полосе загражения (дБ).
Параметр задает уровень подавления сигнала в полосе частот от 1 рад/с и выше.
Значение должно быть положительным.

[out]zУказатель на массив комплексных нулей передаточной характеристики $H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]nzУказатель на переменную количества нулей передаточной функции $H(s)$.
По данному укащзателю будет записано количество нулей фильтра, которые были рассчитны и помещены в вектор z.
Память должна быть выделена.

[out]pУказатель на массив комплексных полюсов передаточной характеристики $H(s)$.
Максимальный размер вектора вектора [ord x 1].
Память должна быть выделена.

[out]npУказатель на переменную количества полюсов передаточной функции $H(s)$.
По данному укащзателю будет записано количество нулей фильтра, которые были рассчитны и помещены в вектор p.
Память должна быть выделена.

Возвращает
RES_OK Массивы нулей и полюсов рассчитаны успешно.
В противном случае код ошибки.

Пример использования функции cheby2_ap_zp:

#include <stdio.h>
#include <stdlib.h>
#include "dspl.h"
#define ORD 7
int main()
{
void* handle; // DSPL handle
handle = dspl_load(); // Load DSPL function
complex_t z[ORD], p[ORD];
int nz, np, k;
double Rs = 40.0;
int res = cheby2_ap_zp(ORD, Rs, z, &nz, p, &np);
if(res != RES_OK)
printf("error code = 0x%8x\n", res);
printf("\nChebyshev type 2 zeros:\n");
for(k = 0; k < nz; k++)
printf("z[%2d] = %9.3f %9.3f j\n", k, RE(z[k]), IM(z[k]));
printf("\nChebyshev type 2 poles:\n");
for(k = 0; k < np; k++)
printf("p[%2d] = %9.3f %9.3f j\n", k, RE(p[k]), IM(p[k]));
dspl_free(handle); // free dspl handle
return 0;
}

Результат работы программы:

  Chebyshev type 2 zeros:
  z[ 0] =  0.000    1.026 j
  z[ 1] =  0.000   -1.026 j
  z[ 2] =  0.000    1.279 j
  z[ 3] =  0.000   -1.279 j
  z[ 4] =  0.000    2.305 j
  z[ 5] =  0.000   -2.305 j

  Chebyshev type 2 poles:
  p[ 0] = -1.203    0.000 j
  p[ 1] = -0.113    0.772 j
  p[ 2] = -0.113   -0.772 j
  p[ 3] = -0.398    0.781 j
  p[ 4] = -0.398   -0.781 j
  p[ 5] = -0.852    0.642 j
  p[ 6] = -0.852   -0.642 j
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 286

Используется в cheby2_ap().

◆ filter_zp2ab()

int filter_zp2ab ( complex_t z,
int  nz,
complex_t p,
int  np,
int  ord,
double *  b,
double *  a 
)

Функция пересчета нулей и полюсов аналогового фильтра в коэффициенты передаточной характеристики $ H(s) $.


\[ H(s) = \frac{\sum_{n = 0}^{N_z} b_n \cdot s^n}{\sum_{m = 0}^{N_p} a_m \cdot s^m} = \frac{\prod_{n = 0}^{N_z}(s-z_n)}{\prod_{m = 0}^{N_p} (s-p_m)} \]

Аргументы
[in]zУказатель на массив нулей передаточной характеристики.
Размер вектора [nz x 1].
Указатель может быть NULL если фильтр не имеет конечных нулей (nz=0).

[in]nzРазмер вектора нулей передаточной характеристики (может быть равен 0).

[in]pУказатель на массив полюсов передаточной характеристики.
Размер вектора [np x 1].
Указатель не может быть NULL.
Память должна быть выделена.

[in]npРазмер вектора полюсов передаточной характеристики (не может быть равен 0).

[in]ordПорядок фильтра для которого рассчитаны нули и полюса.
Количество коэффициентов числителя и знаменателя передаточной функции $H(s)$ равно ord+1.

[out]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[out]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Пересчет произведен успешно.
В противном случае код ошибки.
Заметки
Функция возвращает вещественные значения коэффициентов b и a передаточной функции. Это означает, что вектора нулей и полюсов должны хранить вещественные значения или комплексно-сопряженные пары нулей и полюсов, потому что мнимая часть коэффициентов b и a игнорируется и не сохраняется.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ap.c строка 515

Используется в butter_ap(), cheby1_ap(), cheby2_ap() и cheby2_ap_zp().

◆ low2high()

int low2high ( double *  b,
double *  a,
int  ord,
double  w0,
double  w1,
double *  beta,
double *  alpha 
)

Частотное преобразование ФНЧ-ФВЧ


Функция производит перобразование передаточной функции $ H(s) $ аналогового ФНЧ с частотой среза w0 рад/c в передаточную функцию $ F(s) $ аналоговго ФВЧ с частотой среза w1 рад/c.

Неравномерность АЧХ в полосе пропускания, уровень подавления в полосе заграждения и порядок фильтра остаются неизменными.

Аргументы
[in]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$ исходного аналогового ФНЧ.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$ исходного аналогового ФНЧ.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in]ordПорядок исходного фильтра и фильтра после переобразования.

[in]w0Частота среза исходного ФНЧ.

[in]w1Требуемая частота среза ФВЧ после преобразования.

[in,out]betaУказатель на вектор коэффициентов числителя передаточной функции $F(s)$ ФВЧ после преобразования.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in,out]alphaУказатель на вектор коэффициентов знаменателя передаточной функции $F(s)$ аналогового ФВЧ после преобразования.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Преоборазование расчитано успешно.

В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ft.c строка 59

◆ low2low()

int low2low ( double *  b,
double *  a,
int  ord,
double  w0,
double  w1,
double *  beta,
double *  alpha 
)

Частотное преобразование ФНЧ-ФНЧ


Функция производит перобразование передаточной функции $ H(s) $ аналогового ФНЧ с частотой среза w0 рад/c в передаточную функцию $ F(s) $ аналоговго ФНЧ с частотой среза w1 рад/c.

Неравномерность АЧХ в полосе пропускания, уровень подавления в полосе заграждения и порядок фильтра остаются неизменными.

Аргументы
[in]bУказатель на вектор коэффициентов числителя передаточной функции $H(s)$ исходного аналогового ФНЧ.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in]aУказатель на вектор коэффициентов знаменателя передаточной функции $H(s)$ исходного аналогового ФНЧ.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in]ordПорядок исходного фильтра и фильтра после переобразования.

[in]w0Частота среза исходного ФНЧ.

[in]w1Требуемая частота среза ФНЧ после преобразования.

[in,out]betaУказатель на вектор коэффициентов числителя передаточной функции $F(s)$ ФНЧ после преобразования.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

[in,out]alphaУказатель на вектор коэффициентов знаменателя передаточной функции $F(s)$ аналогового ФНЧ после преобразования.
Размер вектора [ord+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Преоборазование расчитано успешно.

В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ft.c строка 87

◆ ratcompos()

int ratcompos ( double *  b,
double *  a,
int  n,
double *  c,
double *  d,
int  p,
double *  beta,
double *  alpha 
)

Рациональная композиця


Функция рассчитывает композицию вида $Y(s) = (H \circ F)(s) = H(F(s))$, где

\[ H(s) = \frac{\sum\limits_{m = 0}^{n} b_m s^m} {\sum\limits_{k = 0}^{n} a_k s^k}, \ \ \ \ F(s) = \frac{\sum\limits_{m = 0}^{p} d_m s^m} {\sum\limits_{k = 0}^{p} с_k s^k}, \ \ \ \ Y(s) = \frac{\sum\limits_{m = 0}^{n \cdot p} \beta_m s^m} {\sum\limits_{k = 0}^{n \cdot p} \alpha_k s^k} \]

Функция рациональной композиции необходима для произведения частотных преобразований передаточных характеристик аналоговых и цифровых фильтров, а также для билинейного преобразования передаточных характеристик аналоговых фильтров в соответствующие передаточные характеристики цифровых фильтров.

Аргументы
[in]bУказатель на вектор коэффициентов числителя функции $H(s)$.
Размер вектора [n+1 x 1].
Память должна быть выделена.

[in]aУказатель на вектор коэффициентов знаменателя функции $H(s)$.
Размер вектора [n+1 x 1].
Память должна быть выделена.

[in]nПорядок полиномов рациональной функции $H(s)$.

[in]cУказатель на вектор коэффициентов числителя функции $F(s)$.
Размер вектора [p+1 x 1].
Память должна быть выделена.

[in]dУказатель на вектор коэффициентов знаменателя функции $F(s)$.
Размер вектора [p+1 x 1].
Память должна быть выделена.

[in]pПорядок полиномов рациональной функции $F(s)$.

[in,out]betaУказатель на вектор коэффициентов числителя функции $Y(s) = (H \circ F)(s)$.
Размер вектора [n*p+1 x 1].
Память должна быть выделена.

[in,out]alphaУказатель на вектор коэффициентов знаменателя функции $Y(s) = (H \circ F)(s)$.
Размер вектора [n*p+1 x 1].
Память должна быть выделена.

Возвращает
RES_OK Рациональная композиция рассчитана успешно.

В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле filter_ft.c строка 112

Используется в low2high() и low2low().