void Convert(double BMWL,double NORMAL,double *BMwindowVct,float *RR,int * rR,int lenz,double *RRproc)
{
double *X=NULL;
double *Y=NULL;
if (NULL==X)
{
X=new double[BMWL];
}
if (NULL==Y)
{
Y=new double[NORMAL];
}
for(int i=0;i<BMWL;i++)
{
X[i]=BMwindowVct[i];
}
for(int i=0;i<NORMAL;i++)
{
Y[i]=RR[(int)rR[i]];
}
double *zptr=NULL;
double s;
double *xp=NULL;
double *yp=NULL;
int n,n_lo,n_hi;
double *Z=NULL;
if (NULL==Z)
{
Z=new double[lenz];
}
zptr=Z;
for (int i=0;i<lenz;i++)
{
s=0.0;
n_lo=0>(i-NORMAL+1)?0:i-NORMAL+1;
n_hi=BMWL-1<i?BMWL-1:i;
xp=X+n_lo;
yp=Y+i-n_lo;
for (n=n_lo;n<=n_hi;n++)
{
s+=*xp * *yp;
xp++;
yp--;
}
*zptr=s;
zptr++;
}
for(int i=0;i<lenz;i++)
{
RRproc[i]=Z[i];
}
delete [] X;
X=NULL;
delete [] Y;
Y=NULL;
delete [] Z;
Z=NULL;
int m=0;
for(int l=(ceil((double)BMWL/2-2));l<(ceil((double)BMWL/2)+NORMAL-2);l++)
{
RRproc[m]=RRproc[l];
m++;
}
}
分享到:
相关推荐
大学时期的C语言实现卷积,非子函数,需要的请稍作更改。zsbd,zsbd,zsbd,zsbd,zsbd,zsbd,zsbd,.
卷积(Convolve)算法在TMS320C5402上的实现(C语言编写)使用了convol库函数。
DFT的matlab源代码filter.c 这是matlab过滤功能的C实现 fft.c 这将提取fftwf_plan_dft_1d接口 依存关系 fft.c需要库。 测试用例 filter.c的性能优于matlab。 确切的测试用例敬请期待。
200个C语言常用函数实现代码大全
数字信号处理:调用子函数,实现对32点矩形序列和x(n)=n+1序列分别进行DFT,两者线形卷积,原序列补点至63点后的DFT和对DFT乘积的IDFT。显示为数值和坐标轴中的图像。vista系统不能看图,xp以下的系统可以。在win-c...
1、编制x(n)=n+1 0≤n≤31 和 h(n)=R32(n) 的C程序。...3、求y(n)=x(n)*h(n)的卷积。 4、求y(n)=IDFT[X(k)•H(k)] (注意补点)。 5、编制计算x(n)=n+1 0≤n≤16 的FFT程序。 6、将n扩展为32点,求x(n)=n+1 的FFT程序。
C语言函数库大全
摘 要:介绍了用MATLAB软件计算连续时间信号卷积的... 两个离散时间信号相卷积,可直接利用MATLABM文件中的conv函数;两个连续时间信号相卷积若采用数值解,首先要对连续时间信号采样得到离散信号f1和f2,再用con
发那科机器人操作的C语言函数库及说明,支持多个操作系统
C语言完成,图形界面的卷积积分运算器,根据输入的函数进行卷积运算
falab是用C语言写的算法库,目标是为音视频编解码、人工智能、网络传输等提供基础算法模块,并让代码尽可能跨平台使用和二次迭代开发,支持嵌入式开发和DSP实现,此库里的代码也提供由模块集成的编解码库,近期...
C语言实现的功能,金品源码
6.1窗函数方法 第六章 FIR数字滤波器的设计 6.2频域最小误差平方设计 6.3切比雪夫逼近方法 1.1功率谱估计的周期图方法 第一章 经典谱估计 1.2功率谱估计的相关方法 2.1求解一般托布利兹方程组的莱文森...
实用C代码
实用的C语言实现代码
C语言实现的功能,金品源码
C语言实现的功能,金品源码
实用的C语言实现代码
C语言实现的功能,金品源码