 Another practical effect is the impact of windowing. As you are aware, a cosine like the one which we have shown here is a time unlimited signal whose Fourier transform is actually half of delta of f minus f0 plus half of delta of f plus f0. In this particular situation, we have a one hertz cosine and its Fourier transform is shown as having two impulses. Naturally, since S of t is a time unlimited signal, we cannot represent it or understand it in a practical scenario. We have to perform a windowing or a time limitation. Let us now perform a time limitation by restricting the cosine to being between minus 2 and 2. Immediately, you will see that in the frequency domain, the Fourier transform changes significantly. It has peaks at minus 1 and 1 indicating the flavor of the cosine is preserved. But because you have multiplied it by a rectangle which is shown in the dotted lines over here, a rectangle has a Fourier transform of a sink. Therefore, in the frequency domain, the convolution of these impulses with sinks implies that you have sinks being placed at those locations. Therefore, you can clearly see that the Fourier transform of this signal which is a truncated cosine has the flavor or characteristic of the original cosine, but is significantly altered. To get back some of the characteristic of the cosine Fourier transform, we can make the window slightly larger. If you go from minus 3 to 3, then the sinks become slightly smaller and you have a narrower and narrower kind of sink in the frequency domain. If you go from minus 4 to 4 also, you will see that it becomes even narrower. Therefore, the more you are windowing, the more accurate or closer you get to that infinite cosine, but you can never get to the accurate impulse because of the fact that you have to truncate in order to perform any practical simulation based on these signals. This is something which we can observe practically in GNU radio as well. Let us now take a quick detour to see how spectral lines appear on GNU radio and how different FFT window sizes affects the spectrum. To do this, we start with a simple GNU radio example where we first get a signal source. As usual, we press control F or command F and type signal and you can grab the signal source. Place it onto your float graph. We double click it and change the complex to float because we want a real signal. We also want to be able to vary the frequency. Therefore, we will change the thousand to the keyword FREQ and we will then add a QTGUI range that allows us to alter the frequencies. We will now click OK. We will then add a QTGUI range first. So, control F for command F, type range, grab the range, place it onto our screen. The ID will be FREQ. Float is the type. We want the default value to be 1000 hertz. We will start exactly at let's say 100 hertz and we can stop at let's say around 16,000 hertz that corresponds precisely to half the sampling rate. In fact, we would want to stop a little before but it's fine. We'll make the step size 0.1 hertz. We can now add a throttle, command F or control F, type throttle, grab the throttle, double click it, change the type to float, say OK. We then connect the signal source to the throttle. And the final component that we will need is the frequency sync. So we press control F for command F and type FREQ, grab the QTGUI frequency sync, again change type to float. We will also change the window type to rectangular so that we don't have any extra effects in the spectrum. We will also add a grid and set auto scale to yes. We will then say OK, connect the throttle output to the frequency sync and we then run our flow graph. You will see this kind of a spectrum. So, you will see that there are distinct lines at around minus 1 kilohertz and 1 kilohertz as expected for a cosine. But because of numerical issues, you will see some other lines as well, specifically at harmonics. But these can safely be ignored because they are much, much below 150 dB, which means they are roughly 10 power minus 15 times the peak value or close to that. Now, if we now change the frequency somewhat, let us say we will change this to about 1010 hertz. You will see that the spectral line is no longer as narrow and you have a slightly wider spectrum. But if you choose another number like let's say 1600 hertz, you will see something which is still very wide and let's say if you choose 2000 hertz, you will again start seeing distinct lines. Why is this the case? To understand why we observe these kinds of spectral characteristics, we must understand how GNU radio computes the spectrum that is being displayed. GNU radio uses the discrete Fourier transform evaluated using the fast Fourier transform algorithm for obtaining the frequency spectrum. You would recall from your signals and DSP course that whenever you evaluate the DFT of a sampled continuous time signal, if the continuous time signal has a frequency that satisfies f upon fs times nfft where fs is the sampling frequency, if f upon fs times nfft is an integer, then the DFT produces distinct lines that is the DFT will be non-zero only at those one or two points that correspond to the frequency f and minus f respectively. For other frequencies, this will not hold. Let us take an example. If we choose nfft to be 1024, a sampling frequency of 32000 hertz, then choosing f to be 1000 hertz gives us 1000 upon 32000 times 1024 is 32, which is an integer. Therefore, we get a distinct line. The next number of interest will be 1031.25. You should try to figure out why that is the case. But it is very evident that 1000, 2000 and such numbers will have this property but numbers like 1010 or 1016 will not have this property when you choose nfft to be 1024 and fs to be 32000 hertz. Therefore, in such situations, you will get a DFT that has non-zero values in the neighboring bins as well. To get a better idea, let us introduce the control panel by middle clicking and choosing control panel in our frequency plot. We can see that we have 1024 rectangular window. Let us now change this to 2010 hertz. You will see now that the spectrum becomes slightly fat. Again, that is because 2010 divided by 32000, that is the sampling frequency times nfft is not an integer. Let us stick to this 2010 and see how the windowing affects our spectrum. We will start at a 32 point DFT. In the case of a 32 point DFT, you can see that the cosine which should yield two impulses actually yields really fat curves. This is because the fft size is small. We take a 32 length window and a 32 length window is insufficient for us to accurately produce the DFT. If we make it 64, we can see that it heads closer to the desired impulses. At 128, even narrower, let us go to 1024. You can see that it becomes even more narrow. Now, the complexity becomes higher, but let us choose 16384. You can see that you end up getting discrete or nearly discrete lines. If we go back to your old frequency which is 1000, you will still see very sharp lines, but 1010 will not have the same sharp lines, but they are sharper than before. The reason is because choosing 16384 samples yields a much, much larger window and thereby produces a more close estimate of the Fourier transform of the infinite length cosine. To summarize the past few things that we have seen, vector spaces are as applicable for vectors as they are for signals. In fact, as applicable for signals as they are for vectors. We have also seen signals and their spectral picture using the Fourier transform and how the Fourier transform can be used to interpret the frequency characteristics of signals. We looked at some common operations of signals such as convolution, multiplication, their norm, energy and things of that sort. And finally, we have seen both theoretically and practically the impacts of windowing, the use of the discrete Fourier transform for representing signals and other such features. Thank you.