17 KiB
Measurements on the instrumentation
- Measure of the noise of the Voltage Amplifier
- Measure of the influence of the AC/DC option on the voltage amplifiers
- Transfer function of the Low Pass Filter
Measure of the noise of the Voltage Amplifier
<<sec:meas_volt_amp>>
ZIP file containing the data and matlab files ignore
All the files (data and Matlab scripts) are accessible here.
Measurement Description
Goal:
- Determine the Voltage Amplifier noise
Setup:
- The two inputs (differential) of the voltage amplifier are shunted with 50Ohms
- The AC/DC option of the Voltage amplifier is on AC
- The low pass filter is set to 1hHz
- We measure the output of the voltage amplifier with a 16bits ADC of the Speedgoat
Measurements:
data_003
: Ampli OFFdata_004
: Ampli ON set to 20dBdata_005
: Ampli ON set to 40dBdata_006
: Ampli ON set to 60dB
Load data
amp_off = load('mat/data_003.mat', 'data'); amp_off = amp_off.data(:, [1,3]);
amp_20d = load('mat/data_004.mat', 'data'); amp_20d = amp_20d.data(:, [1,3]);
amp_40d = load('mat/data_005.mat', 'data'); amp_40d = amp_40d.data(:, [1,3]);
amp_60d = load('mat/data_006.mat', 'data'); amp_60d = amp_60d.data(:, [1,3]);
Time Domain
The time domain signals are shown on figure fig:ampli_noise_time.
<<plt-matlab>>
Frequency Domain
We first compute some parameters that will be used for the PSD computation.
dt = amp_off(2, 2)-amp_off(1, 2);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
Then we compute the Power Spectral Density using pwelch
function.
[pxoff, f] = pwelch(amp_off(:,1), win, [], [], Fs);
[px20d, ~] = pwelch(amp_20d(:,1), win, [], [], Fs);
[px40d, ~] = pwelch(amp_40d(:,1), win, [], [], Fs);
[px60d, ~] = pwelch(amp_60d(:,1), win, [], [], Fs);
We compute the theoretical ADC noise.
q = 20/2^16; % quantization
Sq = q^2/12/1000; % PSD of the ADC noise
Finally, the ASD is shown on figure fig:ampli_noise_psd.
<<plt-matlab>>
Conclusion
Questions:
- Where does those sharp peaks comes from? Can this be due to aliasing?
Noise induced by the voltage amplifiers seems not to be a limiting factor as we have the same noise when they are OFF and ON.
Measure of the influence of the AC/DC option on the voltage amplifiers
<<sec:meas_noise_ac_dc>>
ZIP file containing the data and matlab files ignore
All the files (data and Matlab scripts) are accessible here.
Measurement Description
Goal:
- Measure the influence of the high-pass filter option of the voltage amplifiers
Setup:
- One geophone is located on the marble.
- It's signal goes to two voltage amplifiers with a gain of 60dB.
- One voltage amplifier is on the AC option, the other is on the DC option.
Measurements:
First measurement (mat/data_014.mat
file):
Column | Signal |
---|---|
1 | Amplifier 1 with AC option |
2 | Amplifier 2 with DC option |
3 | Time |
Second measurement (mat/data_015.mat
file):
Column | Signal |
---|---|
1 | Amplifier 1 with DC option |
2 | Amplifier 2 with AC option |
3 | Time |
Load data
We load the data of the z axis of two geophones.
meas14 = load('mat/data_014.mat', 'data'); meas14 = meas14.data;
meas15 = load('mat/data_015.mat', 'data'); meas15 = meas15.data;
Time Domain
The signals are shown on figure fig:ac_dc_option_time.
<<plt-matlab>>
Frequency Domain
We first compute some parameters that will be used for the PSD computation.
dt = meas14(2, 3)-meas14(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
Then we compute the Power Spectral Density using pwelch
function.
[pxamp1ac, f] = pwelch(meas14(:, 1), win, [], [], Fs);
[pxamp2dc, ~] = pwelch(meas14(:, 2), win, [], [], Fs);
[pxamp1dc, ~] = pwelch(meas15(:, 1), win, [], [], Fs);
[pxamp2ac, ~] = pwelch(meas15(:, 2), win, [], [], Fs);
The ASD of the signals are compare on figure fig:ac_dc_option_asd.
<<plt-matlab>>
Conclusion
- The voltage amplifiers include some very sharp high pass filters at 1.5Hz (maybe 4th order)
- There is a DC offset on the time domain signal because the DC-offset knob was not set to zero
Transfer function of the Low Pass Filter
<<sec:low_pass_filter_measurements>>
ZIP file containing the data and matlab files ignore
The computation files for this section are accessible here.
First LPF with a Cut-off frequency of 160Hz
Measurement Description
Goal:
- Measure the Low Pass Filter Transfer Function
The values of the components are:
\begin{aligned} R &= 1k\Omega \\ C &= 1\mu F \end{aligned}Which makes a cut-off frequency of $f_c = \frac{1}{RC} = 1000 rad/s = 160Hz$.
\begin{tikzpicture}
\draw (0,2)
to [R=\(R\)] ++(2,0) node[circ]
to ++(2,0)
++(-2,0)
to [C=\(C\)] ++(0,-2) node[circ]
++(-2,0)
to ++(2,0)
to ++(2,0)
\end{tikzpicture}
Setup:
- We are measuring the signal from from Geophone with a BNC T
- On part goes to column 1 through the LPF
- The other part goes to column 2 without the LPF
Measurements:
mat/data_018.mat
:
Column | Signal |
---|---|
1 | Amplifier 1 with LPF |
2 | Amplifier 2 |
3 | Time |
Load data
We load the data of the z axis of two geophones.
data = load('mat/data_018.mat', 'data'); data = data.data;
Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1000rad/s$. We obtain the result on figure fig:Glpf_bode.
Gth = 1/(1+s/1000)
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude');
ax2 = subplot(2, 1, 2);
hold on;
plot(f, mod(180+180/pi*phase(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
hold off;
set(gca, 'xscale', 'log');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase');
linkaxes([ax1,ax2],'x');
xlim([1, 500]);
<<plt-matlab>>
Conclusion
As we want to measure things up to $500Hz$, we chose to change the value of the capacitor to obtain a cut-off frequency of $1kHz$.
Second LPF with a Cut-off frequency of 1000Hz
Measurement description
This time, the value are
\begin{aligned} R &= 1k\Omega \\ C &= 150nF \end{aligned}Which makes a low pass filter with a cut-off frequency of $f_c = 1060Hz$.
Load data
We load the data of the z axis of two geophones.
data = load('mat/data_019.mat', 'data'); data = data.data;
Transfer function of the LPF
We compute the transfer function from the signal without the LPF to the signal measured with the LPF.
dt = data(2, 3)-data(1, 3);
Fs = 1/dt; % [Hz]
win = hanning(ceil(10*Fs));
[Glpf, f] = tfestimate(data(:, 2), data(:, 1), win, [], [], Fs);
We compare this transfer function with a transfer function corresponding to an ideal first order LPF with a cut-off frequency of $1060Hz$. We obtain the result on figure fig:Glpf_bode_bis.
Gth = 1/(1+s/1060/2/pi);
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(Glpf));
plot(f, abs(squeeze(freqresp(Gth, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude');
ax2 = subplot(2, 1, 2);
hold on;
plot(f, mod(180+180/pi*phase(Glpf), 360)-180);
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(Gth, f, 'Hz')))));
hold off;
set(gca, 'xscale', 'log');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase');
linkaxes([ax1,ax2],'x');
xlim([1, 500]);
<<plt-matlab>>
Conclusion
The added LPF has the expected behavior.