0
$\begingroup$

I have a function with an equation: \begin{equation} C(t)=1.6925\left(\exp^{-0.136t}- \exp^{-1.192t} \right) u(t) \end{equation}

where u(t) is a unit-step function. Then, denoting the Fourier Transform of C(t) as C(F), we have \begin{equation} C(f)=1.6925\left(\frac{1}{0.136+2\pi jf}- \frac{1}{1.192+ 2\pi jf} \right) \end{equation}

A time and signal representation of the signal is given by the below figures: enter image description here enter image description here

We can see that the C(f) is almost zero after 0.8 Hz therefore sampling at 1.6 Hz based on the Nyquist criterion, we can obtain theoretically a good sample of the original signal.

However 1.6 Hz, is about a sampling period of 0.625 seconds, which in my context of biological studies that is way too frequent. I am looking at other avenues to reduce the sampling rate or increase the sampling period and a search in the litterature has yielded decimation as a possible avenue. A quick hack in matlab using the decimate function yields the below figures for a decimated signal after being sampled at 1.6Hz

My end goal is to compute the surface below my original signal within a time interval or its sampled or decimated versions, do you think that decimation can allow me to do that? How can i measure aliasing between the different versions of my signal? Is there a better way to sample that signal and reconstruct it from a limited number of samples?

Here is my current Matlab Code

clear all; clc;close all;

%% Time-domain signal
Ts=0.625; % Sampling time (obtained from the frequency domain plot)
t=0:Ts:60; % in sec
C=1.6925* (exp(-0.136*t)-exp(-1.192*t));
clog= log(C);
figure,plot(t,C);
figure,plot(t,clog);
title('Time domain signal');
xlabel('Time in sec')

%Frequency domain signal
f=0:.1:1.6;
F1=1.6925*((1./(0.136+(j*2*pi*f)))-(1./(1.192+(j*2*pi*f))));
figure,plot(f,abs(F1));
title('Frequency domain signal');
xlabel('Frequency in Hz')
% Via FFT
F2=fft(C);
L=length(F2);
figure,plot((0:L-1)*(1/(L*Ts)),abs(F2));
title('Frequency domain signal via FFT of C(t)');
xlabel('Frequency in Hz')

%Downsampling a signal and decimation with interpolation
y = decimate(C,10);

subplot 211
stem(0:48,C(1:49),'filled','markersize',3)
grid on
xlabel 'Sample number',ylabel 'Original'
subplot 212
stem(0:4,y(1:5),'filled','markersize',3)
grid on
xlabel 'Sample number',ylabel 'Decimated'

enter image description here

$\endgroup$
  • $\begingroup$ As you outlined, you have a practically lowpass signal. You may try to reduce the sampling rate. This will introduce more aliasing errors. One fundamental way to reduce this aliasing error is lowpass filtering the signal (down to your corresponding Nyquist frequency) before under-sampling. Do you have an error limit ? Just another technique, you can also compute model parameters (assuming a known model with unknown parameters) with some errors. This is radically different approach however. $\endgroup$ – Fat32 Jul 1 '15 at 0:37
  • $\begingroup$ @Fat32 thank you for your suggestions. My answers to some of your questions: 1. I have an error limit of 15%. 2.The decimated signal above is after having sampled the original at the nyquist limit. 3. The signal model above is the behavior of the signal within a population, now i would like to find the best sampling step to reconstruct the signal within an individual of that said population using the population model as a guide. But to construct the population model we already used a maximum likelihood type of data fitting based on a large sample of collected data from several individuals $\endgroup$ – Wazaa Jul 2 '15 at 19:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.