最小二乘法消趋
本人用最小二乘法进行消趋,消趋后数据和原始数据比较,方差是一样一样的,为什么啊? 我认为不应该一样,建议再检查一下数据和程序方法。回复 2楼 的帖子
消趋程序fid=fopen('1.txt','r')
fs=1024
m1=1
x=fscanf(fid,'%f',inf)
sdatus=fclose(fid)
n=length(x)
t=(0:1/fs:(n-1)/fs)'
a1=polyfit(t,x,m1)
c1=polyval(a1,t)
y1=x-c1
plot(t,x,'r')
grid on
hold on
plot(t,y1,'b')
fid=fopen('m1xqhx1.txt','w')
for k=1:n
fprintf(fid,'%f\n',y1(k))
end
sdatus=fclose(fid)
求均值方差程序
fid1=fopen('1.txt','r')
fid2=fopen('m1xqhx1.txt','r')
x1=fscanf(fid1,'%f',inf)
x2=fscanf(fid2,'%f',inf)
v1=var(x1)
v2=var(x2)
m1=mean(x1)
m2=mean(x2)
sdatus=fclose(fid1)
sdatus=fclose(fid2)
有问题吗?
回复 2楼 的帖子
2楼的你有解决办法吗?
你可以验证一下
是我的程序写的有问题吗
最小二乘法消趋
问题已经解决是数据的类型出了问题
把数据改为精度更高的即可解决
我改后的数据方差在小数点6位后才又不同
而开始只是保留到后3位
嘿嘿:lol 请问,数据消趋的目的是什么?今天老师说我们也要考虑一下。谢谢!
回复 6楼 的帖子
趋势项是由于测试仪器温度变化造成的零点漂移产生的,对数据进行变换时,如FFT,它对变换的结果影响比较大,对数据进行二次积分时,变换结果更有可能会失真,直接影响信号分析的正确性。当然消趋了。 谢谢!
再问一下
你的程序中 第三句话m1=1 是什么意思?
该怎样选取?
[ 本帖最后由 liujia1067 于 2008-8-4 15:26 编辑 ]
回复 8楼 liujia1067 的帖子
m是多项式趋势项的阶次,可以是0、1、2、3......m=1时趋势项是线性的,m>1是非线性的,对于某个数据,如果不知道趋势项是线性还是非线性,只好依次尝试了,但是消趋后的数据吆喝原始数据进行比较才能判断m的值是不是合适,现在对于比较的参数还不是很清楚,有很多个版本,这个还要大家共同努力才行了
页:
[1]