2

Using the data points pasted at the end, I get a chart using TeeChart looking like below (2nd image). However, what I want to get is as shown as the 1st image (black line). I am wondering how to do this? Any comments (about how to do or about the algorithm) are appreciated!

by GaussView (IR spectrum)

gaussview-1

by TeeChart

teechart-1

data

   11.25   0.8558
   13.93   0.7101
   17.49   1.7783
   18.48   0.0972
   20.91   0.7608
   23.36   2.0540
   27.87   1.7063
   31.34   0.4998
   32.45   0.8735
   36.86   1.9740
   37.68   1.1448
   39.02   1.6381
   39.64   2.4984
   40.63   2.5854
   43.90   1.9891
   45.38   1.0168
   46.85   3.4588
   50.19   0.5997
   51.69   3.0986
   52.37   5.2783
   54.35   1.3672
   55.93   1.9774
   58.26   1.4327
   60.00   0.1276
   62.18   0.1294
   64.04   2.5145
   66.10   7.5823
   68.48   0.4689
   70.60   3.5168
   72.22   6.7262
   73.78   2.9225
   76.05   1.6195
   77.39   2.9711
   79.05   3.0244
   79.51   7.5896
   81.41   4.4896
   83.34   4.7092
   85.55   5.7364
   91.65   9.5119
   93.06   4.1190
   95.26   0.5367
   97.60   1.7773
   99.59   4.0967
   100.29   3.3551
   102.68   2.9290
   104.37   2.1907
   105.86   3.1003
   108.29   4.6200
   108.83   1.6020
   112.74   4.5426
   113.61   5.8697
   115.43   5.3545
   116.92   7.5064
   118.52   1.1735
   121.26   3.2800
   123.70   0.7140
   125.51   12.3312
   126.79   0.6539
   129.59   1.6488
   130.17   3.3001
   133.15   5.4448
   133.81   5.2958
   135.57   0.7273
   136.74   2.7725
   138.48   7.9547
   140.74   4.4754
   143.16   4.1672
   145.21   2.0647
   147.25   6.0894
   150.77   6.6854
   153.96   0.2456
   154.71   5.2882
   157.72   3.3148
   159.83   41.1787
   160.94   3.3881
   164.82   21.6722
   167.02   25.2616
   168.56   5.3165
   172.00   6.9968
   174.48   3.4963
   175.31   3.6395
   177.35   1.3092
   180.03   6.7443
   181.92   2.3712
   185.01   1.8564
   186.79   8.2453
   188.59   11.1710
   191.39   2.9369
   196.44   5.2397
   197.33   6.8805
   199.89   15.0378
   201.45   4.7054
   203.79   13.3486
   207.10   5.7904
   209.25   11.0755
   211.85   23.5711
   213.68   17.2254
   214.61   3.9448
   217.47   34.9757
   220.06   5.1604
   220.74   3.7671
   225.87   13.0953
   229.77   8.4948
   233.98   21.1654
   237.24   17.6599
   238.71   25.2668
   239.34   15.7494
   244.56   43.4527
   246.16   36.9053
   248.17   7.5639
   251.21   8.0873
   253.46   4.3431
   255.42   5.9059
   256.73   1.7785
   260.22   14.1219
   260.70   4.8738
   265.07   10.0827
   267.08   4.9080
   268.50   11.9286
   271.89   8.8873
   274.01   29.4943
   275.04   29.2369
   277.04   52.4743
   278.13   14.3284
   281.82   3.3507
   284.56   21.7815
   288.79   8.5983
   290.67   30.2466
   294.11   10.9149
   301.49   7.3059
   302.30   67.0245
   302.84   6.5049
   305.51   0.2989
   311.16   4.8017
   316.45   16.0656
   320.37   42.8200
   325.45   36.8340
   336.19   35.0153
   338.45   18.0032
   339.63   3.6068
   340.62   5.0152
   348.49   77.5149
   352.39   84.1067
   358.46   16.2392
   364.34   56.0846
   371.03   78.4101
   378.71   50.3951
   381.68   79.3127
   391.26   10.3953
   394.69   75.6727
   397.38   50.5976
   399.97   40.0959
   405.64   23.4627
   417.96   12.1802
   419.47   21.9191
   429.40   1.9362
   431.84   10.8746
   437.11   6.7498
   439.38   42.1917
   454.11   18.9428
   459.08   41.1182
   465.76   50.9344
   467.25   27.1854
   475.56   130.5899
   481.25   72.5219
   487.87   25.8915
   489.15   5.5288
   489.42   124.2637
   497.37   167.8169
   501.23   6.7103
   502.49   9.7129
   508.77   26.4849
   520.56   9.5302
   522.17   2.9284
   523.54   124.3465
   524.98   79.0902
   528.27   53.1656
   533.88   12.9278
   536.31   203.4675
   540.72   33.9929
   543.41   142.5774
   550.07   37.2596
   557.93   168.8374
   560.52   60.4300
   562.84   36.1606
   566.10   151.7689
   567.79   66.6189
   572.38   149.8744
   576.57   79.9780
   585.50   112.8536
   586.51   95.4084
   597.52   3.5723
   600.64   60.4112
   603.83   147.9974
   604.41   29.0763
   606.39   7.1134
   609.57   6.2102
   611.10   7.8785
   612.84   162.3687
   620.43   170.4984
   625.49   160.0876
   630.37   36.9260
   638.97   40.4913
   646.00   25.4423
   646.05   17.5637
   652.18   23.6302
   653.87   45.4506
   655.96   31.1678
   657.95   43.5278
   666.44   17.7154
   668.63   78.3033
   674.15   20.1193
   675.43   28.3611
   679.85   99.0228
   684.13   62.2844
   685.09   36.8384
   686.88   44.9261
   688.54   86.4601
   690.35   23.8856
   691.64   245.3722
   699.16   120.5513
   709.26   2.6988
   723.74   332.8580
   726.74   6.5182
   728.74   165.1788
   730.46   5.6564
   738.13   13.5268
   740.13   12.5284
   742.74   113.7637
   752.67   23.3185
   753.85   50.6479
   754.67   2.4454
   771.93   6.8897
   775.45   195.5114
   777.97   60.3044
   782.04   1.5514
   784.40   28.3898
   785.12   127.7568
   787.49   6.4007
   795.51   7.3133
   799.34   201.9055
   802.14   19.5573
   818.55   382.3869
   819.71   6.5877
   822.96   14.2146
   824.05   2.2121
   826.46   111.9575
   830.73   29.2754
   831.01   24.9736
   834.71   22.8259
   844.08   59.8333
   845.62   40.3083
   850.76   135.1998
   856.03   2.2111
   858.83   5.4722
   860.88   228.0665
   867.35   122.4081
   875.07   5.8894
   877.33   74.5747
   881.75   28.0580
   884.49   4.7371
   887.88   27.9916
   888.41   81.4206
   895.50   18.5746
   906.14   37.3150
   909.57   39.2727
   909.89   13.8018
   912.76   3.8752
   916.27   0.2486
   926.60   12.7987
   926.73   10.4374
   929.15   131.5315
   931.10   2.9229
   934.57   113.7453
   942.69   91.3771
   948.15   25.1075
   951.93   33.4258
   954.69   44.6893
   964.15   1.5994
   965.00   0.7321
   972.10   8.4069
   973.43   7.5676
   979.59   10.5092
   981.39   30.0315
   983.34   157.9592
   987.12   24.8756
   995.21   81.4163
   995.60   22.9050
   996.60   18.5511
   997.58   41.7678
   1001.40   7.2941
   1010.63   3.7654
   1017.41   12.3927
   1020.10   1.2928
   1020.50   6.4156
   1027.74   3.5186
   1029.51   15.7644
   1032.33   4.9588
   1038.71   4.4052
   1042.08   3.1957
   1042.54   23.7493
   1044.90   0.6490
   1051.57   9.5923
   1058.97   6.4381
   1072.38   13.5097
   1075.43   1.4965
   1076.01   16.5798
   1079.15   0.7097
   1082.69   163.1472
   1085.62   11.4565
   1090.04   9.5450
   1104.35   0.4181
   1105.81   19.4965
   1107.07   1.4116
   1107.32   2.1959
   1107.51   0.8469
   1109.85   16.5227
   1116.34   3.7611
   1117.27   22.3061
   1122.22   5.0637
   1123.85   2.0819
   1126.87   99.5244
   1127.27   0.7508
   1129.03   7.9063
   1131.13   12.5686
   1136.06   2.4318
   1138.90   11.9482
   1139.10   0.9399
   1146.32   3.3872
   1159.39   11.9471
   1161.78   14.1617
   1174.95   23.2351
   1179.72   14.9091
   1189.14   3.7741
   1204.68   17.3601
   1205.62   25.2461
   1214.86   38.4565
   1222.25   4.7630
   1222.40   15.9294
   1222.83   12.4804
   1229.30   17.8518
   1248.53   23.6590
   1252.67   56.1945
   1257.42   8.6184
   1261.43   8.7950
   1261.70   4.7045
   1265.78   16.4704
   1267.68   4.8315
   1273.64   1.5993
   1273.80   83.2365
   1275.45   18.8720
   1284.93   0.8743
   1286.10   12.7644
   1286.41   38.1346
   1291.55   238.9537
   1299.52   27.7401
   1302.81   21.4327
   1312.97   7.2615
   1316.40   37.1928
   1319.76   32.1009
   1321.66   43.8679
   1323.22   11.7175
   1324.58   0.5651
   1330.94   16.7787
   1332.59   16.8946
   1337.01   3.1987
   1338.49   12.1263
   1340.41   31.1700
   1345.84   13.8655
   1346.50   0.9794
   1349.54   14.2011
   1357.85   45.9726
   1358.09   3.9610
   1362.71   5.3914
   1366.21   16.9550
   1372.10   64.1772
   1374.92   161.5665
   1380.58   230.3131
   1384.00   328.5477
   1385.04   5.1667
   1390.07   0.1589
   1397.37   40.3024
   1397.88   5.2971
   1398.44   3.5395
   1401.91   22.7442
   1403.68   0.8136
   1404.50   30.1834
   1407.30   62.3116
   1407.42   3.0998
   1410.47   17.7966
   1411.88   14.4825
   1414.12   10.3780
   1418.49   8.3303
   1419.19   17.0070
   1419.62   3.6385
   1419.71   19.0577
   1422.55   6.9579
   1423.39   1.0293
   1431.35   333.3874
   1436.26   307.7709
   1440.15   41.7923
   1441.39   536.8224
   1443.14   252.0576
   1445.99   216.7363
   1449.43   128.0188
   1462.98   11.9692
   1467.30   28.3347
   1473.56   23.1465
   1475.93   42.4514
   1483.98   36.0277
   1484.24   5.2501
   1484.39   24.3948
   1485.45   10.8186
   1490.44   11.5231
   1492.27   7.3633
   1495.11   8.5312
   1495.56   18.0179
   1497.77   3.1224
   1497.88   14.2399
   1498.31   3.0918
   1499.72   5.7379
   1501.76   26.4984
   1504.98   13.7143
   1507.61   1.4629
   1508.28   8.4327
   1508.41   4.8958
   1508.48   4.2296
   1512.21   8.4668
   1515.46   1.8979
   1518.07   20.2652
   1518.82   9.2094
   1521.34   9.8395
   1526.17   2.9542
   1526.43   9.4439
   1528.02   3.3756
   1528.30   2.4509
   1532.78   5.3007
   1534.13   6.5043
   1537.24   53.5120
   1540.81   1.9113
   1543.85   4.4977
   1544.20   4.2213
   1548.35   3.6878
   1552.54   14.8614
   1559.24   11.6988
   1564.07   74.1574
   1566.46   108.9087
   1567.58   6.3844
   1575.43   2.5287
   1577.84   233.8768
   1595.41   237.2607
   1596.87   369.0431
   1616.23   173.9335
   1624.09   836.9518
   1626.98   233.4742
   1628.60   5.4746
   1632.35   100.3850
   1637.82   390.7923
   1643.65   382.0132
   1676.36   174.8716
   1677.37   240.7762
   1681.68   71.5960
   1686.63   207.9686
   1689.79   321.4797
   1706.91   270.6300
   1710.36   276.3541
   1719.02   103.4710
   1722.09   13.0707
   1732.52   118.1263
   1733.45   134.7822
   1737.38   86.6398
   1741.65   193.3777
   1745.96   267.6557
   1748.85   104.5308
   1750.11   84.3295
   1754.89   142.1761
   1762.19   44.6467
   1778.03   277.3395
   1786.51   54.7132
   1801.43   124.4060
   2501.45   2817.4313
   2892.60   1433.0563
   3010.32   37.5543
   3018.83   24.9084
   3020.63   4.2749
   3026.82   31.0382
   3027.83   7.3210
   3028.25   21.5317
   3034.03   19.3657
   3042.31   18.5627
   3042.36   29.6968
   3045.35   18.7716
   3047.91   13.3663
   3050.76   6.5443
   3053.48   25.7608
   3055.29   40.7227
   3055.58   28.5712
   3055.88   7.9362
   3057.54   10.2078
   3059.36   27.4736
   3059.83   26.5108
   3059.85   22.3488
   3061.56   4.6525
   3063.51   25.9303
   3065.41   14.8583
   3066.43   25.5202
   3066.83   40.4775
   3068.42   6.6192
   3068.55   27.7206
   3069.66   5.1897
   3074.54   30.3667
   3077.72   1.0555
   3082.30   19.8899
   3085.29   277.0890
   3086.03   7.4622
   3086.91   55.7138
   3090.29   9.7699
   3090.42   23.7039
   3098.95   15.2559
   3100.15   37.0280
   3101.05   12.4841
   3104.13   31.3489
   3104.26   305.3252
   3107.27   14.1801
   3107.65   8.3824
   3111.25   23.7250
   3113.32   1.6109
   3116.84   31.4006
   3118.15   8.3440
   3123.33   5.3227
   3127.86   7.6340
   3129.01   7.9926
   3132.66   10.0175
   3138.18   348.0472
   3138.83   3.9995
   3145.04   497.0629
   3165.17   3.9671
   3168.85   798.7276
   3200.74   837.1487
   3204.12   38.9204
   3206.21   21.6877
   3206.27   39.0288
   3206.94   34.9876
   3212.51   37.8135
   3212.92   20.7165
   3226.37   15.2672
   3281.65   23.1858
   3282.58   732.5195
   3283.15   78.0229
   3283.92   991.2039
   3287.78   41.3881
   3290.37   28.2757
   3290.38   7.2058
   3292.55   27.3318
   3294.23   639.1337
   3297.11   79.7924
   3316.31   8.5916
   3322.30   531.3133
   3334.75   1463.9099
   3351.13   264.7960
   3360.34   535.8013
   3364.82   26.2667
   3366.49   742.5906
   3384.37   544.7382
   3400.63   6.4281
   3402.60   899.7517
   3453.29   481.2669
   3470.55   778.0064
   3473.31   615.6872
   3500.34   437.9592
   3529.86   128.6586
   3558.92   229.6075
   3574.77   105.5502
   3612.50   690.1041
   3614.15   29.7018
   3616.71   175.4585
   3624.01   42.5718
   3641.96   104.2644
   3672.04   421.7865
   3678.61   67.3033
   3687.01   73.1667
   3714.16   231.0432
   3740.14   63.1046
   3757.45   102.1256
   3763.15   124.6488
   3779.08   64.7553
   3791.33   34.4075
4

2 回答 2

3

引用您的数据源:

 1801.43   124.4060
 2501.45   2817.4313

2501.45   2817.4313
2892.60   1433.0563

2892.60   1433.0563
3010.32   37.5543

TeeChart 正确呈现给定数据。.
如果您想更改数据 - 和图表 - 您应该添加丢失的数据点。

您将决定添加计数的频率(超过哪些 X 步)。从 y 到零的哪个增量意味着取消传播(因为差异在您的眼中变得微不足道)。

然后,您将创建一个多项式公式,确定相对于峰值的绝对值,值在每个峰值周围下降的速度有多快。类似y == y0 / (a*(x-x0)^4 + b*(x-x0)^2 + c)或类似的东西。你应该尝试这个那个,最后得到适合你口味的系数和幂的数量。

然后在每个峰值(又名主要源数据点)周围,您应该添加那些次要的计算点,直到它们非常接近 y 零或直到它们满足来自相邻数据点的次要值,这首先发生。

您可以得出一个公式,其中两个传播波会根据y0y1或者abs(x0-x1)您可以懒惰并从两个方向计算完整路径,然后只需插入最大 y 值。

这个次要的、增强的系列您将传递给 TeaChart,它会显示您喜欢的内容。

PS。看看 mitov.com - 他的免费组件很少,但也许会有合适的东西......

聚苯乙烯。用于丰富数据的非常粗略的草案http://pastebin.com/JtaqkAkS 估计功能和配置应该手动调整以获得最佳结果,无论“最佳”的含义是什么。

于 2013-07-14T17:29:27.127 回答
3

正如 TLama 非常友好地建议的那样,解决方案单独发布:

[解决方案]

图之间的差异是由于洛伦兹线展宽。请参阅Wikipedia 中的光谱线。非常感谢您的所有评论!一个非常基本的工作示例如下所示:

unit uCurvFit;

interface

uses
  uRtlTypes,
  Math, SysUtils;

type

  TLineShapeFitFunc = (lsffLorentz, lsffGauss);

  TLineShapeFit = function(const RelOffset: Double): Double;

function Lorentz(const RelOffset: Double): Double;
function Gauss(const RelOffset: Double): Double;

procedure SpectrumFit(const OriginalFrequencies, OriginalIntensities
  : TADouble; LineShapeFitFunc: TLineShapeFitFunc; var NFreqs: Integer;
  var NewFrequencies: TADouble; var NewIntensities: TADouble);

implementation

function Lorentz(const RelOffset: Double): Double;
begin
  Result := 1.0 / (1.0 + RelOffset * RelOffset);
end;

function Gauss(const RelOffset: Double): Double;
const
  nln2: Double = -0.301029996; // - Log10(2.0);
begin
  Result := Exp(nln2 * RelOffset * RelOffset);
end;

procedure SpectrumFit(const OriginalFrequencies, OriginalIntensities
  : TADouble; LineShapeFitFunc: TLineShapeFitFunc; var NFreqs: Integer;
  var NewFrequencies: TADouble; var NewIntensities: TADouble);
const
  FrequencyStep: Double = 1.0;
  HwHm: Double = 20.0; // Full Width at Half Maximum
var
  I, J: Integer;
  MaxFreq, MinFreq: Double;

  Intensity, Freq, Center, RelOffset: Double;
  LineShapeFit: TLineShapeFit;
begin
  MaxFreq := 4000;
  MinFreq := 0;

  for I := 0 to Length(OriginalFrequencies) do
  begin
    if MaxFreq < OriginalFrequencies[I] then
      MaxFreq := OriginalFrequencies[I];

    if MinFreq > OriginalFrequencies[I] then
      MinFreq := OriginalFrequencies[I];
  end;

  case LineShapeFitFunc of
    lsffLorentz:
      LineShapeFit := Lorentz;
    lsffGauss:
      LineShapeFit := Gauss;
  end;

  NFreqs := 1 + Trunc((MaxFreq - MinFreq) / FrequencyStep);
  SetLength(NewFrequencies, NFreqs);
  SetLength(NewIntensities, NFreqs);

  for I := 0 to NFreqs - 1 do
  begin
    Intensity := 0.0;
    Freq := MinFreq + I * FrequencyStep;

    for J := 0 to Length(OriginalFrequencies) - 1 do
    begin
      Center := OriginalFrequencies[J];
      RelOffset := (Freq - Center) / HwHm;
      Intensity := Intensity + OriginalIntensities[J] * LineShapeFit(RelOffset);
    end;

    NewFrequencies[I] := Freq;
    NewIntensities[I] := Intensity;
  end;
end;

end.
于 2013-07-14T22:46:17.533 回答