MATLAB提取极大值点进行曲线拟合
我用有限元软件计算所得数据,画出的振动曲线如图中红色曲线所示,现在我提取正半轴上的极大值点进行曲线拟合以得到黑色曲线所示的曲线,怎么编制提取程序段啊!/////原曲线段程序如下所示:
clc;
close;
a=(0:0.001:0.3)';
b=[0;-0.982765;-2.29855;-0.905236;1.51222;0.453439;-1.5385;-0.0389699;1.46525;-0.34262;
-1.28965;0.650925;1.04826;-0.879387;-0.764712;1.02475;0.45896;-1.08385;-0.153925;1.05881;
-0.124264;-0.966048;0.363045;0.818897;-0.552864;-0.628851;0.680506;0.418992;-0.747781;
-0.204633;0.757801;-0.00161282;-0.71298;0.18338;0.624805;-0.332014;-0.504251;0.441852;
0.362166;-0.508876;-0.211065;0.533112;0.0628988;-0.518408;0.0730473;0.469964;-0.189076;
-0.394284;0.278683;0.300364;-0.339218;-0.196497;0.36994;0.0905205;-0.37157;0.0095674;
0.34762;-0.0977283;-0.30263;0.169415;0.241841;-0.221382;-0.171295;0.252287;0.0969957;
-0.262486;-0.02436;0.253551;-0.0418299;-0.228176;0.097658;0.190051;-0.140537;-0.143191;
0.169002;0.091731;-0.18264;-0.0397916;0.182237;-0.00903747;-0.169404;0.0517858;
0.146378;-0.0861714;-0.115904;0.110781;0.0809179;-0.125043;-0.044306;0.12913;0.00876384;
-0.123896;0.0233788;0.110764;-0.050312;-0.0915133;0.0707762;0.0681442;-0.0840833;
-0.0427324;0.0901334;0.0172456;-0.0893277;0.00656503;0.0824848;-0.0272494;-0.0707561;
0.0437418;0.0554954;-0.0553852;-0.0381425;0.0619233;0.020123;-0.0634808;-0.00274884;
0.0605125;-0.0128632;-0.0537289;0.0258407;0.0440227;-0.0355882;-0.0323891;0.0418016;
0.0198416;-0.0444517;-0.00734235;0.0437562;-0.00425621;-0.0401391;0.0142603;
0.0341767;-0.0221636;-0.0265405;0.0276597;0.0179423;-0.0306422;-0.00907978;0.0311891;
0.00058997;-0.0295363;0.00698694;0.0260441;-0.0132338;-0.0211587;0.0178719;0.0153713;
-0.0207639;-0.00917996;0.0219075;0.00305462;-0.0214208;0.00259223;0.0195202;
-0.00742726;-0.0164948;0.0112101;0.0126783;-0.0137995;-0.00842121;0.0151521;
0.00406485;-0.015314;8.10E-05;0.0144078;-0.00375561;-0.0126157;0.00676012;0.0101599;
-0.00896377;-0.0072833;0.0103054;0.00423046;-0.0107898;-0.00123044;0.0104802;
-0.00151704;-0.00948675;0.00385196;0.00795452;-0.00566057;-0.00604902;0.00687801;
0.00394281;-0.00748718;-0.00180282;0.00751463;-0.000220443;-0.00702382;0.00200137;
0.00610659;-0.00344509;-0.00487371;0.00449049;0.00344516;-0.00511063;-0.00194084;
0.00531075;0.000472407;-0.0051243;0.000863506;0.00460749;-0.00199019;-0.00383283;
0.00285391;0.0028824;-0.00342496;-0.0018411;0.00369708;0.000790511;-0.00368518;
0.000196286;0.00342197;-0.00105881;-0.00295371;0.00175187;0.00233554;-0.002247;
-0.00162667;0.00253248;0.000885893;-0.00261227;-0.000167569;0.00250402;-0.000481573;
-0.00223625;0.0010248;0.00184524;-0.00143676;-0.00137163;0.00170396;0.00085718;
-0.00182433;-0.000341735;0.00180611;-0.000139253;-0.00166611;0.000556677;0.00142761;
-0.000889059;-0.00111803;0.00112316;0.000766555;-0.00125397;-0.000402003;0.00128412;
5.08E-05;-0.00122285;0.00026439;0.00108463;-0.000526084;-0.000887563;0.000722322;
0.000651782;-0.000847001;-0.000397795;0.00089961;0.000145059;-0.000884635;8.92E-05;
0.000810694;-0.000291106;-0.000689477;0.000450346;0.000534604;-0.000560828;
-0.000360473;0.000620453;0.000181184;-0.000630846;-9.61E-06;0.000596822;-0.000143359;
-0.000525702;0.000269318;0.000426528;-0.000362668;-0.00030925;0.000420671;0.000183941;
-0.00044332;-6.01E-05;0.000433032;-5.40E-05;-0.000394212;0.000151514;0.000332725;
-0.000227721;-0.000255333;0.000279758;0.000169127;-0.000306772;-8.10E-05;0.00030972;
-2.77E-06;-0.000291103;7.69E-05;0.00025462;-0.000137523;-0.000204778;0.000181865; 0.000146494];
c=linspace(0,0.3,3000);
d=interp1(a,b,c,'spline');
plot(c,d,'r-*','linewidth',1.5)
[ 本帖最后由 ChaChing 于 2009-3-22 22:12 编辑 ] for i-1:1:N
if(a(i)>a(i-1)&&a(i)>a(i+1))
b(j)=a(i)
j++;
end
回复 沙发 tulip8599 的帖子
楼上的程序好像不是matlab吧!回复 楼主 lookfordream 的帖子
搜一下包络线!http://forum.vibunion.com/forum/vi ... =%BC%AB%B4%F3%D6%B5
还有楼主数据应该使用附件, 以load读进matlab, 盖那麽高的楼层, LZ会看吗? 害我编了手酸, 下次扣分!
水平有限, 建议楼主加强发问题方式!
[ 本帖最后由 ChaChing 于 2009-3-22 22:33 编辑 ]
回复ChaChing
谢谢你的认真工作态度,当时发问时急了,就直接拷贝发了,不好意思啊也谢谢上面那位回复问题的朋友
页:
[1]