source: MML/trunk/mml/plotbpmpsd.m

Last change on this file was 4, checked in by zhangj, 11 years ago

Initial import--MML version from SOLEIL@2013

File size: 3.0 KB
Line 
1function [Pyy, fy, Pyy_Int, FileName] = plotbpmpsd(FileName, LineColorInput, HoldFlag1)
2%PLOTBPMPSD - Plots data taken will getbpmpsd
3%  [Pxx, f, PxxInt, FileName] = plotbpmpsd(FileName, LineType, HoldFlag)
4%
5%  INPUTS
6%  1. FileName - Filename or '' to browse
7%  2. LineType - Line type, like '-r'
8%  3. HoldFlag - 0   -> new plot
9%               else -> hold last plot
10%
11%  OUTPUTS
12%  1. Pxx - Power spectrum
13%  2. f - Frequency vector
14%  3. PxxInt - Cumulated integrated power spectrum
15%  4. FileName - Filename used
16%
17%   Written by Greg Portmann
18
19
20if nargin < 1
21    FileName = [];
22end
23if nargin < 2
24    LineColorInput = 'b';
25end
26if nargin < 3
27    HoldFlag1 = 0;
28end
29
30if isempty(FileName)
31    [FileName, DirectoryName] = uigetfile('*.mat', 'Select a configuration file to load');
32    if FileName == 0
33        return
34    else
35        load([DirectoryName FileName]);
36    end
37else
38    load(FileName);
39end
40
41if exist('PxxAvg', 'var')
42    Pxx = PxxAvg;
43    Pyy = PyyAvg;
44    Xrms = XAvgRMS;
45    Yrms = YAvgRMS;
46end
47
48newList = editlist(DeviceList, 'BPM', zeros(size(DeviceList,1),1));
49if isempty(newList)
50    return
51end
52j = findrowindex(newList(1,:), DeviceList);
53
54if ~HoldFlag1
55    clf reset
56end
57
58subplot(2,2,1);
59if HoldFlag1
60    hold on;
61end
62NumFreqRemove = length(find(Pxx(j,:)==0));
63loglog(fx(NumFreqRemove+1:end), 1e12*Pxx(j,NumFreqRemove+1:end), LineColorInput);
64if HoldFlag1
65    title(sprintf('BPMx POWER SPECTRUM (%d points)',length(fx)));
66else
67    title(sprintf('BPMx(%d,%d) POWER SPECTRUM (%d points)',DeviceList(j,:),length(fx)));
68end
69xlabel('Frequency [Hz]');
70ylabel('BPMx PSD [\mum^2/Hz]');
71grid on;
72legend off;
73aa=axis;
74axis([1 fx(end) aa(3) aa(4)]);
75%axis([1 fx(end) 1e-3 10]);
76
77% Position spectrum
78subplot(2,2,3);
79if HoldFlag1
80    hold on;
81end
82semilogx(fx(NumFreqRemove:end), 1e12*Pxx_Int(j,NumFreqRemove:end), LineColorInput);
83if HoldFlag1
84    title(sprintf('BPMx Integrated PSD'));
85else
86    title(sprintf('BPMx(%d,%d) Integrated PSD (RMS=%.1f \\mum)',DeviceList(j,:),1e6*Xrms(j)));
87end
88xlabel('Frequency [Hz]');
89ylabel('Mean Square Displacement [\mum^2]');
90grid on;
91legend off;
92aa=axis;
93axis([1 fx(end) aa(3) aa(4)]);
94
95subplot(2,2,2);
96if HoldFlag1
97    hold on;
98end
99loglog(fy(NumFreqRemove+1:end), 1e12*Pyy(j,NumFreqRemove+1:end), LineColorInput);
100if HoldFlag1
101    title(sprintf('BPMy POWER SPECTRUM (%d points)',length(fy)));
102else
103    title(sprintf('BPMy(%d,%d) POWER SPECTRUM (%d points)',DeviceList(j,:),length(fy)));
104end
105xlabel('Frequency [Hz]');
106ylabel('BPMy PSD [\mum^2/Hz]');
107grid on;
108legend off;
109aa=axis;
110axis([1 fx(end) aa(3) aa(4)]);
111%axis([1 fx(end) 1e-3 10]);
112
113% Position spectrum
114subplot(2,2,4);
115if HoldFlag1
116    hold on;
117end
118semilogx(fy(NumFreqRemove:end), 1e12*Pyy_Int(j,NumFreqRemove:end), LineColorInput);
119if HoldFlag1
120    title(sprintf('BPMy Integrated PSD'));
121else
122    title(sprintf('BPMy(%d,%d) Integrated PSD (RMS=%.1f \\mum)',DeviceList(j,:),1e6*Yrms(j)));
123    addlabel(1,0,datestr(TimeStart));
124end
125xlabel('Frequency [Hz]');
126ylabel('Mean Square Displacement [\mum^2]');
127grid on;
128legend off;
129aa=axis;
130axis([1 fx(end) aa(3) aa(4)]);
131
Note: See TracBrowser for help on using the repository browser.