kopia lustrzana https://github.com/Dsplib/libdspl-2.0
added doc for periodogram
rodzic
141d792e3b
commit
f306d067f4
|
@ -1,5 +0,0 @@
|
||||||
*.dll
|
|
||||||
*.c
|
|
||||||
*.h
|
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ data types conversion.
|
||||||
|
|
||||||
\defgroup WIN_GROUP Windows function for filter design and spectrum analysis.
|
\defgroup WIN_GROUP Windows function for filter design and spectrum analysis.
|
||||||
|
|
||||||
|
\defgroup PSD_GROUP Digital spectral analysis
|
||||||
|
|
||||||
\defgroup HILBERT_GROUP Hilbert transform algorithms.
|
\defgroup HILBERT_GROUP Hilbert transform algorithms.
|
||||||
|
|
||||||
\defgroup FILTER_CONV_GROUP Convolution and digital filtration.
|
\defgroup FILTER_CONV_GROUP Convolution and digital filtration.
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
|
|
||||||
\defgroup WIN_GROUP Функции оконного взвешивания
|
\defgroup WIN_GROUP Функции оконного взвешивания
|
||||||
|
|
||||||
|
\defgroup PSD_GROUP Алгоритмы цифрового спектрального анализа
|
||||||
|
|
||||||
\defgroup HILBERT_GROUP Преобразование Гильберта
|
\defgroup HILBERT_GROUP Преобразование Гильберта
|
||||||
В данной группе собраны функции реализующие алгоритмы преобразования Гильберта.
|
В данной группе собраны функции реализующие алгоритмы преобразования Гильберта.
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,103 @@ exit_label:
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef DOXYGEN_RUSSIAN
|
#ifdef DOXYGEN_RUSSIAN
|
||||||
|
/*! ****************************************************************************
|
||||||
|
\ingroup PSD_GROUP
|
||||||
|
\fn
|
||||||
|
int psd_periodogram(double* x, int n,
|
||||||
|
int win_type, double win_param,
|
||||||
|
fft_t* pfft, double fs,
|
||||||
|
int flag, double* ppsd, double* pfrq)
|
||||||
|
\brief Непараметрическая оценка спектральной плотности сигнала методом
|
||||||
|
модифицированной периодограммы
|
||||||
|
|
||||||
|
Функция рассчитывает спектральную плотность мощности \f$ X(f) \f$
|
||||||
|
выборки сигнала длительности \$n \$ отсчетов методом модифицированной
|
||||||
|
периодограммы:
|
||||||
|
|
||||||
|
\f[
|
||||||
|
X(f) = \frac{1}{N U F_s} \Big| \sum_{m = 0}^{n-1} w(m) x(m) \exp
|
||||||
|
\left( -j \frac{2\pi} f m \right) \Big|^2,
|
||||||
|
\f]
|
||||||
|
где \f$ w(m) \f$ -- отсчёты оконной функции, \f$ F_s \f$ -- частота
|
||||||
|
дискретизации (Гц), \f$ U \f$ нормировочный коэффициент равный
|
||||||
|
|
||||||
|
\f[
|
||||||
|
U \sum_{m = 0}^{n-1} w^2(m)
|
||||||
|
\f]
|
||||||
|
|
||||||
|
При использовании прямоугольного окна модифицированная периодограмма переходит
|
||||||
|
в стандартную периодограмму.
|
||||||
|
|
||||||
|
Расчет спектральной плотности мощности ведется при помощи алгоритмов быстрого
|
||||||
|
преобразования Фурье, для дискретной сетки частот от 0 Гц до \f$ F_s \f$ Гц
|
||||||
|
(по умолчанию), или от \f$-F_s /2 \f$ до \f$F_s /2 \f$, если установлен флаг
|
||||||
|
расчета двусторонней периодограммы.
|
||||||
|
|
||||||
|
|
||||||
|
\note Периодограмма, как стандартная, так и модифицированная возвращает
|
||||||
|
асимптотически несмещенную, но несостоятельную оценку СПМ (уроверь флуктуаций
|
||||||
|
шумовой составляющей СПМ не уменьшается с ростом длины выборки `n`).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\param[in] x
|
||||||
|
Указатель на входной вектор вещественного сигнала \f$x(m)\f$,
|
||||||
|
\f$ m = 0 \ldots n-1 \f$. \n
|
||||||
|
Размер вектора `[n x 1]`. \n \n
|
||||||
|
|
||||||
|
\param[in] n
|
||||||
|
Размер вектора входного сигнала.
|
||||||
|
Также размер выходного вектора СПМ и
|
||||||
|
вектора частоты также равны `n`.\n\n
|
||||||
|
|
||||||
|
\param[in] win_type
|
||||||
|
Тип оконной функции, применяемой для модифицированной периодограммы.\n
|
||||||
|
Подробнее смотри описание функции \ref window. \n\n
|
||||||
|
|
||||||
|
|
||||||
|
\param[in] win_type
|
||||||
|
Параметр оконной функции.\n
|
||||||
|
Данный параметр используется, если задано параметрическая оконная функция.
|
||||||
|
Для непараметрических окон данный параметр игнорируется.\n
|
||||||
|
Подробнее смотри описание функции \ref window. \n\n
|
||||||
|
|
||||||
|
\param[in] pfft
|
||||||
|
Указатель на структуру `fft_t`. \n
|
||||||
|
Указатель может быть `NULL`. В этом случае объект структуры будет
|
||||||
|
создан внутри функции и удален перед завершением.\n
|
||||||
|
Если предполагается многократный вызов функции, то рекомендуется создать
|
||||||
|
объект `fft_t` и передавать в функцию, чтобы не создавать его каждый раз. \n\n
|
||||||
|
|
||||||
|
\param[in] fs
|
||||||
|
частота дискретизации выборки исходного сигнала (Гц). \n\n
|
||||||
|
|
||||||
|
\param[in] flag
|
||||||
|
Комбинация битовых флагов, задающих режим расчета:
|
||||||
|
\verbatim
|
||||||
|
DSPL_FLAG_LOGMAG - СПМ считать в логарифмическом масштабе в единицах дБ/Гц
|
||||||
|
DSPL_FLAG_PSD_TWOSIDED - двусторонняя СПМ (от -Fs/2 до Fs/2)
|
||||||
|
\endverbatim
|
||||||
|
|
||||||
|
\param[in, out] ppsd
|
||||||
|
Указатель на вектор СПМ расчитанных по входному сигналу $x$. \n
|
||||||
|
Размер вектора `[n x 1]`. \n
|
||||||
|
Память должна быть выделена. \n\n
|
||||||
|
|
||||||
|
\param[in, out] pfrq
|
||||||
|
Указатель на вектор частоты, соответсвующей
|
||||||
|
значениям рассчитанного вектора СПМ. \n
|
||||||
|
Размер вектора `[n x 1]`. \n
|
||||||
|
Указатель можеть быть `NULL`,в этом случае вектор частоты не
|
||||||
|
рассчитывается и не возвращается. \n\n
|
||||||
|
|
||||||
|
|
||||||
|
\return
|
||||||
|
`RES_OK` если расчет произведен успешно. \n
|
||||||
|
В противном случае \ref ERROR_CODE_GROUP "код ошибки". \n \n
|
||||||
|
|
||||||
|
\author Бахурин Сергей www.dsplib.org
|
||||||
|
***************************************************************************** */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
int DSPL_API psd_periodogram(double* x, int n,
|
int DSPL_API psd_periodogram(double* x, int n,
|
||||||
|
|
Ładowanie…
Reference in New Issue