一、matlab中arx函数辨识为什么需要"采样周期
在matlab中实现函数的抽样用法:一、dyaddown功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列。格式:
y= dyaddown(x, EVENODD)
当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2.y= dyaddown(x)
EVENODD缺省,按EVENODD=0
二、dyadup
功能:对时间序列进行二元插值,每隔一个元素插入一个0元素,得到一个时间序列。格式:
y= dyadup(x, EVENODD)
当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2.y= dyadup(x)
EVENODD缺省,按EVENODD=0
三、interp
功能:对时间序列进行整数倍插值,使得时间序列曲线更光滑。格式: 1.y= interp(x, r)
在x中插入一些数据,使得插值后的序列y的长度为x的r倍。 2.y= interp(x, r, l, alpha)
插值后得到的序列y的长度为x的r倍。 3.[y, b]= interp(x, r, l, alpha)
插值后同时得到一个低通插值滤波器的系数,长度为2rl+1.说明: x--时间序列 r--插入点的倍数 l--插值滤波器长度
alpha--滤波器的截止频率,0<alpha<=1,假设原序列的采样频率之半为1,缺省时l=4,alpha=0.5.
y--插值后得到的时间学列
b--低通插值滤波器的系数,长度为2rl+1
四、downsample
功能:对时间序列重采样,在原时间序列中等间隔地取出一些项,得到新序列。格式:
1.y= downsample(x, n)
从第一项开始,等间隔n对x采样,得到的序列为y。 2.y= downsample(x, n, phase)
从第phase+1项开始,等间隔n对x采样,得到的序列为y,而0<=phase<n.
五、decimate
功能:对时间序列进行整数倍采样处理,使得时间序列的长度降低。格式:
1.y= decimate(x, r)
将时间序列x的采样频率降低为原来的1/r,即length(y)=length(x)/r。在抽取之前,默认地采用了8阶chebyshevI型低通滤波器压缩频带。 2.y= decimate(x, r, n)
采用n阶chebyshevI型低通滤波器。 3.y= decimate(x, r,‘fir’)
采用30阶的FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。 4.y= decimate(x, r, n,‘fir’)
指定当对时间序列进行整数倍抽取的时候,采用n点FIR型低通滤波器来压缩频带,对时间序列进行整数倍抽取。说明: x--时间序列 r--采样要降低的倍数
n--指定所采用的chebyshevI型低通滤波器的阶数‘fir’--FIR滤波器
六、resample
功能:对时间序列进行重采样。格式:
1.y= resample(x, p, q)
采用多相滤波器对时间序列进行重采样,得到的序列y的长度为原来的序列x的长度的p/q倍,p和q都为正整数。此时,默认地采用使用FIR方法设计的抗混叠的低通滤波器。 2.y= resample(x, p, q, n)
采用chebyshevIIR型低通滤波器对时间序列进行重采样,滤波器的长度与n成比例,n缺省值为10.
3.y= resample(x, p, q, n, beta)
beta为设置低通滤波器时使用Kaiser窗的参数,缺省值为5. 4.y= resample(x, p, q, b)
b为重采样过程中滤波器的系数向量。 5.[y, b]= resample(x, p, q)
输出参数b为所使用的滤波器的系数向量。说明: x--时间序列
p、q--正整数,指定重采样的长度的倍数。
n--指定所采用的chebyshevIIR型低通滤波器的阶数,滤波器的长度与n成比列。 beta--设计低通滤波器时使用Kaiser窗的参数,缺省值为5。
二、请问MATLAB中interp和resample有什么区别
三次样条插值直接用spline函数做。
边界条件加在y的首尾,第一个表示y'(x0),最后一个表示y'(xt)。
如果不加边界条件,默认是not-a-knot边界条件(注意不是自然边界条件)
自然边界条件的插值要用csape函数才能得到。
如果用interp1,则只能使用spline函数的默认边界条件,即not-a-knot条件。
下面是例子
x=0:3:9;
y=x.*cos(x);
xx=linspace(0,9);
plot(x,y,'o');%样本点
hold on;
plot(xx,interp1(x,y,xx,'spline'),'r');%interp1只能使用默认边界条件
plot(xx,spline(x,[0 y 0],xx),'r:');%spline可以使用第一类边界条件,这里y'(0)=y'(9)=0
pp=csape(x,y,'second');
plot(xx,fnval(pp,xx))%第二类边界条件要用csape做,这里自然边界条件
legend('样本点','默认边界条件','一阶导为0','自然边界条件','location','south')
OK,本文到此结束,希望对大家有所帮助。