AI Computer Institute
Expert-curated CS & AI curriculum aligned to CBSE standards. A bharath.ai initiative. About Us

Fourier Transforms and Signal Processing

🔬
Beyond Syllabus — Enrichment Content

This chapter covers advanced research topics beyond standard CBSE/NCERT scope. It's designed for curious minds preparing for IIT-JEE Advanced, KVPY, or research-track studies. Core exam preparation does not require this material.

📚 Applied Mathematics⏱️ 24 min read🎓 Grade 10🔬 Beyond Syllabus
✍️ AI Computer Institute Editorial Team Updated: August 2026 CBSE-aligned · Peer-reviewed · 24 min read
Content curated by subject matter experts with IIT/NIT backgrounds. All chapters are fact-checked against official CBSE/NCERT syllabi.

Open any audio editor — even the free ones bundled with a budget Android phone — and you can drag a slider that says "bass," another that says "treble," and a graphic equalizer with eight or ten sliders in between. Somehow the software can reach inside a song and turn down just the low rumble of a bass guitar without touching the singer's voice. A hospital ECG machine looks at the same kind of squiggly voltage trace and flags an irregular heartbeat before a doctor even glances at it. A 4G tower packs hundreds of phone calls onto the same slice of radio spectrum without the calls scrambling into noise. All three machines are doing the same underlying trick, and by the end of this chapter you will be able to do the arithmetic behind it yourself: they are not looking at the signal in time. They are looking at it in frequency. The tool that gets them there is the Fourier transform, and it is arguably the single most reused piece of mathematics in electrical engineering, and increasingly, in medicine, geology, and finance.

Waves You Already Know

A pure tone — the sound a tuning fork makes, or the steady "beep" of a heart-rate monitor — is a sine wave: x(t) = A·sin(2πft + φ). Three numbers describe it completely. The amplitude A sets how loud or intense it is. The frequency f, measured in hertz (cycles per second), sets how high or low it sounds — a tanpura's drone sits around 100–150 Hz, while a shehnai's upper notes reach past 1000 Hz. The phase φ just shifts the wave sideways in time, which matters when you start adding waves together (more on this soon).

Here is a fact students often get backwards, so let's fix it early: frequency is not loudness. A mosquito's whine is high frequency but usually quiet; a tabla's low dha stroke is low frequency but can be loud. Frequency is a completely separate knob from amplitude. Keeping these two ideas untangled is essential for everything that follows, because a Fourier transform is precisely a machine for reading off the amplitude that belongs to each frequency in a signal.

Superposition: Why Adding Waves Is the Whole Game

When two waves occupy the same medium at the same time, physics (specifically, the linearity of the wave equation for the small vibrations you meet in Class 11) says you simply add their displacements at every instant: x(t) = x₁(t) + x₂(t). This is the principle of superposition, and it is why a tabla, a tanpura, and a voice can all vibrate the same air molecules simultaneously without erasing each other — the air's displacement at each moment is just the sum of what each source would have produced alone.

Superposition is a one-way street that Fourier reversed. Adding known waves to build a complicated one is easy — you did it in physics class drawing wave interference. Fourier's question runs the other direction: given an already-complicated signal, which sine waves, at which amplitudes, were added together to make it? That reverse question — decomposition instead of composition — is what a Fourier transform answers.

Fourier's Claim, Made Precise

Jean-Baptiste Fourier's claim, published in 1822 while studying heat flow, was startling for its time: any periodic function f(t) with period T can be written as a sum of a constant plus sine and cosine waves whose frequencies are whole-number multiples of the fundamental frequency 1/T.

f(t) = a₀/2 + Σ (n=1 to ∞) [ aₙ cos(2πnt/T) + bₙ sin(2πnt/T) ]

The n = 1 term is called the fundamental; the n = 2, 3, 4... terms are the harmonics. This is exactly why a sitar and a flute playing the identical note (same fundamental frequency) sound different — they mix in different amounts of each harmonic. Timbre is the harmonic recipe.

The genuinely useful part is that the recipe — the coefficients aₙ and bₙ — can be extracted from f(t) directly, with no guessing, using a property called orthogonality. For integers m, n ≥ 1:

∫(0 to T) cos(2πmt/T)·cos(2πnt/T) dt = T/2   if m = n,  else 0
∫(0 to T) sin(2πmt/T)·sin(2πnt/T) dt = T/2   if m = n,  else 0
∫(0 to T) cos(2πmt/T)·sin(2πnt/T) dt = 0     always

These integrals are a standard product-to-sum exercise (write cos A cos B = ½[cos(A−B) + cos(A+B)] and integrate over a full period — every term except the m = n case integrates to zero because it's a whole number of complete cycles). The consequence is powerful: if you multiply both sides of the Fourier series by cos(2πmt/T) and integrate over one period, every term in the infinite sum vanishes except the one where n = m, because that's the only term that survives orthogonality. What's left is:

∫(0 to T) f(t)cos(2πmt/T) dt = aₘ · (T/2)
     ⟹  aₘ = (2/T) ∫(0 to T) f(t) cos(2πmt/T) dt

Similarly:  bₘ = (2/T) ∫(0 to T) f(t) sin(2πmt/T) dt
            a₀ = (2/T) ∫(0 to T) f(t) dt   (this is just twice the average value)

This is the whole engine. Orthogonality turns "which frequencies are present, and how much of each" from a guessing game into a definite integral you can actually compute. It's the same idea as projecting a vector onto perpendicular axes in linear algebra — cos(2πt/T), sin(2πt/T), cos(4πt/T), sin(4πt/T)... behave like an infinite set of mutually perpendicular axes, and aₙ, bₙ are just the coordinates of f(t) along each one.

Worked Example: Decomposing a Square Wave

Take the signal an ideal digital clock or a simple square-wave synthesizer produces: f(t) = +1 for 0 < t < T/2, and f(t) = −1 for −T/2 < t < 0, repeating with period T. This function is odd (f(−t) = −f(t)), and cos is even, so every aₙ integral is an odd function integrated over a symmetric interval — it vanishes automatically. Only the bₙ survive. Compute:

bₙ = (2/T) ∫(-T/2 to T/2) f(t) sin(2πnt/T) dt

Since f(t)·sin(2πnt/T) is even (odd × odd = even):
bₙ = (4/T) ∫(0 to T/2) sin(2πnt/T) dt
   = (4/T) · [ -T/(2πn) · cos(2πnt/T) ] evaluated 0 to T/2
   = (4/T) · [ -T/(2πn) ] · [ cos(πn) - cos(0) ]
   = -(2/(πn)) · [ (-1)ⁿ - 1 ]
   = (2/(πn)) · [ 1 - (-1)ⁿ ]

Check the two cases: if n is even, (-1)ⁿ = 1, so 1 − 1 = 0 → bₙ = 0. Even harmonics are completely absent. If n is odd, (-1)ⁿ = −1, so 1 − (−1) = 2 → bₙ = 4/(πn). So:

f(t) = (4/π)[ sin(2πt/T) + (1/3)sin(6πt/T) + (1/5)sin(10πt/T) + (1/7)sin(14πt/T) + ... ]

Only odd harmonics, with amplitude falling off as 1/n. The diagram below plots partial sums of this exact series — using 1 term, 3 terms, and 10 odd terms (through the 19th harmonic) — next to the frequency-domain "spectrum," a bar chart of the bₙ values themselves. This is the concrete meaning of "time domain" versus "frequency domain": the left panel is f(t) plotted against t; the right panel is bₙ plotted against n. They are two complete, equivalent descriptions of the identical signal — nothing is lost moving from one to the other, and nothing is gained. You can rebuild the left panel exactly from the right panel's numbers, which is the point of the whole exercise.

Time domain: building a square wave Frequency domain: the spectrum (bₙ) +1 -1 t (one period T) Amp 0 T/4 T/2 3T/4 T Gibbs overshoot ≈ 9% N = 1 term N = 3 terms N = 19 terms harmonic number n bₙ 1 3 5 7 9 4/π 4/3π

Look closely at the N = 19 curve near t = 0 and t = T/2, where the square wave jumps discontinuously from −1 to +1. Even with 10 nonzero terms, the partial sum overshoots the target value of +1, peaking around 1.18 before settling down. This is the Gibbs phenomenon: near any jump discontinuity, a truncated Fourier series always overshoots by roughly 9% of the jump size (here the jump is 2, from −1 to +1, so the overshoot adds about 0.18), no matter how many terms you add. The overshoot doesn't shrink with more terms — it just squeezes into a narrower and narrower sliver of time. This is a genuinely subtle, correct result (proved rigorously in a first course on Fourier analysis) and it matters practically: it's why digital audio and image compression need careful filtering near sharp edges, or you get audible "ringing" artifacts or visible halos around hard edges in a JPEG.

From Series to Transform: Signals That Never Repeat

Fourier series need a period T. But a single handclap, a spoken word, or a lightning strike's electromagnetic pulse isn't periodic at all — it happens once. The trick mathematicians use is to imagine T growing towards infinity: the spacing between allowed harmonic frequencies (which is 1/T) shrinks towards zero, and the discrete "comb" of harmonics n/T blurs into a continuous range of frequencies. The sum becomes an integral, and this is the Fourier transform:

X(f) = ∫(-∞ to ∞) x(t)·e^(-i2πft) dt

The term e^(iθ) here is Euler's formula from the complex numbers chapter: e^(iθ) = cos θ + i sin θ. Writing e^(-i2πft) = cos(2πft) − i sin(2πft) packages a cosine correlation and a sine correlation (exactly our aₙ and bₙ from before) into one complex number: its real part measures the cosine content at frequency f, its imaginary part the sine content, its magnitude |X(f)| the total strength at that frequency, and its argument the phase. X(f) is a complex-valued function of a continuous frequency variable f — the natural generalisation of the discrete bₙ bars in the spectrum diagram above to a signal that isn't periodic.

Digital Reality: Sampling and the Nyquist Theorem

Every device you actually own — a phone, a laptop, a digital stethoscope — stores signals as a finite list of numbers, not a continuous function. A microphone's continuous voltage x(t) gets sampled: read off at a fixed rate fₛ samples per second, giving x[0], x[1], x[2], ... where x[n] = x(n/fₛ). The urgent question this raises: how fast must you sample to not lose information?

Here's the intuition. To even notice that a wave is oscillating, you need at least two samples per cycle — one catching it near a peak, one near a trough. Sample any slower and a fast wave can sneak between your sample points and imitate a completely different, slower wave. This gives the Nyquist–Shannon sampling theorem: a signal containing no frequencies above f_max can be perfectly reconstructed from samples taken at rate

fₛ > 2·f_max        (the "Nyquist rate")

This single inequality quietly justifies two real engineering decisions you have used today. Human hearing tops out around 20,000 Hz, so audio CDs and most digital music are sampled at 44,100 Hz — comfortably above 2 × 20,000 = 40,000 Hz, with headroom for the imperfect analog filters that remove content above 20 kHz before sampling. Landline and most mobile voice calls only need to preserve intelligible speech, roughly 300–3,400 Hz, so telephone systems worldwide standardised on sampling at 8,000 Hz — comfortably above 2 × 3,400 = 6,800 Hz. Neither number is arbitrary; both are direct, checkable consequences of the Nyquist inequality.

Violate the inequality and you get aliasing: a frequency above fₛ/2 doesn't just disappear, it reappears disguised as a lower, wrong frequency. The formula for the disguise, for a real signal of frequency f sampled at rate fₛ, is to fold f into the band [0, fₛ/2] by reflecting off multiples of fₛ. Worked example: a 5 Hz signal sampled at fₛ = 8 samples/second. The Nyquist band is [0, 4 Hz]. Reflecting: the nearest sampling harmonic is fₛ = 8 Hz, and |5 − 8| = 3 Hz, which does lie inside [0, 4]. So the reconstructed signal looks exactly like a pure 3 Hz wave — indistinguishable from the real thing once you're holding only the samples. This is the same mathematics behind the "wagon-wheel effect" where a car's spokes appear to spin backwards on video — the camera's frame rate is the sampling rate, and the spokes' rotation rate has aliased.

The Discrete Fourier Transform: A Hand-Worked Example

For a finite list of N samples x[0], ..., x[N−1], the discrete analogue of the Fourier transform is the DFT:

X[k] = Σ (n=0 to N-1) x[n]·e^(-i2πkn/N),   for k = 0, 1, ..., N-1

Let's compute one by hand, in full, with N = 4. Take x = [0, 1, 0, −1] — four samples of sin(2πn/4) = sin(90°n), i.e. exactly one cycle of a pure sine wave sampled at 4 points. Since N = 4, e^(-i2πkn/4) = e^(-iπkn/2) = cos(90kn°) − i·sin(90kn°), which only ever takes the values 1, −i, −1, i. We just need X[1] (the others are similar or zero by direct substitution):

X[1] = Σ x[n]·e^(-iπn/2)
     = x[0]·e^0 + x[1]·e^(-iπ/2) + x[2]·e^(-iπ) + x[3]·e^(-i3π/2)
     = 0·(1)      + 1·(-i)          + 0·(-1)       + (-1)·(i)
     = 0  - i  + 0  - i
     = -2i

Carrying out the same substitution for the other three: X[0] = 0, X[2] = 0, X[3] = +2i. So the full spectrum is X = [0, −2i, 0, +2i]. Notice two things, both of which are general rules, not coincidences of this example. First, a signal containing exactly one frequency produces spikes at exactly two DFT bins, k = 1 and k = N−1 = 3, not one — this is conjugate symmetry: for any real-valued input signal, X[N−k] always equals the complex conjugate of X[k], because Euler's formula splits a real sine or cosine into a pair of complex exponentials spinning in opposite directions. Second, both nonzero magnitudes equal 2 = N/2, matching the general rule that a unit-amplitude sinusoid produces DFT peaks of height N/2. Real software never does this arithmetic by hand — it uses the Fast Fourier Transform (FFT), an algorithm (Cooley–Tukey, 1965, though the core idea traces back to Gauss) that computes the same N numbers in O(N log N) operations instead of the O(N²) a direct DFT needs — the difference between a modern phone computing a 1-second audio spectrum in microseconds versus seconds.

You can check this same idea with real code. Here two sine waves are mixed, and the FFT recovers exactly their two frequencies:

import numpy as np

fs = 500                        # samples per second
t = np.arange(0, 1, 1/fs)       # 500 samples spanning 1 second
signal = np.sin(2*np.pi*50*t) + 0.5*np.sin(2*np.pi*120*t)

X = np.fft.fft(signal)
freqs = np.fft.fftfreq(len(signal), 1/fs)

peaks = sorted(set(round(abs(f)) for f in freqs[np.abs(X) > 50]))
print(peaks)
# Output: [50, 120]

Trace it: 500 samples over exactly 1 second gives a frequency resolution of fs/N = 1 Hz per bin, so the 50 Hz and 120 Hz components land exactly on integer bins with no smearing. Their DFT magnitudes are N·A/2 = 500·1/2 = 250 and 500·0.5/2 = 125 respectively — both comfortably above the threshold of 50 — while every other bin is a floating-point rounding artefact near zero, well below it. The filter correctly isolates only the two true frequencies.

Where This Actually Runs

Audio streaming apps like JioSaavn, Spotify, and YouTube Music compress files using formats such as MP3 or AAC. Their encoders run something close to a windowed Fourier transform (specifically a Modified Discrete Cosine Transform) on short audio chunks, identify which frequency components a human ear would barely perceive against louder neighbouring frequencies (a psychoacoustic masking model), and simply discard those components — this is how a 40 MB uncompressed song shrinks to 3–4 MB with limited audible loss. JPEG image compression runs the same idea in two dimensions using the Discrete Cosine Transform, a close real-valued cousin of the Fourier transform: it converts 8×8 pixel blocks into frequency components and keeps the low-frequency ones (smooth colour variation) while aggressively discarding high-frequency ones (fine texture), which is exactly why heavily compressed JPEGs show blocky artefacts near sharp edges — a visual cousin of the Gibbs overshoot you saw above. In hospitals, ECG and EEG traces are frequency-analysed to flag rhythms with characteristic frequency signatures that are hard to spot by eye in the raw time-domain trace. India's GSAT communication satellites, operated by ISRO, carry multiple transponders tuned to separate frequency bands (C-band, Ku-band, Ka-band) so that many independent television and data channels share one satellite without their signals colliding — frequency-division multiplexing, a direct engineering application of "different information lives at different frequencies." And 4G/5G networks (including Reliance Jio's, built on OFDM — Orthogonal Frequency Division Multiplexing) pack thousands of tightly-spaced, mutually orthogonal sub-carrier frequencies into one channel and use the FFT at both the transmitting tower and the receiving phone to encode and decode them efficiently.

Two Misconceptions Worth Correcting

Misconception 1: "Higher frequency in a signal means it's louder or stronger." Frequency and amplitude are independent axes, as established earlier — a spectrum bar chart plots amplitude against frequency precisely because they are two different quantities. A tall bar at low frequency (like the 4/π bar for n = 1 above) represents a strong low-pitched component; a short bar at high frequency represents a weak high-pitched one. Height, not horizontal position, is what tells you "how much."

Misconception 2: "The Fourier transform tells you what a signal is doing at each moment in time." It deliberately does not. X(f) is computed by integrating over all time — a single frequency bin mixes together information from the very first sample and the very last. This is genuinely counter-intuitive and it is why, if you want to know both "what frequency" and "when," standard Fourier analysis is the wrong tool — you need a Short-Time Fourier Transform (running the DFT on a sliding window) or a wavelet transform, which trade some frequency precision for time localisation. This time–frequency trade-off is a real and rigorous limit (closely analogous in spirit, though not identical in mechanism, to the Heisenberg uncertainty principle in quantum mechanics), not a mere implementation detail — a signal cannot simultaneously be perfectly localised in time and perfectly localised in frequency.

Where This Sits in Your Syllabus

The orthogonality integrals above are standard definite-integral practice for CBSE Class 12 and JEE Main/Advanced (properties of definite integrals, integration of trigonometric products). Euler's formula e^(iθ) = cos θ + i sin θ, used to build the DFT above, is core Class 11–12 Complex Numbers syllabus, and De Moivre's theorem is the same machinery you used to compute powers of the complex exponential in the DFT sum. CBSE Class 11 Physics (Oscillations and Waves) covers superposition directly; CBSE Class 12 Physics's "Communication Systems" chapter covers bandwidth, modulation, and signal transmission — all frequency-domain ideas stated qualitatively there, and derived quantitatively here. For GATE-foundation and serious engineering prep, this entire chapter is the conceptual seed of a full undergraduate course called Digital Signal Processing (DSP), a compulsory subject in every electronics and communication engineering programme in India.

Test Yourself

  1. Symmetry check: Using the square-wave result bₙ = 4/(πn) for odd n and 0 for even n, what is b₆ without recomputing the integral? (Answer: 0 — 6 is even, and the square wave's odd symmetry kills every even harmonic. If you found yourself reaching for the integral again, revisit why odd × odd = even determined this before any arithmetic.)
  2. Nyquist gotcha: A budget voice recorder samples at 32,000 Hz and is marketed as capturing "full audio quality." Human hearing extends to about 20,000 Hz. Is 32,000 Hz sufficient by the Nyquist criterion? (Answer: No. 2 × 20,000 = 40,000 Hz is required; 32,000 Hz is less than 40,000 Hz, so frequencies roughly above 16,000 Hz will alias into false lower frequencies instead of being captured correctly.)
  3. Aliasing arithmetic: A 5 Hz vibration is sampled at 8 samples/second. Using the reflection rule (fold into [0, fₛ/2] around multiples of fₛ), what apparent frequency will the recorded samples show? (Answer: |5 − 8| = 3 Hz, which lies inside the Nyquist band [0, 4 Hz], so the samples are indistinguishable from a genuine 3 Hz signal.)
  4. Conceptual: Why does a single real-valued sine wave always produce two nonzero spikes in its DFT, not one, and why are their heights equal? (Answer: conjugate symmetry, X[N−k] = X[k]* for real input, because Euler's formula represents a real sine as the sum of two counter-rotating complex exponentials at +f and −f of equal size.)

Summary

A periodic signal decomposes into a sum of harmonically related sines and cosines (Fourier series); the coefficients are extracted cleanly using the orthogonality of sine and cosine over one period, turning "what frequencies are present" into a computable definite integral. Letting the period grow to infinity generalises this into the Fourier transform for one-off, non-periodic signals, expressed compactly using Euler's formula. Because real devices store finite lists of numbers, the Discrete Fourier Transform (computed efficiently by the FFT) is the version that actually runs in hardware, and it is bound by the Nyquist–Shannon theorem: sample below twice your highest frequency and information is not just lost but corrupted into false lower frequencies (aliasing). Every example in this chapter — the square wave's Gibbs overshoot, MP3 compression, JPEG blockiness, ISRO's multi-band satellites, 4G's OFDM — is the same handful of ideas (superposition, orthogonality, sampling) reapplied to a different physical signal.

← Numerical Methods and Python ImplementationGraph Theory and Networks — From Bridges to Social Graphs →

Found this useful? Share it!

📱 WhatsApp 🐦 Twitter 💼 LinkedIn