GNU Radio 3.6.5 C++ API
|
00001 /*---------------------------------------------------------------------------*\ 00002 00003 FILE........: lpc.h 00004 AUTHOR......: David Rowe 00005 DATE CREATED: 24/8/09 00006 00007 Linear Prediction functions written in C. 00008 00009 \*---------------------------------------------------------------------------*/ 00010 00011 /* 00012 Copyright (C) 2009 David Rowe 00013 00014 All rights reserved. 00015 00016 This program is free software; you can redistribute it and/or modify 00017 it under the terms of the GNU Lesser General Public License version 2.1, as 00018 published by the Free Software Foundation. This program is 00019 distributed in the hope that it will be useful, but WITHOUT ANY 00020 WARRANTY; without even the implied warranty of MERCHANTABILITY or 00021 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 00022 License for more details. 00023 00024 You should have received a copy of the GNU Lesser General Public License 00025 along with this program; if not, see <http://www.gnu.org/licenses/>. 00026 */ 00027 00028 #ifndef __LPC__ 00029 #define __LPC__ 00030 00031 #define LPC_MAX_ORDER 20 00032 00033 void hanning_window(float Sn[], float Wn[], int Nsam); 00034 void autocorrelate(float Sn[], float Rn[], int Nsam, int order); 00035 void autocorrelate_freq(float Pw[], float w[], float R[], int Nsam, int order); 00036 void levinson_durbin(float R[], float lpcs[], int order); 00037 void inverse_filter(float Sn[], float a[], int Nsam, float res[], int order); 00038 void synthesis_filter(float res[], float a[], int Nsam, int order, float Sn_[]); 00039 void find_aks(float Sn[], float a[], int Nsam, int order, float *E); 00040 void weight(float ak[], float gamma, int order, float akw[]); 00041 00042 #endif