baobao1982 发表于 2008-6-29 15:55

最小二乘法消趋

本人用最小二乘法进行消趋,消趋后数据和原始数据比较,方差是一样一样的,为什么啊?

wanyeqing2003 发表于 2008-6-29 16:55

我认为不应该一样,建议再检查一下数据和程序方法。

baobao1982 发表于 2008-6-29 17:44

回复 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)

有问题吗?

baobao1982 发表于 2008-6-30 19:08

回复 2楼 的帖子

2楼的
你有解决办法吗?
你可以验证一下
是我的程序写的有问题吗

baobao1982 发表于 2008-7-5 09:26

最小二乘法消趋

问题已经解决
是数据的类型出了问题
把数据改为精度更高的即可解决

我改后的数据方差在小数点6位后才又不同
而开始只是保留到后3位

嘿嘿:lol

liujia1067 发表于 2008-7-5 15:32

请问,数据消趋的目的是什么?今天老师说我们也要考虑一下。谢谢!

baobao1982 发表于 2008-7-18 10:37

回复 6楼 的帖子

趋势项是由于测试仪器温度变化造成的零点漂移产生的,对数据进行变换时,如FFT,它对变换的结果影响比较大,对数据进行二次积分时,变换结果更有可能会失真,直接影响信号分析的正确性。
当然消趋了。

liujia1067 发表于 2008-8-4 15:24

谢谢!
再问一下
   你的程序中 第三句话m1=1 是什么意思?
   该怎样选取?

[ 本帖最后由 liujia1067 于 2008-8-4 15:26 编辑 ]

baobao1982 发表于 2008-8-30 11:02

回复 8楼 liujia1067 的帖子

m是多项式趋势项的阶次,可以是0、1、2、3......
m=1时趋势项是线性的,m>1是非线性的,对于某个数据,如果不知道趋势项是线性还是非线性,只好依次尝试了,但是消趋后的数据吆喝原始数据进行比较才能判断m的值是不是合适,现在对于比较的参数还不是很清楚,有很多个版本,这个还要大家共同努力才行了
页: [1]
查看完整版本: 最小二乘法消趋