matlab切比雪夫拟合
Posted 王小会
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab切比雪夫拟合相关的知识,希望对你有一定的参考价值。
matlab中没有切比雪夫拟合的现成算法,这里把我程序中的这部分抽出来,说一下。
1、首先是切比雪夫计算式
function [ res ] = ChebyShev(num,i) if i==0 res=1; elseif i==1 res=num; else res=2*num*ChebyShev(num,i-1)-ChebyShev(num,i-2); end end
2、计算拟合系数
function [ coeff ] = ChebyCoeff( xfile,timefile ) x=load(xfile); time=load(timefile); B=zeros(length(time),11); %B L=x;%L sec_start=time(1); sec_end=time(end); for i=1:length(time) chang_sec=(2*time(i)-(sec_start+sec_end))/(sec_end-sec_start); for j=1:11 B(i,j)=ChebyShev(chang_sec,j); end end coeff=(B‘*B)\(B‘*L); end
3、根据系数计算拟合值
function [ res ] = ChebyValue( timefile,coeff,num ) res=0; time=load(timefile); change_time=(2*num-(time(1)+time(end)))/(time(end)-time(1)); for i=1:length(coeff) res=res+coeff(i)*ChebyShev(change_time,i); end end
以上是关于matlab切比雪夫拟合的主要内容,如果未能解决你的问题,请参考以下文章
利用MATLAB结合双线性变换法设计一个数字切比雪夫带通IIR滤波器
matlab 实现低通巴特沃斯滤波器切比雪夫1型/2型滤波器 和 椭圆滤波器