前言
最近在弄数字信号处理的内容,需要用到曲线拟合来进行滤波降噪,以下通过c语言来实现算法的内容。
一、代码实现
#define RANK_ 3 多项式次数
/*
*********************************************************************************************************
* 函 数 名: polyfit
* 功能说明: 多项式曲线拟合(与matlab效果一致)
* 形 参: d_X 输入的数据的x值
d_Y 输入的数据的y值
d_N 输入的数据的个数
rank 多项式的次数
coeff 输出的系数
* 返 回 值: 无
*********************************************************************************************************
*/
//原理:At * A * C = At * Y ,其中 At 为 A 转置矩阵,C 为系数矩阵
void polyfit(double *d_X, double *d_Y, int d_N, int rank, double *coeff)
{
if(RANK_ != rank) //判断次数是否合法
return;
int i,j,k;
double aT_A[RANK_ + 1][RANK_ + 1] = {
0};
double aT_Y[RANK_ + 1] = {
0};
for(i = 0; i < rank + 1; i++) //行
C语言实现多项式曲线拟合算法,

文章介绍了如何使用C语言实现与MATLAB效果一致的多项式曲线拟合算法,主要用于数字信号处理中的滤波降噪。代码中定义了polyfit函数,通过高斯列主元素消去法解决线性方程组,实现不同次数的多项式拟合。并对比了结果,与MATLAB的polyfit函数得出相同结论。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



