求这组数据的初相位??
第一列表示时间,第二列是函数值,能否求出其初相位?表示怎样的一个正弦函数?有与数据本身原因,振幅可以成相等,即无变化!!!!1.0000 0.192620
1.2500 0.263477
1.5000 0.336761
1.7500 0.409844
2.0000 0.480295
2.2500 0.545881
2.5000 0.604578
2.7500 0.654596
3.0000 0.694411
3.2500 0.722789
3.5000 0.738805
3.7500 0.741866
4.0000 0.731717
4.2500 0.708447
4.5000 0.672480
4.7500 0.624567
5.0000 0.565763
5.2500 0.497400
5.5000 0.421055
5.7500 0.338505
6.0000 0.251691
6.2500 0.162661
6.5000 0.735247E-01
6.7500 -0.136010E-01
7.0000 -0.966450E-01
7.2500 -0.173632
7.5000 -0.242734
7.7500 -0.302310
8.0000 -0.350955
8.2500 -0.387525
8.5000 -0.411176
8.7500 -0.421375
9.0000 -0.417919
9.2500 -0.400940
9.5000 -0.370900
9.7500 -0.328580
10.000 -0.275062
10.250 -0.211702
10.500 -0.140096
10.750 -0.620423E-01
11.000 0.205040E-01
11.250 0.105479
11.500 0.190758
11.750 0.274213
12.000 0.353760
12.250 0.427412
12.500 0.493330
12.750 0.549862
13.000 0.595592
13.250 0.629368
13.500 0.650335
13.750 0.657950
14.000 0.652003
14.250 0.632616
14.500 0.600244
14.750 0.555660
15.000 0.499939
15.250 0.434431
15.500 0.360726
15.750 0.280617
16.000 0.196055
16.250 0.109101
16.500 0.218746E-01
16.750 -0.634965E-01
17.000 -0.144930
17.250 -0.220441
17.500 -0.288189
17.750 -0.346525
18.000 -0.394028
18.250 -0.429549
18.500 -0.452227
18.750 -0.461522
19.000 -0.457219
19.250 -0.439439
19.500 -0.408634
19.750 -0.365577
20.000 -0.311339
20.250 -0.247270
20.500 -0.174958
20.750 -0.961958E-01
21.000 -0.129336E-01
21.250 0.727678E-01
21.500 0.158788
21.750 0.242998
22.000 0.323315
22.250 0.397751
22.500 0.464463
22.750 0.521800
23.000 0.568338
23.250 0.602923
23.500 0.624693
23.750 0.633101
24.000 0.627930
24.250 0.609297
24.500 0.577650
24.750 0.533757
25.000 0.478688
25.250 0.413788
25.500 0.340644
25.750 0.261045
26.000 0.176940
26.250 0.903879E-01
26.500 0.350985E-02
26.750 -0.815666E-01
27.000 -0.162758
27.250 -0.238074
27.500 -0.305673
27.750 -0.363900
28.000 -0.411330
28.250 -0.446805
28.500 -0.469461
28.750 -0.478749
29.000 -0.474447
29.250 -0.456670
29.500 -0.425863
29.750 -0.382790
30.000 -0.328519
30.250 -0.264393
30.500 -0.191996
30.750 -0.113116
31.000 -0.297010E-01
31.250 0.561906E-01
31.500 0.142439
31.750 0.226915
32.000 0.307535
32.250 0.382308
32.500 0.449389
32.750 0.507121
33.000 0.554077
33.250 0.589096
33.500 0.611310
33.750 0.620167
34.000 0.615442
34.250 0.597246
34.500 0.566019
34.750 0.522525
35.000 0.467827
35.250 0.403265
35.500 0.330422
35.750 0.251082
36.000 0.167193
36.250 0.808115E-01
36.500 -0.594209E-02
36.750 -0.909396E-01
37.000 -0.172096
37.250 -0.247419
37.500 -0.315063
37.750 -0.373368
38.000 -0.420905
38.250 -0.456511
38.500 -0.479314
38.750 -0.488758
39.000 -0.484616
39.250 -0.466996
39.500 -0.436334
39.750 -0.393391
40.000 -0.339227
40.250 -0.275180
40.500 -0.202829
40.750 -0.123959
41.000 -0.405149E-01
41.250 0.454468E-01
41.500 0.131807
41.750 0.216436
42.000 0.297249
42.250 0.372253
42.500 0.439599
42.750 0.497626
43.000 0.544902
43.250 0.580261
43.500 0.602828
43.750 0.612044
44.000 0.607679
44.250 0.589835
44.500 0.558948
44.750 0.515774
45.000 0.461370
45.250 0.397071
45.500 0.324455
45.750 0.245304
46.000 0.161562
46.250 0.752842E-01
46.500 -0.114101E-01
46.750 -0.963924E-01
47.000 -0.177576
47.250 -0.252967
47.500 -0.320714
47.750 -0.379156
48.000 -0.426857
48.250 -0.462648
48.500 -0.485651
48.750 -0.495305
49.000 -0.491376
49.250 -0.473962
49.500 -0.443496
49.750 -0.400731
50.000 -0.346722
50.250 -0.282800
50.500 -0.210541
50.750 -0.131726
51.000 -0.482964E-01
51.250 0.376924E-01
51.500 0.124122
51.750 0.208864
52.000 0.289829
52.250 0.365025
52.500 0.432597
52.750 0.490882
53.000 0.538441
53.250 0.574104
53.500 0.596989
53.750 0.606530
54.000 0.602491
54.250 0.584967
54.500 0.554388
54.750 0.511502
55.000 0.457362
55.250 0.393296
55.500 0.320879
55.750 0.241889
56.000 0.158266
56.250 0.720642E-01
56.500 -0.145978E-01
56.750 -0.995910E-01
57.000 -0.180827
57.250 -0.256311
57.500 -0.324187
57.750 -0.382790
58.000 -0.430679
58.250 -0.466679
58.500 -0.489907
58.750 -0.499795
59.000 -0.496100
59.250 -0.478916
59.500 -0.448669
59.750 -0.406104
60.000 -0.352272
60.250 -0.288497
60.500 -0.216352
60.750 -0.137613
61.000 -0.542195E-01
61.250 0.317755E-01
61.500 0.118254
61.750 0.203087
62.000 0.284186
62.250 0.359554
62.500 0.427333
62.750 0.485857
63.000 0.533681
63.250 0.569629
63.500 0.592814
63.750 0.602663
64.000 0.598933
64.250 0.581713
64.500 0.551425
64.750 0.508812
65.000 0.454920
65.250 0.391073
65.500 0.318840
65.750 0.239995
66.000 0.156477
66.250 0.703377E-01
66.500 -0.163056E-01
66.750 -0.101324
67.000 -0.182626
67.250 -0.258216
67.500 -0.326235
67.750 -0.385012
68.000 -0.433102
68.250 -0.469325
68.500 -0.492791
68.750 -0.502924
69.000 -0.499477
69.250 -0.482537
69.500 -0.452521
69.750 -0.410170
70.000 -0.356527
70.250 -0.292913
70.500 -0.220894
70.750 -0.142244
71.000 -0.588988E-01
71.250 0.270899E-01
71.500 0.113605
71.750 0.198518
72.000 0.279738
72.250 0.355265
72.500 0.423240
72.750 0.481991
73.000 0.530069
73.250 0.566292
73.500 0.589766
73.750 0.599913
74.000 0.596481
74.250 0.579555
74.500 0.549548
74.750 0.507198
75.000 0.453545
75.250 0.389908
75.500 0.317849
75.750 0.239142
76.000 0.155720
76.250 0.696344E-01
76.500 -0.169988E-01
76.750 -0.102050
77.000 -0.183427
77.250 -0.259131
77.500 -0.327301
77.750 -0.386260
78.000 -0.434560
78.250 -0.471013
78.500 -0.494725
78.750 -0.505113
79.000 -0.501922
79.250 -0.485233
79.500 -0.455458
79.750 -0.413328
80.000 -0.359883
80.250 -0.296438
80.500 -0.224555
80.750 -0.146002
81.000 -0.627143E-01
81.250 0.232596E-01
81.500 0.109803
81.750 0.194787
82.000 0.276119
82.250 0.351798
82.500 0.419962
82.750 0.478931
83.000 0.527256
83.250 0.563745
83.500 0.587502
83.750 0.597939
84.000 0.594800
84.250 0.578160
84.500 0.548429
84.750 0.506336
85.000 0.452915
85.250 0.389481
85.500 0.317592
85.750 0.239016
86.000 0.155685
86.250 0.696477E-01
86.500 -0.169807E-01
86.750 -0.102070
87.000 -0.183528
87.250 -0.259351
87.500 -0.327677
87.750 -0.386823
88.000 -0.435338
88.250 -0.472028
88.500 -0.495991
88.750 -0.506639
89.000 -0.503711
89.250 -0.487279
89.500 -0.457749
89.750 -0.415848
90.000 -0.362607
[ 本帖最后由 zhlong 于 2007-6-4 17:24 编辑 ] 看了数据,从作出的图看出有明显的趋势项和直流分量,应先消除直流分量和趋势项,再进行FFT分析处理,从中提取初始相位的信息。 我也想知道,那位大侠知道的就帮帮我们吧,谢谢啦:loveliness: 有关消直流分量和趋势项,在本论坛上有不少帖子,可先搜查一下;另可参看王济和胡晓编 “MATLAB在振动信号处理中的应用” 中国水利水电出版社,其中有一章介绍了预处理,并有相应的MATLAB程序。用FFT求初始相角,也可搜查一下本论坛的帖子。 谢谢楼上了:loveliness: :handshake 在王济和胡晓编 的“MATLAB在振动信号处理中的应用”中,例程大多都是采用“input、fopen、fscanf、fclose...”这样的命令编写的,我在用input输入数据文件名时总是出错,fid的值总为-1.看了说明后将已有的EXCEL文件转换为TXT格式的了,可还是出错,麻烦哪位指点一下,编写这类程序时,对输入数据文件的格式要求。 本帖最后由 VibInfo 于 2016-11-9 15:34 编辑
原帖由 zhly 于 2008-7-5 21:22 发表
在王济和胡晓编 的“MATLAB在振动信号处理中的应用”中,例程大多都是采用“input、fopen、fscanf、fclose...”这样的命令编写的,我在用input输入数据文件名时总是出错,fid的值总为-1.看了说明后将已有的EXCEL文件转换为TXT格式的了,可还是出错,麻烦哪位指点一下,编写这类程序时,对输入数据文件的格式要求。
既然已把数据存放在TXT文件中,则可以通过load命令直接读入,只要输入文件名:
filename=input('File name','s');
x=load(filename);
至于其它参数,都可以在程序中设置的。
信号是第1点相位350.04度的正弦波
楼主, 把你的数据文件第1列全部去掉, 只剩下第2列构成一个phase.txt文件, 即可输入用FFT和apFFT组合校正法校正,信号是一个含直流分量0.076975的余弦波
信号频率 3.1984 (相对N=128)
信号振幅 0.55102
信号第1点相位 260.04 度(校正值为余弦波相位, 相对正弦波是350.04)
对照图1a输入信号波形, 原信号一开始有直流分量, 去掉直流分量, 正弦波信号振幅0.55102和信号第1点相位350.04 度符合图示信号
close all;clc;clear all;
N=128;
yy=load('phase.txt');
y=yy'-mean(yy);
y=y(1:2*N-1);%2N-1个输入数据
y1 = y(N:2*N-1);%后N个输入数据
win =hanning(N)';;
win1 = win/sum(win);%窗归1
y11= y1.*win1;
y11_fft = fft(y11,N);
a1 = abs(y11_fft);%FFT振幅谱
p1 = mod(phase(y11_fft)*180/pi,360);;%FFT相位谱
y2 = y(1:2*N-1);%2N-1个输入数据
win =hanning(N)';;
winn =conv(win,win);%apFFT须要卷积窗
win2 = winn/sum(winn);%窗归1
y22= y2.*win2;
y222=y22(N:end)+;%构成长N的apFFT输入数据
y2_fft = fft(y222,N);;
a2 = abs(y2_fft);%apFFT振幅谱
p2=mod( phase(y2_fft)*180/pi,360);%apFFT相位谱
ee=(p1-p2)/180/(1-1/N);%频率偏离校正值
aa=(a1.^2)./a2*2;%振幅校正值
subplot(5,1,1);stem(y,'.');title('input signal(1;255)');ylim([-1,1]);xlim();grid
subplot(5,1,2),stem(a2,'.');title('apFFTamplitude spectrum');ylim();xlim();grid
subplot(5,1,3),stem(p2,'.');title('128点apFFT phase spectrum');ylim();xlim();grid
subplot(5,1,4);stem(ee,'.');title('frequency correction spectrum');ylim([-1,1]);xlim();grid
subplot(5,1,5);stem(aa,'.');title('amplitude correction spectrum');ylim();xlim();grid
disp('频率校正值')
fff=3+ee(4)
disp('振幅校正值')
aaa=aa(4)
disp('初相位校正值')%由128点相位计算第1点相位
ppp=p2(4)-mod(fff*127/128*360,360)
[ 本帖最后由 zhwang554 于 2008-7-6 17:47 编辑 ] 本帖最后由 VibInfo 于 2016-11-9 15:34 编辑
原帖由 songzy41 于 2008-7-6 12:00 发表
既然已把数据存放在TXT文件中,则可以通过load命令直接读入,只要输入文件名:
filename=input('File name','s');
x=load(filename);
至于其它参数,都可以在程序中设置的。
谢谢,上次也是在您的指导下解决的问题。
这本书上有好多可以参考的程序,我是想按着书上的例程编写自己需要的程序,觉的这样更方便写。
如果直接用load加载数据,或者我直接读入excel的文件,
像n=fscanf(fid,'%d',1);
win=fscanf(fid,'%d',1);
c=fscanf(fid,'%f',1);
fno=fscanf(fid,'%s',1);
这类参数是不是就可以直接赋值,不用fscanf这个函数?
也就是说这本书中采用“fopen、fscanf、fclose、fprint”这些函数是为了读入二进制格式的文件。
我这样理解对吗?
补充8楼
楼主的数据文件第1列的时间单位是什么? 第一个取样时间 1指什么?如果时间单位是秒,1秒取4点,取样频率是4,则信号频率是3.1984/128*4=0.09995赫
如果时间单位是0.1秒,1秒取40点,取样频率是40,则信号频率是3.1984/128*40=0.998875赫,即信号频率是1赫.
[ 本帖最后由 zhwang554 于 2008-7-7 07:56 编辑 ] 本帖最后由 VibInfo 于 2016-11-9 15:35 编辑
原帖由 zhly 于 2008-7-6 21:58 发表
这本书上有好多可以参考的程序,我是想按着书上的例程编写自己需要的程序,觉的这样更方便写。
如果直接用load加载数据,或者我直接读入excel的文件,
像n=fscanf(fid,'%d',1);
win=fscanf(fid,'%d',1);
c=fscanf(fid,'%f',1);
fno=fscanf(fid,'%s',1);
这类参数是不是就可以直接赋值,不用fscanf这个函数?
也就是说这本书中采用“fopen、fscanf、fclose、fprint”这些函数是为了读入二进制格式的文件。
我这样理解对吗?
提到的那些参数完全可以直接赋值,不必用fscanf函数读入。而有关这些函数“fopen、fscanf、fclose、fprint”你理解得不完全正确,不限于“读入”和“二进制格式”,可参阅一下有关MATLAB的书藉。
回复 9楼 zhly 的帖子
fopen 如果打开的文件是2进制的,需要加上字符b,如rb,wb,ab。fscanf 调用格式为a=fscanf(fid,format,size),其中format为读取文件袋格式,%s字符串,%d十进制整数,%f 浮点数,其他格式的不是很常用。
fclose 不涉及到格式问题
fprintf 调用格式为 a=fprintf(fid,format,b,c).其中,format与fscanf中的一样,只是比它多了一些类似回车,换行之类的。 导入TXT文件方法有很多,如:
1. load:只能针对简单格式
2.textread:可对复杂格式进行读写(我最喜欢用这个)
3.fscanf:对简单和复杂格式都适用,但它能读的textread一般都能读,而且速度较慢,不建议使用,特别是没有编程经验的最好别用。
4.针对这种格式,可直接粘贴,如先输入"a=[",然后ctrl+v,最后输入"];"。
[ 本帖最后由 liuxiaoping 于 2008-10-17 20:27 编辑 ] 本帖最后由 VibInfo 于 2016-11-9 15:35 编辑
原帖由 zhly 于 2008-7-6 21:58 发表
谢谢,上次也是在您的指导下解决的问题。
这本书上有好多可以参考的程序,我是想按着书上的例程编写自己需要的程序,觉的这样更方便写。
如果直接用load加载数据,或者我直接读入excel的文件,
像n=fscanf( ...
那本书上的“input、fopen、fscanf、fclose...”这样的命令,实在有时看不大明白,感觉很不方面啊。像win=fscanf(fid,'%d',1); 我就不知道怎么直接赋值? zhwang554 发表于 2008-7-6 12:56 static/image/common/back.gif
楼主, 把你的数据文件第1列全部去掉, 只剩下第2列构成一个phase.txt文件, 即可输入
用FFT和apFFT组合校正 ...
王老师和songzy41,果然勤奋,向你们学习!是研究和搞学术的楷模!
页:
[1]