Data Aquisition and Capture
Contents
Introduction
We consider the main issues concerning the digital or computer Acquisition of real world data.
Theoretical issues. Conversion of continuous-time, continuous amplitude signals measured in the physical world into discrete-time, discrete amplitude data (or numbers) in a computer. (i) Discrete time signal (ii) Amplitude quantisation (iii) Sampling rate
Analog interface. (i) Signal Conditioning. (ii) Analog signal scaling. (iii) Analog to digital converter.
Analog acquisition systems. (i) Analog interface cards. (ii) Data buffering (iii) Data logging memory requirements. (iv) Single and multi-channel interfaces
Simulate sampling a Continuous Time Signal
Generate a 'continuous' time signal. Sample this sgnal at discrete time intervals and plot both signal together to see the relationship between them.
Continuous time signal: Signal frequency < Nyquist
Generate continuous time sinusoid, frequency = 0.5 Hz
f=.5; % Signal frequency tmax=4; fsc=10000;tc=1/fsc; %tc is the 'continuous time' sampling interval t=0:tc:tmax; % Continuous time vector x=cos(2*pi*f*t); plot(t,x) title('Continuous time signal , f = 0.5','fontsize', 15)

Sampled Signal
Sample the signal at 20 Hz
fs=20; T=1/fs; t_discrete=0:T:tmax; xd=cos(2*pi*f*t_discrete); hold on stem(t_discrete,xd,'r','markerfacecolor','r') title('Sampled Signal, fs=20 ; f signal = 0.5','fontsize', 15)

Zoom in
for i=0:100 xlim([0 .5+3.5*(100-i)/100]); drawnow end hold off

Continuous time signal: Signal frequency> Nyquist
Aliased Signal:
The frequency of the continuous time signal is 19.5 Hz (remember the nyquist frequency is 10 Hz)
f=19.5; % Signal frequency tmax=4; fsc=10000;tc=1/fsc; %tc is the 'continuous time' sampling interval t=0:tc:tmax; % Continuous time vector x=cos(2*pi*f*t); plot(t,x) title('Continuous time signal , f = 19.5','fontsize', 15)

Sampled Signal
Sample the signal at 20 Hz
fs=20; T=1/fs; t_discrete=0:T:tmax; xd=cos(2*pi*f*t_discrete); hold on stem(t_discrete,xd,'r','markerfacecolor','r') title('Sampled Signal, fs=20 ; f signal = 19.5','fontsize', 15)

Zoom in
for i=0:100 xlim([0 .5+3.5*(100-i)/100]); drawnow end hold off

Quantised Sampled Sinusoid
Q=0.1; % Quantisation level f=.082; % Signal frequency tmax=20; fsc=10000;tc=1/fsc; %tc is the 'continuous time' sampling interval t=0:tc:tmax; % Continuous time vector x=cos(2*pi*f*t); plot(t,x); % Sampled Signal fs=1; T=1/fs; t_discrete=0:T:tmax; xd=cos(2*pi*f*t_discrete); set(gca,'xgrid','on','xtick',0:T:tmax,'ygrid','on','ytick',-1:Q:1) hold on plot(t_discrete,xd,'o','markerfacecolor','b') title(['Sampled Signal, f_s=' num2str(fs) '; f_signal = ' num2str(f) ],'fontsize', 15)

Quantised Signal
xdq=floor(xd/Q)*Q; stem(t_discrete,xdq,'sr','markerfacecolor','r')

Zoom in
axis([10 15 .3 1])
hold off

Quantisation Error
subplot(2,1,1) xd=cos(2*pi*f*t_discrete); set(gca,'xgrid','on','xtick',0:tmax,'ygrid','on','ytick',-1:1/10:1) hold on plot(t_discrete,xd,'o','markerfacecolor','b') title(['Sampled Signal, f_s=' num2str(fs) '; f_signal = ' num2str(f) ],'fontsize', 15) xdq=floor(xd*10)/10; stem(t_discrete,xdq,'sr','markerfacecolor','r')

subplot(2,1,2) e=xd-xdq; stem(t_discrete,e);grid on title('Quantisation Error')
