基于SP++ eigen实现matlab 语音信号处理
基于sp++ eigen 用C++ 实现matlab音频视频 信号处理的算法实现
谢娘蓝桥
绿水青山境长静,花落虽频意自闲。
展开
-
基于rbf核SVM C++ 实现
//svm rbf核函数 rbf_sigma 不能为0MatrixXd SVM_rbf(MatrixXd u, MatrixXd v, double rbf_sigma=1){ double sigma = -1 / (pow(rbf_sigma, 2) * 2); MatrixXd tmp = u.array().square().rowwise().sum().square().s...原创 2019-01-11 10:42:49 · 924 阅读 · 0 评论 -
基于Eigen 实现 matlab fftshift
啥也不说 上代码 cirshift 见以前的文章/*Fun: fftshiftauthor:christime:2018//11/30input:x :输入矩阵Input dim 0,按x总数下移位一半1,下移动总行数的的一半,右移一次2,下移栋总列数的一半,右移动2次大于2时,右移动 dim次*/MatrixXd fftshift(MatrixXd x, int d...原创 2018-11-30 10:51:39 · 1133 阅读 · 0 评论 -
MFC 读取ini 及写入ini 方法
1.头文件加 #include<io.h>2. if ((_access(".\\SysCfg.ini", 0) == -1)) { WritePrivateProfileString("cfg", "x_points", "64", ".\\SysCfg.ini"); WritePrivateProfileString("cfg", &qu原创 2018-11-14 16:43:55 · 1078 阅读 · 0 评论 -
基于eigen 实现 matlab sim 的 两层神经网络实现
//输出二分类问题Type Neural_Work(Type*data,int datalength=10240,int fs=48000){ MatrixXd W1(25,24); MatrixXd W2(2,25); VectorXd xmin(24); VectorXd xmax(24); for (int i = 0; i < xmin.size(); i++)...原创 2018-11-13 19:58:43 · 504 阅读 · 0 评论 -
基于 eigen matlab mapminmax 函数的实现
//归一化函数 x 输入向量 ymin 输出最小值 ymax 输出最大值VectorXd mapminmax(VectorXd x, Type ymin =-1, Type ymax=1){ VectorXd y(x.size()) ; if ((x.maxCoeff() <= ymax) && (x.minCoeff() >= ymin)) { y...原创 2018-11-09 13:45:00 · 453 阅读 · 0 评论 -
基于eigen 实现mfcc提取特征矩阵的实现
MatrixXd mfcc_m(double *x, int length, int fs, int p, int framesize, int inc){ MatrixXd bank = melbankm(p, framesize, fs, 0, 0.5, 1); //bank.operator/=(splab::max(splab::max(bank))); bank = bank ...原创 2018-11-09 13:38:04 · 736 阅读 · 0 评论 -
基于eigen实现matlab hamming hann blakman 窗函数的实现
//窗函数VectorXd calc_window(int half, int n, int window){ VectorXd x(half); //x.setllinspace((Type)0, (Type)(half - 1), half) / (Type)(n - 1)); x.setLinSpaced(half, 0, (half - 1)); x = x.array...原创 2018-11-07 11:00:56 · 1213 阅读 · 7 评论 -
基于sp++ 实现matlab cov 函数
// 向量的方差Type cov(Vector<Type> x){ Type x_mean = sum(x) / x.size(); Type x_std = sum(pow(x - x_mean, (Type)2)) / (x.size() - 1); return x_std;}//两向量的协方差Matrix<Type>cov_Matrix(Vecto...原创 2018-10-19 17:24:59 · 497 阅读 · 0 评论 -
Linux下编译 sp++库及实现过程
1.首先编写动态库的cpp源文件及头文件2.编译生成so文件g++ vpr.cpp -fPIC -shared -o libvpr.so -lm-lm 添加math相关函数的支持3.编写可执行文件g++ main.cpp -o main -L ./ -lcac -L 是库文件的地址 -l后面跟的是so文件名去掉lib(例如上面那个 就是libcac.o文件)...原创 2018-10-29 15:30:42 · 1009 阅读 · 0 评论 -
基于Eigen 的hanning窗计算
//hanning窗函数VectorXd calc_hanning(int m, int n){ VectorXd w, w1, w2, w3; w1.setLinSpaced( m,1, m); w2 = w1.array()*(2 * M_PI / (n + 1)); w3 = 0.5*w2.array().cos(); w = 0.5 - w3.array(); retu...原创 2018-11-06 13:18:45 · 552 阅读 · 0 评论 -
基于sp++ matlab enframe c++ 实现
调用的SP++ 矩阵运算的库。下载地址https://www.oschina.net/p/tspl 1.带窗参数版本 //C++实现enframe分帧函数//输入://float* data:信号源(行向量)//datalength data长度//win 窗函数参数//winlength:每一帧的长度//hop:一帧与一帧之间移动的样点数,有的称为非重叠的长度...原创 2018-09-18 19:00:36 · 468 阅读 · 0 评论 -
基于SP ++ 实现 fft 幅度 相位提取
//% 将时域脉冲信号x转换成频域声压级H(频率响应)//x 时域信号//Nlen fft点数//fs 采样频率//% fw 进行fft后输出频率 s//% H 频域信号幅值//% phase 频域信号相位Vector<Type>my_fft(Vector<Type>x, int Nlen, int fs){ Type Fs = fs / Nlen...原创 2018-09-20 19:32:53 · 1217 阅读 · 0 评论 -
基于sp++ matlab hanning窗 C++ 实现
Vector<Type> hanning_win(int n){ Vector<Type> w; bool type = true; w = hanning_win(n, type); return w;}// n 阶数 type: true->symmetric 对称 false->periodicVector<Type> h...原创 2018-09-25 19:19:25 · 854 阅读 · 0 评论 -
基于SP++ matlab A计权的 C++实现
/* int :data 输入数据 responseType true :slow 1.0s false:fast 0.125s*/Vector<float> A_weight(float * data, int datalength, bool responseType, float Fs) { //% Note: A quite location will ...原创 2018-09-27 19:54:51 · 1314 阅读 · 0 评论 -
基于sp++ matlab sign 符合函数实现
sign(整数)=1; sign(负数)=-1; sign(零)=0; 向量版Vector<Type>sign(Vector<Type> a){ Vector<Type> p(a.size()); for (int i = 0; i < a.size(); i++) { if (a[i] > 0)...原创 2018-10-17 13:25:41 · 496 阅读 · 0 评论 -
基于SP++ mel频率倒谱系数
感知频率和实际频率转换函数Vector<Type>frq2mel(Vector<Type> frq){ Type k = 1127.01048; Vector<Type> af(frq.size(), abs(frq)); Vector<Type> mel(frq.size(), sign(frq)*log((Typ...原创 2018-10-17 13:28:05 · 269 阅读 · 0 评论 -
基于SP++ mel滤波器组实现
//win_type =0 w=='n' 汉宁窗 win_type =1 w=='m'汉明窗Matrix<Type> melbankm(Type p, Type n, Type fs, Type fl, Type fh, int win_type){ Vector<Type>mflh(2); mflh(1) = fl*fs; mflh(2) = fh*f...原创 2018-10-17 14:35:25 · 776 阅读 · 0 评论 -
基于sp++ matlab mfcc 特征提取 c /c ++ 实现
//mel 滤波器函数//x 输入序列 fs采样率 p滤波器个数 framesize 帧大小 inc 帧移//提取mel滤波器参数用汉明窗函数Matrix<Type> mfcc_m(double *x, int length,int fs, int p, int framesize, int inc){ Matrix<Type> bank = melban...原创 2018-10-18 20:51:03 · 463 阅读 · 0 评论 -
基于sp++实现 [ 0 1 ]归一化 [-1 1] 归一化(matlab mapminmax 函数的实现)
matlab中归一的算法:y =(ymax-ymin)*(x-xmin)/(xmax-xmin)+ ymin; 简化到[0 1]即为y =(x-min(x))/(max(x)-min(x));基于SP ++实现过程如下: //归一化函数 x 输入向量 ymin 输出最小值 ymax 输出最大值Vector<Type>mapminmax(Vector<Ty...原创 2018-10-19 09:52:35 · 1927 阅读 · 0 评论 -
基于sp++ 实现matlab corr corrcoef函数 计算皮尔逊相关系数
参考概念https://blog.csdn.net/crcr/article/details/58594432?utm_source=blogxgwz0用最简单的公式4可以实现下面代码。//皮尔逊相关系数计算Type myPearson(Vector<Type>x, Vector<Type>y){ Type A = sum(x*y) - (sum(x...原创 2018-10-19 11:27:11 · 1234 阅读 · 0 评论 -
基于 sp++ 简单的声纹比对
//声纹识别Type nonfilter_speccor(Type*x1, Type*x2, int length, int fs){ Matrix<Type>Cn1 = mfcc_m(x1, length, fs,24 ,1024, 512); Cn1 = mapminmax(Cn1, -1, 1); Matrix<Type>Cn2 = mfcc_m(x2, ...原创 2018-10-19 17:08:44 · 1805 阅读 · 1 评论