声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4203|回复: 14

[其他] 求这组数据的初相位??

[复制链接]
发表于 2007-3-20 11:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
第一列表示时间,第二列是函数值,能否求出其初相位?表示怎样的一个正弦函数?有与数据本身原因,振幅可以成相等,即无变化!!!!
   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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-3-20 20:08 | 显示全部楼层
看了数据,从作出的图看出有明显的趋势项和直流分量,应先消除直流分量和趋势项,再进行FFT分析处理,从中提取初始相位的信息。
发表于 2007-3-20 20:09 | 显示全部楼层
我也想知道,那位大侠知道的就帮帮我们吧,谢谢啦:loveliness:
发表于 2007-3-21 07:27 | 显示全部楼层
有关消直流分量和趋势项,在本论坛上有不少帖子,可先搜查一下;另可参看王济和胡晓编 “MATLAB在振动信号处理中的应用” 中国水利水电出版社,其中有一章介绍了预处理,并有相应的MATLAB程序。用FFT求初始相角,也可搜查一下本论坛的帖子。
发表于 2007-3-21 09:37 | 显示全部楼层
谢谢楼上了:loveliness: :handshake
发表于 2008-7-5 21:22 | 显示全部楼层
在王济和胡晓编 的“MATLAB在振动信号处理中的应用”中,例程大多都是采用“input、fopen、fscanf、fclose...”这样的命令编写的,我在用input输入数据文件名时总是出错,fid的值总为-1.看了说明后将已有的EXCEL文件转换为TXT格式的了,可还是出错,麻烦哪位指点一下,编写这类程序时,对输入数据文件的格式要求。
发表于 2008-7-6 12:00 | 显示全部楼层
本帖最后由 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);
至于其它参数,都可以在程序中设置的。
发表于 2008-7-6 12:56 | 显示全部楼层

信号是第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)+[0 y22(1:N-1)];%构成长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([0 N*3]);grid
subplot(5,1,2),stem(a2,'.');title('apFFTamplitude spectrum');ylim([0,0.5]);xlim([0 N/2]);grid
subplot(5,1,3),stem(p2,'.');title('128点apFFT phase spectrum');ylim([0,400]);xlim([0 N/2]);grid
subplot(5,1,4);stem(ee,'.');title('frequency correction spectrum');ylim([-1,1]);xlim([0 N/2]);grid
subplot(5,1,5);stem(aa,'.');title('amplitude correction spectrum');ylim([0,1]);xlim([0 N/2]);grid
      disp('频率校正值')
        fff=3+ee(4)
      disp('振幅校正值')
        aaa=aa(4)
      disp('初相位校正值')%由128点相位计算第1点相位
        ppp=p2(4)-mod(fff*127/128*360,360)
      Image5.jpg

[ 本帖最后由 zhwang554 于 2008-7-6 17:47 编辑 ]
发表于 2008-7-6 21:58 | 显示全部楼层
本帖最后由 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”这些函数是为了读入二进制格式的文件。
我这样理解对吗?
发表于 2008-7-7 06:29 | 显示全部楼层

补充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 编辑 ]
发表于 2008-7-7 09:12 | 显示全部楼层
本帖最后由 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的书藉。
发表于 2008-10-17 15:21 | 显示全部楼层

回复 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中的一样,只是比它多了一些类似回车,换行之类的。
发表于 2008-10-17 20:26 | 显示全部楼层
导入TXT文件方法有很多,如:
1. load:只能针对简单格式
2.textread:可对复杂格式进行读写(我最喜欢用这个)
3.fscanf:对简单和复杂格式都适用,但它能读的textread一般都能读,而且速度较慢,不建议使用,特别是没有编程经验的最好别用。
4.针对这种格式,可直接粘贴,如先输入"a=[",然后ctrl+v,最后输入"];"。

[ 本帖最后由 liuxiaoping 于 2008-10-17 20:27 编辑 ]
发表于 2008-10-21 16:01 | 显示全部楼层
本帖最后由 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); 我就不知道怎么直接赋值?
发表于 2013-3-29 15:34 | 显示全部楼层

王老师和songzy41,果然勤奋,向你们学习!是研究和搞学术的楷模!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 11:34 , Processed in 0.077442 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表