Learn the fundamentals of digital signal processing theory and discover the myriad ways DSP makes everyday life more productive and fun.

Loading...

来自 École Polytechnique Fédérale de Lausanne 的课程

数字信号处理

292 个评分

Learn the fundamentals of digital signal processing theory and discover the myriad ways DSP makes everyday life more productive and fun.

从本节课中

Module 6: Digital Communication Systems - Module 7: Image Processing

- Paolo PrandoniLecturer

School of Computer and Communication Science - Martin VetterliProfessor

School of Computer and Communication Sciences

Remember that our assumption is that the signal generated by the transmitter

is a wide sequence and therefore its power spectral density will be full band.

What we need to do is to shrink the support of its power spectral density so

that it fits on the band allowed by the channel.

The way we do this is by using multirate techniques.

In multirate the goal is to increase or

decrease the number of samples of the digital signal.

One way to do this is to interpolate the digital signal into continuous time signal

And then resample the interpolation at a different sampling rate.

However, we want to avoid the transition to discrete time and we want to perform

this artificial change of sampling rate entirely in the digital domain.

Let's consider the upsampling operation, which is really what we're interested in.

And let's look at how to do this, going through an interpolation and

resampling operation first.

So we have a discreet-time signal here.

We interpolate with a given period, Ts.

We obtain a continuous time signal.

And then we sample this continuous time signal,

with a period that is K times smaller than the original interpolation sample.

And we obtain another discreet-time sequence here.

Graphically, assume this is our discrete-time signal.

The interpolation to continuous time will give us this, and

the resampling with a smaller sample period

will give us a higher density of samples on the same curve.

So that the resulting upsampled signal would look like this.

Now we're interpolating to continuous time so

the choice of the sampling period is completely arbitrary.

For simplicity, as per usual, we choose Ts = 1.

And here we have that the interpolated signal is given by the standard sinc

interpolation formula.

When we resample with a period that is 1 / K, K times smaller than the original,

we are taking samples of the interpolated function at n / K.

And the result is an interpolation formula where the sinc function

now is centered at fractional intervals.

So n / K.

In the frequency domain, the process looks like so.

Imagine we have a discrete time signal whose spectrum is limited to 3pi / 4.

We interpolate it to continuous time and

we get an analog spectrum that looks like this.

Where our Nyquist frequency is omega N = pi / TS.

When we resample with the sampling period which is K times smaller,

that is equivalent to multiplying the Nyquist frequency by K.

So, we make it bigger and we move it over here.

And when we plot the resulting digital spectrum, we map,

as per usual, the Nyquist frequency to pi which corresponds to

a contraction of the frequency spectrum by a factor of K.

If here we choose K, which is equal to 3, we get that what was the highest

frequency of the spectrum, 3 pi /4, now becomes pi / 4.

Can we do this completely in the digital domain?

Well, the idea is that we need to increase the number of samples by a factor K and

obviously, the samples in the upsampled sequence will have to coincide with

the original values when the index of the upsampled sequence is a multiple of K.

There are several reasons why this is so, but probably the most intuitive one,

is that if we then discard the extra samples,

we should be able to obtain the original sequence again.

So, for lack of a better strategy, we can start by building a sequence where we put

the original samples, every K samples, and then we put 0s everywhere else in between.

So, for example, for K = 3, the upsample sequence,

say this is m = 0, will be equal to x[0] in m = 0.

Then we put two 0s, then we put x[1], then we put two 0s, then we put x[2], and

then we put two 0s.

We can see this in the time domain.

We start with the same sequence that we showed before.

And what we are doing, we're simply introducing 0s between each sample.

With this choice,

the Fourier transform of the upsampled sequence is rather easy to compute.

We just write out the standard DTFT formula, but

now here we remember that XU(m) will be equal to

0 every time that m is not a multiple of K.

And so with this we can simplify the sum and use only the non-zero terms.

And we get the sum from n that goes from minus infinity to plus infinity of x(n),

which is our original sequence, then multiplies e to the -j omega nK.

And so this is simply a scaling of the frequency axis by a factor of K.

Graphically we can plot the digital spectrum and

we know that now, since we're multiplying the frequency axis by a factor of K,

there will be a shrinkage of the frequency axis like this.

But we should never forget that the digital spectrum is 2 pi periodic.

So, let's plot this explicitly from -5 pi to 5 pi, if we choose K = 3.

We're mapping the interval from -3 pi to 3 pi back onto the -pi, pi interval.

When we do that, we get something that is very close to what we obtained going

through the analog domain, in the sense that this frequency here is again pi/4,

but we have extra copies that have crept in the main frequency interval.

Now we know what to do in this case is we apply some drastic low-pass filter to get

rid of them.

We choose an ideal low-pass filter with cut-off frequency pi/K.

Because this is where the original pi in the frequency spectrum would be mapped to.

And this will get rid of the extra copies and leave us with the spectrum

that is identical to what we obtain using an interpolator followed by a sampler.

So now let's look at the procedure back in the time domain.

So the first step is to insert K- 1 zeros after each sample

followed by an ideal low pass filter.

And we choose the cut-off frequency for

the filter to be pi/K, as we saw in the previous graph.

So now the resulting sequence

is simply the convolution of the upsampled sequence with zeroes.

And the impulse response of the filter,

that with this cut-off frequency will be simply sinc (n/K),

and if we work out the convolution sum, we have this summation here.

But again, we remember that, of these terms only one every K will be no zero.

So we'll replace i with mK, and we sum over m, and we get the sum for

m that goes from minus infinity to plus infinity of x(m) sinc (n/K- m),

which is exactly the same formula we got using an interpolator and a sampler.

As we mentioned before, if we have an upsampled sequence,

we can always recover the original sequence by downsampling.

Which means we keep only one sample out of K and throw away the rest.

Now this is obvious in the case of an upsample sequence where we just introduce

K- 1 zeros every sample.

But it is also true for a filtered sequence,

where we use an ideal filter, or any other filter

that fulfills the interpolation properties that we have seen in module six.

In other words, we want the impulse response to be equal to 1 for

n = 0 and to be equal to 0 for all multiples of K.

In general downsampling is a more complex operation than upsampling

just like sampling is more complicated than interpolation.

We have the pesky problem of aliasing, because we're throwing away information.

We will not develop the properties of the downsampling operator in detail,

because we will not need it in the following.

But you're encouraged to read about multi-rate signal processing in the book.