Skip to content

Commit

Permalink
Update gitignore, readme and explanations directory
Browse files Browse the repository at this point in the history
  • Loading branch information
MDLMAB committed Dec 14, 2024
1 parent 6566264 commit 4926415
Show file tree
Hide file tree
Showing 5 changed files with 286 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
# Directory provided by Mike X Cohen from Udemy Course
Fourier_intro/
FourierTransform_course/
# Extensions from VSCode
.vscode/

47 changes: 45 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,46 @@
Welcome to my **Deep Learning** repository! 🐒
# **Fourier Transform Learning Journey** 📊

This repository documents my personal journey in learning **Fourier Transform**. It includes practical tools, resources, and notes that I use in my personal projects. The goal of this repository is to provide a collection of useful materials, experiments, and insights for anyone diving into the exciting field of Deep Learning.
Welcome to my **Deep Learning** repository! 🐒

This repository serves as a documentation of my personal journey in mastering the **Fourier Transform**, a foundational mathematical tool widely used in engineering, data science, and signal processing.
---

## **Overview** 🌟

The **Fourier Transform** is a powerful technique that allows us to analyze signals in the frequency domain, revealing how complex signals can be decomposed into simpler sinusoidal components. It has a wide range of applications in fields such as:

- **Signal Processing**: Filtering, compression, and noise reduction.
- **Data Analysis**: Spectral analysis of time series data.
- **Image Processing**: Compression techniques (e.g., JPEG) and feature extraction.
- **Control Systems**: Stability and frequency response analysis.
- **Audio and Speech**: Equalization, synthesis, and noise cancellation.

This repository contains structured **notes, tools, and experiments** that I develop as I progress in my studies.

---

## **What You'll Find in This Repository** 📁

1. **Learning Notes**: Summaries and explanations of key Fourier Transform concepts.
2. **Practical Tools**: Scripts and utilities for performing Fourier analysis (Matlab/Python-based).
3. **Experiments**: Step-by-step projects that demonstrate the use of Fourier Transform in real-world problems.

---

## **Goals of the Repository** 🎯

- To **document my learning process** as I explore the theory and applications of the Fourier Transform.
- To create a **reference hub** for anyone interested in signal and frequency analysis.
- To share **practical implementations** and insights gained through experimentation and personal projects.

---

## **Current Status** 🚧

I have started my learning journey with resources like a course on **Udemy**. The focus is currently on building a solid theoretical foundation and gradually moving into practical applications using tools like **Python** and libraries such as:

- **NumPy**: For numerical analysis.
- **Matplotlib**: For visualizing signals and frequency components.
- **SciPy**: For advanced signal processing tasks.

## 🐒🍌🐒🍌🐒🍌🐒🍌🐒🍌🐒🍌
Binary file added explanations/complex_numbers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
109 changes: 109 additions & 0 deletions explanations/complexnumber.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# **The Importance of Complex Numbers in the Fourier Transform** 📈

Complex numbers play a **fundamental role** in the Fourier Transform because they allow us to represent oscillations (sinusoids) in a concise and elegant mathematical form. This simplifies both the theory and practical calculations, particularly when analyzing signals in the frequency domain.

---

## **1. Representing Sinusoids Using Complex Numbers**

The Fourier Transform decomposes a signal into its sinusoidal components. Instead of dealing with separate sine and cosine functions, complex numbers unify these components using the **complex exponential form** of Euler's formula:

\[
e^{j\omega t} = \cos(\omega t) + j\sin(\omega t)
\]

- \( e^{j\omega t} \): A complex exponential representing an oscillation with angular frequency \( \omega \).
- \( j \): The imaginary unit (\( j^2 = -1 \)).

This compact representation allows us to describe both **cosine** (real part) and **sine** (imaginary part) components simultaneously.

---

## **2. The Fourier Transform and Complex Numbers**

The **Fourier Transform** of a signal \( f(t) \) is defined as:

\[
F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt
\]

Here:
- \( e^{-j\omega t} \) serves as a **basis function** for decomposing the signal into frequencies.
- \( F(\omega) \) is the resulting **complex spectrum**, which contains:
- **Amplitude**: The magnitude of each frequency component.
- **Phase**: The shift (angle) of each frequency component.

The use of complex numbers allows the spectrum \( F(\omega) \) to carry **both amplitude and phase information**, which is essential for accurately reconstructing the original signal.

---

## **3. Why Phase Information Matters**

The phase tells us how much a sinusoid is **shifted in time** relative to its origin. If we ignored phase, we would lose critical information about the signal's structure.

For example, a sinusoidal wave with phase shift \( \phi \) can be written as:

\[
A \cdot e^{j\phi} = A (\cos(\phi) + j\sin(\phi))
\]

Where:
- \( A \): Amplitude.
- \( \phi \): Phase shift.

The combination of amplitude and phase uniquely describes each frequency component.

---

## **4. Geometric Interpretation of Complex Numbers**

In the **complex plane**:
- The **real axis** represents the cosine (real) components.
- The **imaginary axis** represents the sine (imaginary) components.

A complex exponential \( e^{j\omega t} \) can be visualized as a **rotation** around the complex plane. This rotation simplifies the analysis of oscillations in signals.

---

## **5. An Illustrative Example**

Let’s consider a simple signal:

\[
f(t) = \cos(2\pi t)
\]

Using Euler's formula, the cosine can be rewritten as:

\[
\cos(2\pi t) = \frac{e^{j2\pi t} + e^{-j2\pi t}}{2}
\]

Here:
- \( e^{j2\pi t} \): Represents a **positive frequency** oscillation.
- \( e^{-j2\pi t} \): Represents a **negative frequency** oscillation.

Thus, the cosine wave is composed of two rotating phasors (complex exponentials) in the frequency domain, one rotating **counterclockwise** (positive frequency) and the other **clockwise** (negative frequency).

By expressing signals in terms of complex exponentials, the Fourier Transform can efficiently analyze these components, extracting both amplitude and phase.

---

## **6. Why Use Complex Numbers in Fourier Analysis?**

1. **Mathematical Simplicity**: Complex exponentials unify sine and cosine terms into a single, elegant form.
2. **Compact Representation**: The complex spectrum \( F(\omega) \) captures both amplitude and phase information.
3. **Efficient Calculations**: Many mathematical operations, such as differentiation and integration, are simplified using complex exponentials.
4. **Geometric Insight**: Signals can be visualized as rotations in the complex plane.

---

## **Summary**

Complex numbers are crucial in the Fourier Transform because they:
- Represent sinusoidal oscillations using a single exponential term \( e^{j\omega t} \).
- Combine both amplitude and phase into a **compact form**.
- Provide a mathematically efficient and geometrically intuitive framework for signal analysis.

By leveraging complex numbers, the Fourier Transform becomes a powerful tool for understanding the frequency content of signals and reconstructing them accurately.

127 changes: 127 additions & 0 deletions explanations/euler_formula.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# **Euler's Formula and Its Importance** 🍌

Euler's formula is a fundamental relationship in mathematics that connects complex exponentials with trigonometric functions. It provides an elegant way to represent oscillations using complex numbers, which is essential for applications like the **Fourier Transform**.

---

## **Euler's Formula**

Euler's formula states:

\[
e^{j\theta} = \cos(\theta) + j\sin(\theta)
\]

Where:
- \( e \): The base of the natural logarithm (\( e \approx 2.718 \)).
- \( j \): The imaginary unit, where \( j^2 = -1 \).
- \( \theta \): An angle in radians. ⚠️
- \( \cos(\theta) \): The real part of the expression.
- \( \sin(\theta) \): The imaginary part of the expression.

This formula shows that a **complex exponential** combines both cosine and sine terms, which are the building blocks of oscillations.

---

## **Geometric Interpretation**

Euler's formula can be interpreted geometrically in the **complex plane**:
- The complex number \( e^{j\theta} \) represents a point on the unit circle (radius \( 1 \)).
- \( \theta \) is the angle between the point and the positive real axis, measured counterclockwise.

### **Key Rotations on the Complex Plane**

| Angle \( \theta \) | \( e^{j\theta} \) | Coordinates in Complex Plane |
|--------------------------|------------------|------------------------------|
| \( 0 \) | \( 1 \) | \( (1, 0) \) |
| \( \frac{\pi}{2} \) | \( j \) | \( (0, 1) \) |
| \( \pi \) | \( -1 \) | \( (-1, 0) \) |
| \( \frac{3\pi}{2} \) | \( -j \) | \( (0, -1) \) |
| \( 2\pi \) | \( 1 \) | \( (1, 0) \) |

Thus, \( e^{j\theta} \) describes a **rotation** by angle \( \theta \) around the origin in the complex plane.

---

## **Decomposing Cosine and Sine**

Euler's formula can also be used to derive expressions for cosine and sine in terms of exponentials:

1. **Cosine**:
\[
\cos(\theta) = \frac{e^{j\theta} + e^{-j\theta}}{2}
\]

2. **Sine**:
\[
\sin(\theta) = \frac{e^{j\theta} - e^{-j\theta}}{2j}
\]

These formulas are particularly useful in the **Fourier Transform**, where signals are represented as combinations of complex exponentials.

---

## **Example 1: Representing a Cosine Wave**

Suppose we have the cosine function:

\[
f(t) = \cos(2\pi t)
\]

Using Euler's formula, we can rewrite it as:

\[
\cos(2\pi t) = \frac{e^{j2\pi t} + e^{-j2\pi t}}{2}
\]

This means that a **cosine wave** can be expressed as the sum of two complex exponentials:
- \( e^{j2\pi t} \): A rotating vector in the counterclockwise direction (positive frequency).
- \( e^{-j2\pi t} \): A rotating vector in the clockwise direction (negative frequency).

---

## **Example 2: Rotating a Point on the Unit Circle**

Let \( \theta = \pi/4 \) (45 degrees). Using Euler's formula:

\[
e^{j\frac{\pi}{4}} = \cos\left(\frac{\pi}{4}\right) + j\sin\left(\frac{\pi}{4}\right)
\]

From trigonometric values:

\[
\cos\left(\frac{\pi}{4}\right) = \sin\left(\frac{\pi}{4}\right) = \frac{\sqrt{2}}{2}
\]

Thus:

\[
e^{j\frac{\pi}{4}} = \frac{\sqrt{2}}{2} + j\frac{\sqrt{2}}{2}
\]

This represents a point on the unit circle at a 45° angle in the complex plane.

---

## **Why Is Euler's Formula Important?**

1. **Compact Representation**: It unifies cosine and sine into a single exponential function.
2. **Signal Analysis**: Used in the Fourier Transform to represent signals as sums of complex exponentials.
3. **Simplified Math**: Operations like differentiation, integration, and multiplication become much easier with exponentials.
4. **Geometric Insight**: Provides a clear understanding of rotations in the complex plane.

---

## **Summary**

Euler's formula:

\[
e^{j\theta} = \cos(\theta) + j\sin(\theta)
\]

- Connects trigonometric functions and complex exponentials.
- Represents rotations in the complex plane.
- Allows us to decompose and analyze signals efficiently, particularly in **Fourier analysis**.

0 comments on commit 4926415

Please sign in to comment.