(New page: Assume a function <math>x(t)</math>. We wish to covert a signal sampled at <math>T_1</math> one sampled at <math>T_2</math> without having to reconstruct the original <math>x(t)</math> an...) |
|||
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | == Sample Rate Conversion == | |
− | + | Let us take a function <math>x(t)</math> | |
− | + | [[Image:sampling_rate_conv.jpg]] | |
− | + | We wish to covert a signal sampled at <math>T_1</math> to one sampled at <math>T_2</math> without having to reconstruct the original <math>x(t)</math> and then resampling at a new rate. | |
− | + | There are two cases here - | |
− | + | 1. <math>T_2</math> is a multiple of <math>T_1 \to</math> conversion can be accomplished by down-sampling | |
+ | |||
+ | 2. <math>T_2</math> is a divider of <math>T_1 \to</math> conversion can be accomplished by up-sampling followed by LPF | ||
+ | |||
+ | == Case 1 - <math>T_2</math> is a multiple of <math>T_1</math> == | ||
+ | |||
+ | We are trying to accomplish the following - | ||
+ | |||
+ | <div style="font-family: Verdana, sans-serif; font-size: 12px; text-align: center; width: 30%; margin: 0px; border: 1px solid #aaa; padding: 1em;"> <math>x_1[n] \longrightarrow D = \frac{T_2}{T_1} \bigg\Downarrow \longrightarrow x_2[n]</math> | ||
+ | </div> | ||
+ | |||
+ | We know that | ||
+ | |||
+ | <math>x_2[n] = x_1[Dn] \quad \mbox{where } D = \frac{T_2}{T_1}</math> | ||
+ | |||
+ | as this is the same as doing <math>x_2[n] = x(T_2n)</math> | ||
+ | |||
+ | This, in Fourier Domain becomes | ||
+ | |||
+ | <math>F(x_2[n]) = F(x_1[Dn])</math> | ||
+ | |||
+ | <math>X_2(\omega) = \sum_{n=-\infty}^{\infty} x_1[Dn] e^{-j \omega n}</math> | ||
+ | |||
+ | let <math>m = Dn</math> | ||
+ | |||
+ | <math>X_2(\omega) = \sum_{m=-\infty}^{\infty} x_1[m] e^{-j \omega \frac{m}{D}}\quad \mbox{where }m\mbox{ is a multiple of }D </math> | ||
+ | |||
+ | Now, we can introduce a function <math>s_D[m]</math> such that | ||
+ | |||
+ | <math>s_D[m] = | ||
+ | |||
+ | \begin{cases} | ||
+ | 1, & \mbox{if }m\mbox{ multiple of }D\\ | ||
+ | 0, & \mbox{else } | ||
+ | \end{cases} | ||
+ | |||
+ | </math> | ||
+ | |||
+ | The Fourier Series of this function can be represented as | ||
+ | |||
+ | <math>S_D[m] = \frac{1}{D} \sum_{k = 0}^{D-1} (e^{j \frac{2 \pi}{D} m})^k</math> | ||
+ | |||
+ | and therefore we get | ||
+ | |||
+ | <math>X_2(\omega) = \sum_{m = -\infty}^{\infty} S_D[m] e^{-j \omega \frac{m}{D}}</math> | ||
+ | |||
+ | <math>X_2(\omega) = \sum_{m = -\infty}^{\infty} \frac{1}{D}\sum_{k = 0}^{D-1} e^{j k \frac{2 \pi}{D} m} x_1[m] e^{-j \omega \frac{m}{D}}</math> | ||
+ | |||
+ | <math>X_2(\omega) = \frac{1}{D} \sum_{k=0}^{D-1} \sum_{m=-\infty}^{\infty} x_1[m] e^{-j m (\frac{\omega - 2 \pi k}{D})}</math> | ||
+ | |||
+ | And since <math>\sum_{m=-\infty}^{\infty} x_1[m] e^{-j m (\frac{\omega - 2 \pi k}{D})} = X_1(\frac{\omega - 2 \pi k}{D})</math> | ||
+ | |||
+ | Therefore, | ||
+ | |||
+ | <div style="font-family: Verdana, sans-serif; font-size: 12px; text-align: center; width: 30%; margin: 0px; border: 1px solid #aaa; padding: 1em;"> <math>X_2(\omega) = \frac{1}{D} \sum_{k=0}^{D-1} X_1(\frac{\omega - 2 \pi k}{D})</math> </div> | ||
+ | |||
+ | Let us assume the following plot for <math>X_1(\omega)</math>. We will also assume that the Nyquist condition is satisfied, ie. <math>f_{max} < \frac{1}{2T_1}</math>. | ||
+ | |||
+ | [[Image:X_w.jpg]] | ||
+ | |||
+ | Now, on scaling we have the following plot for <math>\frac{1}{D} X_1(\frac{\omega}{D})</math> | ||
+ | |||
+ | [[Image:Xd_w.jpg|center]] | ||
+ | |||
+ | We see that the scaled function is no longer periodic with period <math>2\pi</math>. | ||
+ | |||
+ | Now, consider frequency shifting the signal so that we have <math>\frac{1}{D}X_1(\frac{\omega-2\pi}{D})</math>. | ||
+ | |||
+ | [[Image:Xd2pi_w.jpg]] | ||
+ | |||
+ | For no information loss, we need | ||
+ | |||
+ | <math>W < \frac{\pi}{D}</math> | ||
+ | |||
+ | <math>\Rightarrow 2W < \frac{2\pi}{D}</math> | ||
+ | |||
+ | or <math>2WD < 2\pi</math> | ||
+ | |||
+ | From this we can see that we can fit <math>D</math> copies of [[Image:signalExample.jpg]] between <math>0</math> and <math>2\pi</math> without aliasing. | ||
+ | |||
+ | [[Image:Xw_copies.jpg]] | ||
+ | |||
+ | == Decimator == | ||
+ | |||
+ | If <math>x[n]</math> is not band limited, we can prevent aliasing by a process known as '''Decimation'''. This consists of - | ||
+ | |||
+ | 1. Low Pass Filtering the signal | ||
+ | |||
+ | 2. Downsampling | ||
+ | |||
+ | [[Image:decimator.jpg]] | ||
+ | |||
+ | This decimator is equivalent to | ||
+ | |||
+ | 1. Reconstructing <math>x(t)</math> from <math>x_1[n]</math> | ||
+ | |||
+ | 2. Removing high frequencies from <math>x(t)</math> | ||
+ | |||
+ | 3. Sampling band-limited <math>x(t)</math> with period <math>T_2</math> to get <math>x_2[n]</math> |
Latest revision as of 06:13, 23 September 2009
Sample Rate Conversion
Let us take a function $ x(t) $
We wish to covert a signal sampled at $ T_1 $ to one sampled at $ T_2 $ without having to reconstruct the original $ x(t) $ and then resampling at a new rate.
There are two cases here -
1. $ T_2 $ is a multiple of $ T_1 \to $ conversion can be accomplished by down-sampling
2. $ T_2 $ is a divider of $ T_1 \to $ conversion can be accomplished by up-sampling followed by LPF
Case 1 - $ T_2 $ is a multiple of $ T_1 $
We are trying to accomplish the following -
We know that
$ x_2[n] = x_1[Dn] \quad \mbox{where } D = \frac{T_2}{T_1} $
as this is the same as doing $ x_2[n] = x(T_2n) $
This, in Fourier Domain becomes
$ F(x_2[n]) = F(x_1[Dn]) $
$ X_2(\omega) = \sum_{n=-\infty}^{\infty} x_1[Dn] e^{-j \omega n} $
let $ m = Dn $
$ X_2(\omega) = \sum_{m=-\infty}^{\infty} x_1[m] e^{-j \omega \frac{m}{D}}\quad \mbox{where }m\mbox{ is a multiple of }D $
Now, we can introduce a function $ s_D[m] $ such that
$ s_D[m] = \begin{cases} 1, & \mbox{if }m\mbox{ multiple of }D\\ 0, & \mbox{else } \end{cases} $
The Fourier Series of this function can be represented as
$ S_D[m] = \frac{1}{D} \sum_{k = 0}^{D-1} (e^{j \frac{2 \pi}{D} m})^k $
and therefore we get
$ X_2(\omega) = \sum_{m = -\infty}^{\infty} S_D[m] e^{-j \omega \frac{m}{D}} $
$ X_2(\omega) = \sum_{m = -\infty}^{\infty} \frac{1}{D}\sum_{k = 0}^{D-1} e^{j k \frac{2 \pi}{D} m} x_1[m] e^{-j \omega \frac{m}{D}} $
$ X_2(\omega) = \frac{1}{D} \sum_{k=0}^{D-1} \sum_{m=-\infty}^{\infty} x_1[m] e^{-j m (\frac{\omega - 2 \pi k}{D})} $
And since $ \sum_{m=-\infty}^{\infty} x_1[m] e^{-j m (\frac{\omega - 2 \pi k}{D})} = X_1(\frac{\omega - 2 \pi k}{D}) $
Therefore,
Let us assume the following plot for $ X_1(\omega) $. We will also assume that the Nyquist condition is satisfied, ie. $ f_{max} < \frac{1}{2T_1} $.
Now, on scaling we have the following plot for $ \frac{1}{D} X_1(\frac{\omega}{D}) $
We see that the scaled function is no longer periodic with period $ 2\pi $.
Now, consider frequency shifting the signal so that we have $ \frac{1}{D}X_1(\frac{\omega-2\pi}{D}) $.
For no information loss, we need
$ W < \frac{\pi}{D} $
$ \Rightarrow 2W < \frac{2\pi}{D} $
or $ 2WD < 2\pi $
From this we can see that we can fit $ D $ copies of between $ 0 $ and $ 2\pi $ without aliasing.
Decimator
If $ x[n] $ is not band limited, we can prevent aliasing by a process known as Decimation. This consists of -
1. Low Pass Filtering the signal
2. Downsampling
This decimator is equivalent to
1. Reconstructing $ x(t) $ from $ x_1[n] $
2. Removing high frequencies from $ x(t) $
3. Sampling band-limited $ x(t) $ with period $ T_2 $ to get $ x_2[n] $