4
$\begingroup$

Can someone help me with this interview question? It is about the sampling frequency rate. Under what condition the available bandwidth is $f_s$ instead of $\frac{f_s}{2}$?

$\endgroup$
  • $\begingroup$ It seems like helping you with an interview question would be unethical. $\endgroup$ – Jim Clay Jun 3 '14 at 15:31
  • 4
    $\begingroup$ I have already done the interview just wondering to see what is the correct answer. $\endgroup$ – lakshmi Jun 3 '14 at 15:34
7
$\begingroup$

If your signal is real-valued, then it's spectrum is conjugate symmetric. That means, that negative frequencies (or frequencies from $\frac{f_s}{2}$ up to $f_s$) are mirrored. Thus we can always neglect frequencies above Nyquist range.

Although, if your signal is complex valued, then such symmetry won't exist, and frequencies above $\frac{f_s}{2}$ contain extra information. So you can indeed say that the bandwidth of your signal is $f_s$. This somewhat makes sense, because you might represent now both real and imaginary part of your signal on your frequency axis (twice as much space is necessary).

Here is some small example of sawtooth signal ($f_s=105Hz$), with fundamental frequency of $f_0=10 Hz$ and same signal modulated by the complex exponential with $f_{mod}=5Hz$. In such way we get time domain signal with complex values: $$x_{mod}(t)=x(t)e^{2\pi if_{mod}t}$$

As you can see, amplitude (phase also) spectrum for real valued signal is symmetrical around the Nyquist frequency (aliasing is also visible whilst aliased harmonics are not covered by genuine). On the contrary same sawtooth modulated by complex sinusoid (and cosinusoid) is no longer symmetrical. Probably you will notice another "feature" of this signal, while taking a closer look at peak frequencies and relating it to $f_{mod}$...

enter image description here

And traditionally, code:

%% Time domain parameters
fs = 105;
dt = 1/fs;
T = 10*pi;
t = 0:dt:T-dt;
N = length(t);
%% Sawtooth signal generation
f0 = 10;
x = sawtooth(2*pi*f0*t);
X = abs(fft(x))/N;
freqs = (0:N-1).*(fs/N);
subplot(211)
plot(freqs, X)
grid on
hold on
plot([fs/2 fs/2], [0 max(X)], '--r')
xlim([0 max(freqs)])
xlabel('Frequency [Hz]')
ylabel('Amplitude')
title('FT of real-valued signal')
l=legend({'sawtooth','$\frac{f_s}{2}$'});
set(l,'Interpreter','Latex');
%% Complex modulated sawtooth signal
f0_cplx = 15;
y = x.*exp(2*1i*pi*f0_cplx*t);
Y = abs(fft(y))/N;
subplot(212)
plot(freqs, Y)
grid on
hold on
plot([fs/2 fs/2], [0 max(Y)], '--r')
xlim([0 max(freqs)])
xlabel('Frequency [Hz]')
ylabel('Amplitude')
title('FT of complex-valued signal')
l=legend({'complex mod-sawtooth','$\frac{f_s}{2}$'});
set(l,'Interpreter','Latex');
$\endgroup$
  • $\begingroup$ This MATLAB plot has really neat rendering. Did you use some special sauce to make it look like that? $\endgroup$ – Phonon Jun 3 '14 at 20:55
  • 2
    $\begingroup$ Hi @Phonon. This is the new HG2 engine (Handle Graphics 2). Simply add to your MATLAB shortcut execution path: -hgVersion 2 and voila ;) $\endgroup$ – jojek Jun 3 '14 at 21:11
  • $\begingroup$ @Phonon: If you are into MATLAB, then you will love Undocumented MATLAB - highly recommend it! $\endgroup$ – jojek Jun 3 '14 at 22:44
  • $\begingroup$ what is your sampling frequency here? Is it around 30 Hz $\endgroup$ – Karan Talasila Jun 4 '14 at 10:55
  • $\begingroup$ @Talasila: Yes, it is 30-ish Hz. I've let it to be calculated automatically and being prone to leakage, because I wanted to present different phenomena. Probably I will change sampling frequency definition. $\endgroup$ – jojek Jun 4 '14 at 11:23

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.