-
Notifications
You must be signed in to change notification settings - Fork 0
/
spectra2_whitenoise.m
70 lines (49 loc) · 1.41 KB
/
spectra2_whitenoise.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
%% WHITE NOISE
warning off
clear q_stim psd_q1_stim psd_q2_stim qfft_stim
for j = 1:a
for i = 1:(logdata.data(1+ramp_loc1-1,iter_loc))
N=1;
clear z;
z = smooth(Xd_pulse(:,i,j),length(Xd_pulse(:,i,j))/N);
Xd_pulse_center(:,i,j)=Xd_pulse(:,i,j)-z;
end
end
time = length(Xd_pulse_center);
T=1/Fs;
NFFT = 2^3*2^nextpow2(length(Xd_pulse_center));
f = (Fs/2)*linspace(0,1,NFFT/2+1);
effective_delta_f = Fs/NFFT;
actual_delta_f = Fs/numel(time);
% STIMULUS, X
for j = 1:a
for i = 1:(logdata.data(1+ramp_loc1-1,iter_loc))
h_stim=psd(spectrum.periodogram('rectangular'),Xd_pulse_center(:,i,j),'Fs',Fs,'NFFT',NFFT);
L = length(Xd_pulse_center(:,i,j));
clear y y0 wn
%{
hfft = fft(Xd_pulse_center(Xd_pulse_center(:,i,j)~=0,p,i,j),NFFT)/L;
qfft_stim(:,2)=2*hfft(1:NFFT/2+1);
qfft_stim(:,1) = Fs/2*linspace(0,1,NFFT/2+1);
%}
y0 = Xd_pulse_center(:,i,j); %windowing required for short signals
%wn = hann(length(y0));
wn = rectwin(length(y0));
for i2 = 1:length(wn)
y(i2) = wn(i2)*y0(i2);
end
if isempty(y0)
break;
end
hfft = fft(y,NFFT)/L;
qfft_stim(:,2)=hfft(1:NFFT/2+1);
qfft_stim(:,1) = Fs/2*linspace(0,1,NFFT/2+1);
clear q_stim;
q_stim(:,1)=h_stim.Frequencies;
q_stim(:,2)=h_stim.Data;
psd_q1_stim(:,i,j)=q_stim(:,1); %frequency PRE
psd_q2_stim(:,i,j)=q_stim(:,2); %psd PRE
fft_q1_stim(:,i,j)=qfft_stim(:,1); %frequency PRE
fft_q2_stim(:,i,j)=qfft_stim(:,2); %psd PRE
end
end