source: MML/trunk/machine/SOLEIL/StorageRing/diagnostics/fft_and_noise_calcul_group.m @ 4

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

Initial import--MML version from SOLEIL@2013

File size: 1.3 KB
Line 
1function [pxfft,pzfft,Xintegrale_bpm,Zintegrale_bpm,f_bpm]=fft_and_noise_calcul_group(bufferX,bufferZ,fech)
2
3Nbpm=size(bufferX,1);
4Nsamples=size(bufferX,2);
5f_bpm=(1:Nsamples-1)*fech/Nsamples;
6
7xfft(1:Nbpm,1:Nsamples)=0;
8zfft(1:Nbpm,1:Nsamples)=0;
9pxfft(1:Nbpm,1:Nsamples)=0;
10pzfft(1:Nbpm,1:Nsamples)=0;
11%pxfftaff(1:Nbpm,1:Nsamples)=0;
12%pzfftaff(1:Nbpm,1:Nsamples)=0;
13%PXintegrale_bpm(1:Nbpm,1:Nsamples)=0;
14%PZintegrale_bpm(1:Nbpm,1:Nsamples)=0;
15Xintegrale_bpm(1:Nbpm,1:Nsamples)=0;
16Zintegrale_bpm(1:Nbpm,1:Nsamples)=0;
17
18
19xfft=fft(double(bufferX)./1000,[],2)/Nsamples;
20zfft=fft(double(bufferZ)./1000,[],2)/Nsamples;
21%xfft=fft(double(bufferX),[],2)/Nsamples;
22%zfft=fft(double(bufferZ),[],2)/Nsamples;
23
24
25
26pxfft=2*xfft.*conj(xfft);
27pzfft=2*zfft.*conj(zfft);
28
29
30
31%on normalise pour afficher la dsp en µm^2/Hz et non pas en µm^2/largeur de bande entre 2 échantillons
32%pxfftaff(j,:)=sqrt(pxfft(j,:)*Nsamples/fech);
33%pzfftaff(j,:)=sqrt(pzfft(j,:)*Nsamples/fech);
34%pxfftaff=sqrt(pxfft);
35%pzfftaff=sqrt(pzfft);
36
37
38
39for step=2:Nsamples
40    Xintegrale_bpm(:,step)=Xintegrale_bpm(:,step-1) + pxfft(:,step);
41    Zintegrale_bpm(:,step)=Zintegrale_bpm(:,step-1) + pzfft(:,step);
42end
43
44
45
46pxfft=sqrt(pxfft);
47pzfft=sqrt(pzfft);
48Xintegrale_bpm=sqrt((Xintegrale_bpm));
49Zintegrale_bpm=sqrt((Zintegrale_bpm));
50
51
52
Note: See TracBrowser for help on using the repository browser.