GNU Radio 3.5.3.2 C++ API
lpc.h
Go to the documentation of this file.
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