Adding the waves below will produce the wave packet on the right.
A single frequency produces a wave with constant amplitude from the infinite past to the infinite future. To constrain the wave within a finite time period, we need to add frequencies close to this central frequency.
With the buttons on the left you can add two frequencies to the signal, one a bit higher, and one a bit lower. Keep adding these frequencies to contrict the wave packet in time.
The wave packet:
The two extra frequencies (shown on the left) produce a beating effect that creates nodes. However, you also see that we have revival of the amplitude towards the future and the past. We can suppress these revivals by adding more frequencies.
Notice how adding frequencies brings the nodes closer together.
The wider the frequency spectrum, the narrower we can make the wave packet in the time domain.
We have gotten to the point where the revivals are noticably suppressed.
At any point in time (the horizontal axis), the electromagnetic field has a value, and each frequency contributes to this value.
Similarly, when you want to make a very sharp frequency measurement, you have to sample the wave for an exceedingly long time to collect enough cycles: Frequency is the number of cycles over a give stretch of time, and the longer this interval, the more precise you measure the frequency.
Both the frequency components and the amplitudes at a specific point in time are real. The wave packet is a superposition of the diffrerent frequencies, just like a quantum state is typically a superposition of terms. These terms are real in the same sense that the frequencies in the wave packet are real, according to the Many Worlds interpretation.