{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Spectral Analysis of Deterministic Signals\n", "\n", "*This jupyter notebook is part of a [collection of notebooks](../index.ipynb) on various topics of Digital Signal Processing. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "Signals emerging from electrical/mechanical oscillatory systems have a specific structure. They are composed of a superposition of harmonic signals with different frequencies and amplitudes. Many practical signals are composed of (superpositions of) harmonic signals. [Estimating the number of harmonic signals, their frequencies, amplitudes, and phases](https://en.wikipedia.org/wiki/Modal_analysis) is an essential task in the analysis of unknown signals. In the practical realization of spectral analysis techniques, the [discrete Fourier transform](https://en.wikipedia.org/wiki/Discrete_Fourier_transform) (DFT) is applied to discrete finite-length signals to gain insights into their spectral composition. For instance, using a [Spectrum analyzer](https://en.wikipedia.org/wiki/Spectrum_analyzer). However, analyzing harmonic signals with the DFT is subject to fundamental limitations. These limitations are discussed in the following." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Leakage Effect\n", "\n", "[Spectral leakage](https://en.wikipedia.org/wiki/Spectral_leakage) is a fundamental effect of the DFT. It limits the ability to detect harmonic signals in signal mixtures and hence the performance of spectral analysis. In order to discuss this effect, the DFT of a discrete exponential signal is revisited starting from the Fourier transform of the continuous exponential signal. The connections between the Fourier transform, the [discrete-time Fourier transform](https://en.wikipedia.org/wiki/Discrete-time_Fourier_transform) (DTFT) and the DFT for a uniformly sampled signal are illustrated below.\n", "\n", "![Connections between the different Fourier transforms](Fourier_transforms.png)\n", "\n", "Consequently, the leakage effect is discussed in the remainder of this section by considering the following four steps:\n", "\n", "1. Fourier transform of an harmonic exponential signal,\n", "2. discrete-time Fourier transform (DTFT) of a discrete harmonic exponential signal, and\n", "3. DTFT of a finite-length discrete harmonic exponential signal\n", "4. sampling of the DTFT." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fourier Transform of an Exponential Signal\n", "\n", "The harmonic exponential signal is defined as\n", "\n", "\\begin{equation}\n", "x(t) = \\mathrm{e}^{\\,\\mathrm{j}\\, \\omega_0 \\, t}\n", "\\end{equation}\n", "\n", "where $\\omega_0 = 2 \\pi f$ denotes the angular frequency of the signal. The Fourier transform of the exponential signal is\n", "\n", "\\begin{equation}\n", "X(\\mathrm{j}\\, \\omega) = \\int\\limits_{-\\infty}^{\\infty} x(t) \\,\\mathrm{e}^{\\,- \\mathrm{j}\\, \\omega \\,t} \\mathrm{d}t = 2\\pi \\; \\delta(\\omega - \\omega_0)\n", "\\end{equation}\n", "\n", "The spectrum consists of a single shifted Dirac impulse located at the angular frequency $\\omega_0$ of the exponential signal. Hence the spectrum $X(\\mathrm{j}\\, \\omega)$ consists of a clearly isolated and distinguishable event. In practice, it is not possible to compute the Fourier transform of a continuous signal by means of digital signal processing." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discrete-Time Fourier Transform of a Discrete Exponential Signal\n", "\n", "Now lets consider sampled signals. The discrete exponential signal $x[k]$ is derived from its continuous counterpart $x(t)$ above by equidistant sampling $x[k] := x(k T)$ with the sampling interval $T$\n", "\n", "\\begin{equation}\n", "x[k] = \\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega_0 \\,k}\n", "\\end{equation}\n", "\n", "where $\\Omega_0 = \\omega_0 T$ denotes the normalized angular frequency. The DTFT is the Fourier transform of a sampled signal. For the exponential signal it is given as (see e.g. [reference card discrete signals and systems](../reference_cards/RC_discrete_signals_and_systems.pdf))\n", "\n", "\\begin{equation}\n", "X(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega}) = \\sum_{k = -\\infty}^{\\infty} x[k]\\, \\mathrm{e}^{\\,-\\mathrm{j}\\, \\Omega \\,k} = 2\\pi \\sum_{n = -\\infty}^{\\infty} \\delta((\\Omega-\\Omega_0) - 2\\,\\pi\\,n)\n", "\\end{equation}\n", "\n", "The spectrum of the DTFT is $2\\pi$-periodic due to sampling. As a consequence, the transform of the discrete exponential signal consists of a series Dirac impulses. For the region of interest $-\\pi < \\Omega \\leq \\pi$ the spectrum consists of a clearly isolated and distinguishable event, as for the continuous case.\n", "\n", "The DTFT cannot be realized in practice, since is requires the knowledge of the signal $x[k]$ for all time instants $k$. In general, a measured signal is only known within a finite time-interval. The DFT of a signal of finite length can be derived from the DTFT in two steps:\n", "\n", "1. truncation (windowing) of the signal and\n", "2. sampling of the DTFT spectrum of the windowed signal.\n", "\n", "The consequences of these two steps are investigated in the following." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discrete-Time Fourier Transform of a Truncated Discrete Exponential Signal\n", "\n", "In general, truncation of a signal $x[k]$ to a length of $N$ samples is modeled by multiplying the signal with a window function $w[k]$ of length $N$\n", "\n", "\\begin{equation}\n", "x_N[k] = x[k] \\cdot w[k]\n", "\\end{equation}\n", "\n", "where $x_N[k]$ denotes the truncated signal and $w[k] = 0$ for $\\{k: k < 0 \\wedge k \\geq N \\}$. The spectrum $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})$ can be derived from the multiplication theorem of the DTFT as\n", "\n", "\\begin{equation}\n", "X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega}) = \\frac{1}{2 \\pi} X(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega}) \\circledast_{2 \\pi} W(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})\n", "\\end{equation}\n", "\n", "where $\\circledast_{2 \\pi}$ denotes a cyclic/[circular convolution](https://en.wikipedia.org/wiki/Circular_convolution) of period $2 \\pi$. A hard truncation of the signal to $N$ samples is modeled by the rectangular signal \n", "\n", "\\begin{equation}\n", "w[k] = \\text{rect}_N[k] = \\begin{cases}\n", "1 & \\mathrm{for} \\; 0\\leq k" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "Om0 = 1 # frequency of exponential signal\n", "N = 32 # length of signal\n", "\n", "\n", "# DTFT of finite length exponential signal (analytic)\n", "Om = np.linspace(-np.pi, np.pi, num=1024)\n", "XN = (\n", " np.exp(-1j * (Om - Om0) * (N - 1) / 2)\n", " * (np.sin(N * (Om - Om0) / 2))\n", " / (np.sin((Om - Om0) / 2))\n", ")\n", "\n", "# plot spectrum\n", "plt.figure(figsize=(10, 8))\n", "plt.plot(Om, abs(XN))\n", "plt.title(\n", " r\"Absolute value of the DTFT of a truncated exponential signal \"\n", " + r\"$e^{{j \\Omega_0 k}}$ with $\\Omega_0=${0:1.2f}\".format(Om0)\n", ")\n", "plt.xlabel(r\"$\\Omega$\")\n", "plt.ylabel(r\"$|X_N(e^{j \\Omega})|$\")\n", "plt.axis([-np.pi, np.pi, -0.5, N + 5])\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the frequency `Om0` of the signal and rerun the example. How does the magnitude spectrum change?\n", "* Change the length `N` of the signal and rerun the example. How does the magnitude spectrum change?\n", "\n", "Solution: The maximum of the absolute value of the spectrum is located at the frequency $\\Omega_0$. It should become clear that truncation of the exponential signal leads to a broadening of the spectrum. The shorter the signal, the wider the mainlobe becomes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Leakage Effect of the Discrete Fourier Transform\n", "\n", "The DFT is derived from the DTFT $X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})$ of the truncated signal $x_N[k]$ by sampling the DTFT equidistantly at $\\Omega = \\mu \\frac{2 \\pi}{N}$\n", "\n", "\\begin{equation}\n", "X[\\mu] = X_N(\\mathrm{e}^{\\,\\mathrm{j}\\, \\Omega})\\big\\vert_{\\Omega = \\mu \\frac{2 \\pi}{N}}\n", "\\end{equation}\n", "\n", "For the DFT of the exponential signal we finally get\n", "\n", "\\begin{equation}\n", "X[\\mu] = \\mathrm{e}^{\\,- \\mathrm{j}\\, (\\mu \\frac{2 \\pi}{N} - \\Omega_0) \\frac{N-1}{2}} \\cdot \\frac{\\sin(\\frac{N \\,(\\mu \\frac{2 \\pi}{N} - \\Omega_0)}{2})}{\\sin(\\frac{\\mu \\frac{2 \\pi}{N} - \\Omega_0)}{2})}\n", "\\end{equation}\n", "\n", "The sampling of the DTFT is illustrated in the following example. Note that the normalized angular frequency $\\Omega_0$ has been expressed in terms of the periodicity $P$ of the exponential signal $\\Omega_0 = P \\; \\frac{2\\pi}{N}$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzYAAALyCAYAAAAIQUFXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADQCElEQVR4nOzdd3xT9f7H8XfapummrA42CIgVcCGOqyIqiltx3Ose1zvVe71evY579YIDnNdxvXrv/elFvThwXxcgegX0AgoIyHCgDBkts9CdJs35/ZGetGmTNOOkTdrX8/HgoUlOTr7JyUnzyefz/XxthmEYAgAAAIAkltLRAwAAAACAWBHYAAAAAEh6BDYAAAAAkh6BDQAAAICkR2ADAAAAIOkR2AAAAABIegQ2AAAAAJIegQ0AAACApEdgAwAAACDpEdgAAAAASHoENgAAAACSHoENAABAJ+PxeNS/f3+VlZX5rnv00Uc1dOhQZWZmatiwYXrsscfa3I9hGMrNzdXOnTvjOVzAEmkdPQAAAABYKyUlRZs3b/Zd/tOf/qR3331Xr732mkaNGqWVK1fqiiuu0K5du3T33XcH3c+6devUvXt39e7duz2GDcSEjA0AAEAn889//lOXXHKJJGnnzp165JFH9Oqrr+rggw9WamqqDj30UM2cOVMPP/xwyGzMF198oTFjxvj2c9xxx+n222+XYRjt8jyASBDYhOnxxx+XzWbTyJEjA94+efJk2Ww27dq1q93G9Oyzz8pms2njxo1R3X/hwoWaPHmy9u7da+m4rBbr82wvM2fO1IEHHqjMzEzZbDatWLEi4HbBXvf2eg+Zr6f5LyMjQ0VFRRo/frymTZumHTt2+G3ffNtQ/+bNm9dq383/3XTTTRHvz9TQ0KCCggI98sgjUT2HQPdpObZoxhWLcN8vsUqW8zxS8Xpe5nmI2IQ6PrF8plv19yDR/q7EYzxr1qzRgQceKElatGiRBg8erGHDhvltU1JSon79+mnRokWSpD/84Q869thjddVVV6mhoUGStHz5co0ZM0YrV67Uscceq5///OeaOnWq5edJoNcg3n8vP/jgA51xxhnq3bu3HA6HBgwYoKuvvlrffPNNTPu1yn//+19dffXVGjFihLKzs9W3b1+dffbZWrZsWVj3r6qq0g033KA+ffooIyNDBx98sF5++eVW261YsUKnn366BgwYoMzMTPXo0UNHHXWUZsyYYfVTijtK0cL0r3/9S5L3g+Kzzz7TEUcc0cEjit3ChQs1ZcoUXXnllcrPz+/o4SS1nTt36rLLLtPEiRP15JNPyuFwaPjw4QG3TZTXffr06RoxYoRcLpd27NihTz/9VPfff78eeughzZw5UyeddJIk+f7gme6++259/PHH+u9//+t3fUlJie8Pkrnv5vr06RPx/kwLFizQzp07NWnSpKieQ6D7tBzb+eefH/G4ohXJ+yVWifJ+s1pnfV6dRajjc/rpp2vRokUqLi7umMElyBjibc2aNTrhhBMkSdXV1crLywu4XX5+vmpqarRy5Urt2LFDn3zyiaZMmaL33ntPZ511lpYvX64hQ4Zo0qRJmjFjho466qi4jDfQMYnneX777bdr2rRpuuiii/TPf/5TPXr00DfffKNHH31UBx98sF544YVWf3Pa21NPPaXdu3frt7/9rUpKSrRz5049/PDDOvLIIzVnzhzf8Q1m0qRJWrJkie677z4NHz5cL774oi666CJ5PB5dfPHFvu327t2r/v3766KLLlLfvn1VXV2tF154QZdddpk2btyoP/3pT/F+qpYhsAnD0qVLtXLlSp1++ul677339Mwzz3SKwAbW+fbbb+VyuXTppZdq3LhxHT2csIwcOdJXXiBJ5513nn73u9/pmGOO0aRJk7Ru3ToVFhbqyCOP9Ltf7969lZKS0ur6UPtuLpr9vfbaaxozZowGDhwY1XMIZ2wDBgyIeFzRStT3S01NjbKysjp6GOjkevfu3eHzNRJhDPG2Zs0aX5XJ4MGD9e2338rtdistremrX319vdatW6chQ4Zo4cKFOvnkkyVJp5xyit566y1fYLNixQo99NBDcQtqpPY9JjNmzNC0adP0+OOP6/rrr/ddP27cOF166aU6+eSTdckll2jFihXaf//922VMgfztb39TQUGB33UTJ07U0KFDNXXq1JCBzfvvv6+5c+f6ghlJGj9+vDZt2qSbb75ZP/7xj5WamipJOv7443X88cf73f+MM87Qhg0b9M9//jOpAhtK0cLwzDPPSJLuu+8+HX300Xr55ZdVU1MTcNvNmzdr0qRJysvLU7du3XTppZf61a7u3LlTP//5z9W/f385HA717t1bP/rRj/Thhx/67efTTz/ViSeeqNzcXGVlZenoo4/We++91+ZYr7zySg0aNKjV9S3LKyZPnqybb75ZkvcDr2WZzbp163TxxReroKBADodDBxxwgP72t7+1+fhvvfWWbDabPvroo1a3PfXUU7LZbPryyy8lSd99952uuuoqDRs2TFlZWerbt6/OPPNMrVq1ypLnaIr2uUjhHYcrr7xSxxxzjCTpxz/+sWw2W6sPiOZjDPW6S9L27dt10UUXqVu3biosLNTVV1+tffv2Wfq8ghkwYIAefvhhVVZW6h//+EdM+7KKYRh68803dd5554W1fUc/h7beM5G8X6TozxMp9PvNPF+++OILnX/++erevbv2228/3xjDPcfM69asWdPm+/brr7/WRRddpMLCQl/Zx+WXXy6n0xnRc7Xq8+u9997TwQcfLIfDocGDB+uhhx5q8zVtrq3Hqaur0yGHHKKhQ4f6vRZlZWUqKirS8ccf7yv3MV/H5cuXh/wbYgrnsymSYxPu6xbOPts6PoFKjmJ5nwfS1t/aYKVf//nPfzR69Gg5HA4NGTJEjz32WEzve6ufl+nTTz/VySefrG7duql79+46/fTTtW7dOt/te/bs0b59+zR48GBJ0tixY9WrVy+98MILfvt5/vnnVVhYqDFjxqi8vNyX1cnPz9eePXu0efNmpaen680339Stt96qTZs2tTm2NWvWyGaz6dVXX/Vdt2zZMtlsNl9pnOmss87SYYcdJqn1MbHy72VLU6ZM0dixY/2CGlNWVpb++c9/qq6uTg888ECb+4qnlkGNJOXk5KikpMSvMUQgb775pnJycnTBBRf4XX/VVVdp27Zt+uyzz9p8/F69evkFwsmAwKYNtbW1eumll3T44Ydr5MiRuvrqq1VZWel3wjZ37rnnaujQoXrttdc0efJkvfXWWzrllFPkcrkkSZdddpneeust3Xnnnfrggw/09NNP66STTtLu3bt9+5g/f75OOOEE7du3T88884xeeukl5ebm6swzz9TMmTMteV7XXHON74R+4403tGjRIi1atEiHHnqo1q5dq8MPP1yrV6/Www8/rHfffVenn366fvOb32jKlCkh93vGGWeooKBA06dPb3Xbs88+q0MPPVSjR4+WJG3btk09e/bUfffdp9mzZ+tvf/ub0tLSdMQRR1hW3xrLcwn3ONxxxx2+P/5Tp07VokWL9OSTTwbcZ6jX3XTeeedp+PDhev3113XrrbfqxRdf1O9+9zvLnldbTjvtNKWmpmrBggVR76OhoUFut9vvX7QWLlyo0tLSsAMbKfRzsHJsLYXznonk/SLFdp6E836bNGmShg4dqldffVV///vfo37ubb1vV65cqcMPP1yLFy/WXXfdpVmzZmnatGlyOp2qr6+P6Lla8fn10Ucf6eyzz1Zubq5efvllPfjgg3rllVcCfnYFEs7jZGRk6JVXXtGOHTt09dVXS/K24L3kkktkGIZeeukl3y+mprb+hkiR/42Ix2dKqH2G875ryeq/B+H8rW1p9uzZmjRpknr27KmZM2fqgQce0EsvvaTnnnsu6H3aem3j8Xdu8uTJGjdunPr376+XXnpJTz/9tDZv3qwTTzxRVVVVkrzBxQEHHKCUFO/XvJSUFE2fPl1/+MMf9PHHH0vyzt+4/fbbNX36dKWkpCg/P18VFRWSpH379ql79+5avny5Ro0apR/96Ee64447dO6556q2tjbk+A488EAVFxf7/WD74YcfKjMzU2vXrtW2bdskSW63W/Pnzw9YMixZ9/eypU2bNum7777TmWeeGXSbkpISDRkypNWPzuEyDKPV35lg/yK1b98+ffHFF62CxJZWr16tAw44oFVgYn4HW716dav7eDweud1u7dy5U08++aTmzJmjW265JeIxdigDIT3//POGJOPvf/+7YRiGUVlZaeTk5BjHHnus33Z//vOfDUnG7373O7/rX3jhBUOSMWPGDMMwDCMnJ8e44YYbQj7mkUceaRQUFBiVlZW+69xutzFy5EijX79+hsfjMQzDMKZPn25IMjZs2ODb7oorrjAGDhzYap/m+Jp78MEHW93fMAzjlFNOMfr162fs27fP7/rrrrvOyMjIMPbs2RNy/DfeeKORmZlp7N2713fd2rVrDUnGX//616D3c7vdRn19vTFs2DC/17Hl84zkOcbyXMI9DoZhGB9//LEhyXj11VeD7s8U7HU3x//AAw/4Xf/rX//ayMjI8Hu8WJ6X+XouWbIk6DaFhYXGAQccEPC2K664wsjOzg6570D/XC5XxPszDMO44YYbjFGjRsX8HCIdW1vjCiTc90wk75eWgp0nwbT1frvzzjtb3SeScyzc9+0JJ5xg5OfnGzt27GhzzKZQzzXWz68jjjjC6NOnj1FbW+vbpqKiwujRo0er5xhIJOfgzJkzDUnGo48+atx5551GSkqK8cEHH/jdL9y/IYYR/vssHp8p4e4z2PExjMB/u1oK9+9BMG39rQ20n8MPP9zo37+/4XQ6fddVVlYaPXv2jPp9b/XzeueddwI+7rfffuv3PnnqqaeMyy+/3Hf7vffea2RnZxupqanGoEGDDMMwjEGDBhmpqalGdna2ce+99xrLly83rrrqKsMwDGPKlCnGm2++aUyePNm4+eabffu5+uqrjYsvvjjkGA3DMC699FJjyJAhvssnnXSS8bOf/czo3r278dxzzxmGYRj/+9//DEm+cyHQa2DF38uWFi5caEgy/vnPf4Z8DkcddZSRnp7e5nMNxPyMD+dfW8e8pUsuucRIS0szli5dGnK7YcOGGaecckqr67dt22ZIMqZOndrqtl/84he+caWnpxtPPvlkRGNLBGRs2vDMM88oMzNTP/nJTyTJl9b75JNP/NK+JrO1ounCCy9UWlqa7xeSsWPH6tlnn9U999yjxYsX+/0KJ3kn+H322Wc6//zzlZOT47s+NTVVl112mbZs2RLXbh11dXX66KOPdO655yorK8vvV4XTTjtNdXV1Wrx4cch9XH311aqtrfX75XD69OlyOBx+k9XcbremTp2qkpISpaenKy0tTenp6Vq3bp2++uqrDn0uHXkczjrrLL/Lo0ePVl1dna/TlxXHqC1GjG08n3/+eS1ZssTvX7Tp7DfeeCOibI0p2HOwcmzNxes9E+/zJJrXNpBQ79uamhrNnz9fF154Ycga+lifa7jnRnV1tZYsWaJJkyYpIyPDd38z62HV45guvPBC/epXv9LNN9+se+65R7fffrsmTJgQcN9t/Q2J5n0Wj8+UtvYZKavf5239rW2purpaS5cu1TnnnKP09HTf9Tk5OSHfE229DlY/rzvvvFP77beffvvb3/odp8GDByszM1Pr16+XJH355Zc66KCDfPe7/fbbVVVVJbfbrQ0bNkiSNmzYILfbraqqKt1+++06+OCD1aNHDx177LH6/vvvdcYZZ+jPf/6zXznWM88806qcLZATTzxR69ev14YNG1RXV6dPP/1UEydO1Pjx4zV37lxJ3iyOw+HwleZGI5r3oXnelJaWhtx3WVmZunXr5ru8c+dOnX766crOztbw4cN9zyOQww47rNXfmWD/zMY64bjjjjv0wgsv6JFHHvGV8IUSqnNdoNtuv/12LVmyRO+9956uvvpqXXfddRGX6Ha05Cqca2ffffedFixYoPPOO0+GYfjaDZ5//vmaPn26/vWvf2natGl+9ykqKvK7nJaWpp49e/rS3zNnztQ999yjp59+WnfccYdycnJ07rnn6oEHHlBRUZHKy8tlGEbATi3mmz9UKj1Wu3fvltvt1l//+lf99a9/DbhNW+0VDzzwQB1++OGaPn26fv7zn6uhoUEzZszQ2WefrR49evi2u/HGG/W3v/1Nt9xyi8aNG6fu3bsrJSVF11xzTZup7ng/l448Dj179vS77HA4JMn3mlhxjEKprq7W7t27NWrUqKj3ccABBwRtHhCJzz//XD/88EPEX75DPQerxtZSvN4z8T5PrOoKFep963a71dDQoH79+oXcR6zPNdxzo7y8XB6Pp9XntdT6MzyWx2nu6quv1lNPPaX09HT95je/Cbrvtv6GRPM+i8dnSlv7jJTV7/O2/ta2ZL6uLZuNSAp4namt18HK51VWVqbly5f7PU5L+fn5qqqq0qxZs4KWzIdi1ZdYs7zsww8/1ODBg+VyuXTCCSdo+/btvsVAP/zwQ/3oRz9SZmZm1I8Tzftw6NChys7O1qeffhp0m61bt+qHH37QiSee6Lvu2muvVVFRkXbu3KkPP/xQF154ob777rtWY5C8wdPBBx8c1nMI94e1KVOm6J577tG9996r6667rs3tm39uNLdnzx5J8vs+ZhowYICvkc5pp50mSbrtttt0xRVXJE2zDQKbEP71r3/JMAy99tpreu2111rd/txzz+mee+7xq5EuKytT3759fZfdbrd2797te+P36tVLjz76qB599FH98MMPevvtt3Xrrbdqx44dmj17tu9DL9AvCWZdaq9evYKOOSMjwzcRt7lwv+h2797d98vftddeG3AbczJiKFdddZV+/etf66uvvtL69etVWlqqq666ym+bGTNm6PLLL9fUqVNbjTVUW8dwn2MszyXW4xBPVh2jYN577z01NDSEnNDeXl5//XUNHz486PpRwXTEc4jXeyba8yRcgX61i/VzpKUePXooNTVVW7ZsCbldrM813HMjIyNDNptNZWVlrW4PdF20j2Oqrq7WZZddpuHDh2v79u265ppr9J///Cfg/dr6GxKP91m8P1PCYfX7vK2/tS11795dNptN27dvb3VbOO+JYKx8XuZk8UceeSRolqOhoUHDhw/XT3/607j8gBOufv36afjw4frwww81aNAgjRkzRvn5+TrxxBP161//Wp999pkWL14c85zQaGRmZuqiiy7SM888oxUrVgQMQJ544gk1NDTommuukeRdD+att97S999/r6ysLJ111lk66KCD9J///Mc3f665+fPna/z48WGNZ8OGDQGbtTQ3ZcoUTZ48WZMnT9btt98e1n5HjRqll156qVUnPLNxRTh/V8eOHau///3vWr9+PYFNsmtoaNBzzz2n/fbbT08//XSr29999109/PDDmjVrls444wzf9S+88IJfevCVV16R2+0O+AVrwIABuu666/TRRx/pf//7nyQpOztbRxxxhN544w099NBDvl8yPB6PZsyY4fuwCGbQoEHasWOHtm/f7vuVqb6+XnPmzGm1baBfNrKysjR+/HgtX75co0eP9kvJR+Kiiy7SjTfeqGeffVbr169X3759fW0kTTabrdWvTu+99562bt2qoUOHxvwcY3kusR6HUGL9ZdOqYxTIDz/8oJtuukndunXTL37xC8v2G63XX39dF154YUT36ajnEK/3TLTniSma91sknyPhyMzM1Lhx4/Tqq6/q3nvvDfrFO5LnGuvn19ixY/XGG2/owQcf9JWjVVZW6p133mnz+UR6Dv7yl7/UDz/8oM8//1xff/21zj//fD3yyCMBJzm39TckHu+zeHymRPq+i/V9Hkqgv7UtZWdna8yYMXrrrbf00EMP+V6Dqqoqvfvuu1E/tpXPy/yF3WazhQxazAC3o5100kl65ZVX1L9/f51++umSpOHDh2vAgAG688475XK5gjYOMMX69zKYadOm6d1339WFF16oxYsX+2Uv5s2bpwcffFBnnXWWr6PYunXrlJOTo/79+/u2GzVqlNasWRNw/2YpWjjaKkW7++67NXnyZP3pT3/Sn//857D2KXkbkfzf//2fXn/9df34xz/2Xf/cc8+pT58+YS1b8vHHHyslJUVDhgwJ+3E7GoFNELNmzdK2bdt0//33BwxKRo4cqSeeeELPPPOMX2DzxhtvKC0tTRMmTNCaNWt0xx136KCDDtKFF16offv2afz48br44os1YsQI5ebmasmSJb5OLKZp06ZpwoQJGj9+vG666Salp6frySef1OrVq/XSSy+FrJn88Y9/rDvvvFM/+clPdPPNN6uurk6PP/64r6Voc2aZzmOPPaYrrrhCdrtd+++/vx577DEdc8wxOvbYY/WrX/1KgwYNUmVlpb777ju98847rRYsDCQ/P1/nnnuunn32We3du1c33XSTrzuL6YwzztCzzz6rESNGaPTo0Vq2bJkefPDBNstVInmOsTyXWI5DKMFe90hYcYxWr17tq882F2WbPn26UlNT9eabb3b4rzMrVqzQ999/H7IMLdGeQzzeM9GeJ6Zo3m+RnGPh+stf/qJjjjlGRxxxhG699VYNHTpU27dv19tvv61//OMfys3Njei5xvr5dffdd2vixImaMGGCfv/736uhoUH333+/srOzfaUaoYT7OE8//bRmzJih6dOn68ADD9SBBx6o6667Trfccot+9KMfaezYsX77DfU3xBSP95kVnynNBTs+ubm5AbeP9X3eXLh/a1u66667dPrpp+uUU07Rb3/7WzU0NOjBBx9UTk5OWO+JeD+v/fbbT+PHj9ef/vQnVVVV6YgjjpBhGCotLdXHH3+sK664IiEy7aYTTzxRTz75pHbt2qVHH33U7/rp06ere/fubc4TseLvZUs7d+7U999/r7vvvlu//OUvdeihh+r111/XYYcdpueee06//OUvNXDgQP3ud7/T4sWLdcghh6iqqqrVAqd5eXlBs9i5ubmWZMwefvhh3XnnnZo4caJOP/30VnPdzHXW5s+frxNPPFF33nmn7rzzTknSqaeeqgkTJuhXv/qVKioqNHToUL300kuaPXu2ZsyY4Vdt9POf/1x5eXkaO3asCgsLtWvXLr366quaOXOmbr755g7/PhCRjupakOjOOeccIz09PWQHn5/85CdGWlqaUVZW5uvQsWzZMuPMM880cnJyjNzcXOOiiy4ytm/fbhiGYdTV1Rm//OUvjdGjRxt5eXlGZmamsf/++xt//vOfjerqar99f/LJJ8YJJ5xgZGdnG5mZmcaRRx5pvPPOO37bBOui8v777xsHH3ywkZmZaQwZMsR44oknAnYzMgzDuO2224w+ffoYKSkphiTj448/NgzDMDZs2GBcffXVRt++fQ273W707t3bOProo4177rkn7Nfwgw8+8HXX+Pbbb1vdXl5ebvz0pz81CgoKjKysLOOYY44xPvnkE2PcuHHGuHHjQj7PSJ5jLM8lnONgGJF3uQr0upvj37lzp9+2wY5ztM+rZXew9PR0o6CgwBg3bpwxderUNrtWhdMVLVS3snD396c//SlgZ65on0Ok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VzQAAAB0CbWuBpXcOadDHnvtXacoKz32r96XXHKJbrjhBhmGoZdeekmpqalh33fjxo3q06dPq+t/+ctf6le/+pWmTJniu+6mm27SzTffLMkb2JjNAu677z6tXLlSr776qk499VRdeuml2rt3r3784x/rk08+8d2/b9++cjqdKisr08CBA6N9uhEhYwMAAAAkieuuu06StGvXroBBzcMPP6yUlBTt3LlTklRfX6/CwkJJ3jk2GRkZfttv2rRJH330kR588EHl5OT4/l1++eW+eTOffPKJDj/8cEnSrbfeqm+++UaGYaikpERffPGFduzY4RfUSFJmZqYkqaamxsJnHxoZGwAAAHQJmfZUrb3rlA577Fjdcccdeu+997R48WKddNJJeuaZZ3Tttdf6bbN69WqNHj1ac+bM0aWXXurrZiZJvXr18jUeMK1cuVI9evTQZ5995ne9x+NRXV2dxowZo4kTJ6q4uDiise7Zs0eS1Lt370ifZtQIbAAAANAl2Gw2S8rBOsLTTz+thx9+WP/973910EEH6YYbbtADDzygn//857Lb7b7tVq9erd///veaNWuWLr30Ur+J/4cccohmzJjht1+73a7KykoVFxcrOzvbd73H41FFRYWWLl2qlJTIi7xWr16tfv36qVevXlE+48hRigYAAAAksFmzZunaa6/VjBkzdOSRR0qSrr/+elVUVOjf//63bzvDMLRx40b95Cc/0dKlS+XxeLR69WrfxP9TTjlFa9as8cvaHHHEEcrLy9Nll12mFStW6LvvvtPs2bN1ww03xDTmTz75RCeffHJM+4gUgQ0AAACQoJYtW6YLLrhADzzwgCZNmuS7Pi8vT9dff73uu+8+NTQ0SJLWr1+v/v37y26365BDDtGSJUu0atUqX8Zm1KhRGjNmjF555RXffnr06KH3339f5eXlGjdunA499FDdfvvtES/g2VxdXZ3efPNN/exnP4t6H9FIzlwcAAAA0AUcdthhqqqqCnjbXXfdpbvuust3uXnZ2cSJEzVr1iytWbPGd53knadz00036Wc/+5mvxGzs2LH6+OOP/fZtlqJF45lnntERRxzhyy61l4gyNk899ZRGjx6tvLw85eXl6aijjtKsWbN8t1955ZWy2Wx+/9r7CQEAAABdUcvA5rXXXpNhGOrWrZtvm9NOO02/+MUvtHXr1riNw263669//Wvc9h9MRBmbfv366b777tPQoUMlSc8995zOPvtsLV++XAceeKAk74s4ffp0333S09MtHC4AAACAQNasWaNLL71UklRUVKS0tDSVlJS02u63v/1tXMfx85//PK77DyaiwObMM8/0u3zvvffqqaee0uLFi32BjcPhUFFRkXUjBAAAALqYQYMGRTyB/8UXX/S7vGLFCusGFKNonk+kom4e0NDQoJdfflnV1dU66qijfNfPmzdPBQUFGj58uH72s59px44dlgwUAAAA6CraIxBoT+3xfCJuHrBq1SodddRRqqurU05Ojt58801fiuvUU0/VBRdcoIEDB2rDhg264447dMIJJ2jZsmVyOBwB9+d0OuV0On2XKysrJUkul0sulyua54QkYh5jjnXnx7HuWjjeXQfHuutItmPtcrlkGIY8Ho88Hk9HDyfpGIbh+297vH4ej0eGYcjlcik1tWkxU7fbHfY+bIY56jDV19frhx9+0N69e/X666/r6aef1vz58wPW75WWlmrgwIF6+eWX/drTNTd58mRNmTKl1fVPP/10uy7oAwAAgM4jLS1NRUVF6t+/P3O+k0B9fb02b96ssrIyv2Bm165duuaaa7R582b169cv5D4iDmxaOumkk7TffvvpH//4R8Dbhw0bpmuuuUa33HJLwNtbZmy2bt2qkpISffvttzH1z0ZycLlcmjt3riZMmOC3ai46H45118Lx7jo41l1Hsh3ruro6bd68WYMGDVJGRkZHDyfpGIahyspK5ebmymazxf3x6urqtHHjRvXv39/veG3dulWDBw8OK7CJeR0bwzD8ApPmdu/erc2bN6u4uDjo/R0Oh1+Zmtkv2263J8VJA2twvLsOjnXXwvHuOjjWXUeyHOuGhgbZbDalpKT41mtB+MzyM/M1jLeUlBTZbLZW76+0tPDDlYgCm9tvv12nnnqq+vfvr8rKSr388suaN2+eZs+eraqqKk2ePFnnnXeeiouLtXHjRt1+++3q1auXzj333EgeBgAAAAAiElFgs337dl122WUqLS1Vt27dNHr0aM2ePVsTJkxQbW2tVq1apeeff1579+5VcXGxxo8fr5kzZyo3Nzde4wcAAACAyAKbZ555JuhtmZmZmjNnTswDAgAAAIBIUXAIAAAAIOkR2AAAAABIejF3RQMAAAA6NU+DtGmhVLVdyimUBh4tpaS2fT+0KzI2AAAAQDBr35YeHSk9d4b0+k+9/310pPf6OJo3b57lazoef/zxstlsstlsWrFiRUT3vfLKK333feutt+I2xlgQ2AAAAACBrH1beuVyqWKb//UVpd7r4xzcNOfxeDRixIhWi97PmTNH6enpevXVV8Paz89+9jOVlpZq5MiRET3+Y489ptLS0oju094IbAAAAICWPA3S7FskGQFubLxu9q3e7dpBSkqKbrvtNj311FMqLy+XJK1cuVIXXHCBpk6dqgsuuCCs/WRlZamoqCiihS8lqVu3bioqKop43O2JwAYAAABoadPC1pkaP4ZUsdW7XTu55JJL1KtXLz3++OPasmWLTj/9dF122WW66aabYtrvp59+KrvdLqfT6btuw4YN6t69uzZt2hTrsNsNgQ0AAADQUtV2a7ezQFpamm655RY9/vjjOu2003TooYfq8ccfj3m/K1as0AEHHCCHw+F3Xbdu3TRw4MCY999eCGwAAACAlnIKrd3OIpdccolqampkGIZeeuklpab6d2d7+OGHlZKSop07d0qS6uvrVVgYeowrV67UIYcc0uq6SOfhdDQCGwAAAKClgUdLeX0k2YJsYJPy+nq3a0fXXXedJGnXrl2tghpJWr16tUaPHq05c+ZIkr766isdcMABIfe5YsUKHXzwwX7XLV++nMAGAAAASHopqdLE+xsvtAxuGi9PvK9d17O544479N5772nx4sVyu9165plnWm2zevVq/f73v9esWbN8l0MFKA0NDVqzZk2rjM3y5cs1atQoa59AnBHYAAAAAIGUnCVd+LyU26IbWF4f7/UlZ7XbUJ5++mk9/PDDeuedd3TQQQfphhtu0AMPPCCXy+XbxjAMbdy4UT/5yU+0dOlSeTwerV69OmSA8s0336i2tlZ9+vTxXbdo0SJt3bqVjA0AAADQaZScJV37edPlS16TbljVrkHNrFmzdO2112rGjBk68sgjJUnXX3+9Kioq9O9//9u33fr169W/f3/Z7XYdcsghWrJkiVatWhUyQDEX6vzrX/+qdevWadasWbr88sslya9LWjIgsAEAAABCaV5uNvDodi0/W7ZsmS644AI98MADmjRpku/6vLw8XX/99brvvvvU0OBdS6d52dnEiRM1a9YsrVmzps3AZsKECdqwYYNGjhyp22+/Xffdd5/y8vL09NNPx/fJWSyylXkAAACA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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 32 # length of the signal\n", "P = 10.33 # periodicity of the exponential signal\n", "Om0 = P * (2 * np.pi / N) # frequency of exponential signal\n", "\n", "\n", "# truncated exponential signal\n", "k = np.arange(N)\n", "x = np.exp(1j * Om0 * k)\n", "\n", "# DTFT of finite length exponential signal (analytic)\n", "Om = np.linspace(0, 2 * np.pi, num=1024)\n", "Xw = (\n", " np.exp(-1j * (Om - Om0) * (N - 1) / 2)\n", " * (np.sin(N * (Om - Om0) / 2))\n", " / (np.sin((Om - Om0) / 2))\n", ")\n", "\n", "# DFT of the exponential signal by FFT\n", "X = np.fft.fft(x)\n", "mu = np.arange(N) * 2 * np.pi / N\n", "\n", "# plot spectra\n", "plt.figure(figsize=(10, 8))\n", "ax1 = plt.gca()\n", "\n", "plt.plot(Om, abs(Xw), label=r\"$|X_N(e^{j \\Omega})|$\")\n", "plt.stem(mu, abs(X), label=r\"$|X_N[\\mu]|$\", basefmt=\" \", linefmt=\"C1\", markerfmt=\"C1o\")\n", "plt.ylim([-0.5, N + 5])\n", "plt.title(\n", " r\"Absolute value of the DTFT/DFT of a truncated exponential signal \"\n", " + r\"$e^{{j \\Omega_0 k}}$ with $\\Omega_0=${0:1.2f}\".format(Om0),\n", " y=1.08,\n", ")\n", "plt.legend()\n", "\n", "ax1.set_xlabel(r\"$\\Omega$\")\n", "ax1.set_xlim([Om[0], Om[-1]])\n", "ax1.grid()\n", "\n", "ax2 = ax1.twiny()\n", "ax2.set_xlim([0, N])\n", "ax2.set_xlabel(r\"$\\mu$\", color=\"C1\")\n", "ax2.tick_params(\"x\", colors=\"C1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the periodicity `P` of the exponential signal and rerun the example. What happens if the periodicity is an integer? Why?\n", "* Change the length `N` of the DFT? How does the spectrum change?\n", "* What conclusions can be drawn for the analysis of a single exponential signal by the DFT?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solution: You should have noticed that for an exponential signal whose periodicity is an integer $P \\in \\mathbb{N}$, the DFT consists of a discrete Dirac pulse $X[\\mu] = N \\cdot \\delta[\\mu - P]$. In this case, the sampling points coincide with the maximum of the main lobe or the zeros of the DTFT. For non-integer $P$, hence non-periodic exponential signals with respect to the signal length $N$, the DFT has additional contributions. The shorter the length $N$, the wider these contributions are spread in the spectrum. This smearing effect is known as *leakage effect* of the DFT. It can be concluded from inspection of the maximumum value of above DFT, that estimating the unknown frequency and amplitude of an exponential signal from its DFT may lead to inaccuracies." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysis of Signal Mixtures by the Discrete Fourier Transform\n", "\n", "The limitations imposed by the leakage effect have also implications for the analysis of signal mixtures. In order to discuss these implications when analyzing signal mixtures, the superposition of two exponential signals with different amplitudes and frequencies is considered\n", "\n", "\\begin{equation}\n", "x_N[k] = A_1 \\cdot e^{\\mathrm{j} \\Omega_1 k} + A_2 \\cdot e^{\\mathrm{j} \\Omega_2 k}\n", "\\end{equation}\n", "\n", "where $A_1, A_2 \\in \\mathbb{R}$. The effects are discussed using numerical simulations. For convenience, a function is defined that calculates and plots the magnitude spectrum of $x_N[k]$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def dft_signal_mixture(N, *, amp1, period1, amp2, period2):\n", " \"\"\"Calculates and plots the magnitude spectrum of two superimposed exponentials.\n", "\n", " Keyword arguments:\n", " N: length of signal/DFT\n", " amp1, period1 : amplitude and periodicity of 1st complex exponential\n", " amp2, period2 : amplitude and periodicity of 2nd complex exponential\n", " \"\"\"\n", "\n", " # generate the signal mixture\n", " Om0_1 = period1 * (2 * np.pi / N) # frequency of 1st exponential signal\n", " Om0_2 = period2 * (2 * np.pi / N) # frequency of 2nd exponential signal\n", " k = np.arange(N)\n", " x = amp1 * np.exp(1j * Om0_1 * k) + amp2 * np.exp(1j * Om0_2 * k)\n", "\n", " # DFT of the signal mixture\n", " mu = np.arange(N)\n", " X = np.fft.fft(x)\n", "\n", " # plot spectrum\n", " plt.figure(figsize=(10, 8))\n", " plt.stem(mu, abs(X), basefmt=\" \")\n", " plt.title(r\"Absolute value of the DFT of a signal mixture\")\n", " plt.xlabel(r\"$\\mu$\")\n", " plt.ylabel(r\"$|X[\\mu]|$\")\n", " plt.axis([0, N, -0.5, N + 5])\n", " plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets first consider the case that the frequencies of the two exponentials are rather far apart in terms of normalized angular frequency" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAK8CAYAAADYje8nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTIUlEQVR4nO3de1hVdd738c9WYQMKKCqySUQmtTSUMg+hlYfCpPLJtJnK0TA7W83jeHU3ZeMAM6kdpm6bbJy7MU/jeOt00GwqlMZTjZqHsjz0eDszmM4IUZqAoLiF9fzhzR62gD8Q9vn9ui6uy732YvHdfFnL/Vm/tX/LZlmWJQAAAABAg1r5ugAAAAAA8HcEJwAAAAAwIDgBAAAAgAHBCQAAAAAMCE4AAAAAYEBwAgAAAAADghMAAAAAGBCcAAAAAMCA4AQAAAAABgQnAA36zW9+I5vNptTU1HqfP3TokGw2m3796197ta6cnBzZbLaL+t79+/crJydHhw4datmiPMBmsyknJ8fXZVzQ559/rmHDhik2NlY2m01z586td72Kigrl5ORo48aNdZ6r6ed3333n0VoXL14sm83m+oqIiFBCQoJGjBihOXPmqLi4uMHa6vuaN2+eunfv3uDztb8WL17cIq/h5z//ubp166Y2bdqoffv2LbLNi7Fx40bZbLZ6++kL3qznYvfLLVu2KCcnRydOnGjxmgB4RxtfFwDAfy1cuFCStG/fPn366acaPHiwjytqvv379ys3N1fDhw9X9+7dfV1OwJsyZYrKy8u1YsUKdejQocHfaUVFhXJzcyVJw4cP916B9Vi0aJEuv/xyOZ1OFRcX65NPPtHzzz+vX//611q5cqVuvPHGOt+Tl5en2NhYt2UpKSkaOnSoKisrXcsWLFigN954o876l156abPrfvfddzVr1iw988wzyszMlN1ub/Y2L1b//v21detW9enTx2c1+MrWrVvVtWvXJn/fli1blJubq8mTJ/s09AK4eAQnAPXauXOnvvjiC91yyy16//339cYbbwRFcELL2rt3rx544AFlZmb6upRGS01N1YABA1yPx48fr5/+9Ke69tprNW7cOB08eFBdunRx+56rr75anTp1qrOt89fLy8u74PrNsXfvXknST37yE8XHx7fotpsqJiZG11xzjU9r8BV/e92nTp1SRETERY/CA2g8LtUDUK833nhDkvTcc89pyJAhWrFihSoqKupdt7q6WrNmzVK3bt0UERGhAQMG6C9/+YvbOt9++60efPBBJSUlyW63q3Pnzho6dKg++ugjt/UWLlyotLQ0RUREKC4uTrfffru++uorY70NXT7TvXt3TZ48WdK5S7V++MMfSpJGjBhR72VUH330kW644QbFxMQoKipKQ4cOrfNazvftt98qPDxcM2fOrPPc//t//082m02/+c1vXOtOnTpVffr0Ubt27RQfH6+RI0fq448/Nr7Ghi5RrLkE7fzLD1euXKn09HS1bdtW7dq100033aTPP//c+HOkc2/Sb7vtNnXo0EERERG68sortWTJkjo/8+zZs5o/f77rd1mfQ4cOqXPnzpKk3Nxc17o1fanxzTff6O6771ZsbKy6dOmiKVOmqKSkxG0dy7L029/+VldeeaUiIyPVoUMH3XHHHfrHP/7RqNfVkG7duumll15SWVmZ/uu//qtZ22qq6upqvfDCC7r88stlt9sVHx+ve+65R//85z9d63Tv3l0///nPJZ0La6bLxXbu3Km77rpL3bt3V2RkpLp37667775bX3/9daNqmj9/vtLS0tSuXTtFR0fr8ssv14wZM1zPN3Rp3O9//3v16tVLdrtdffr00fLlyzV58mS3kcjal/i+/PLLSklJUbt27ZSenq5t27a16Os4X83f7fr16/XAAw+oY8eOiomJ0T333KPy8nIVFRXpRz/6kdq3by+Hw6EnnnhCTqfTbRu1f/eWZenmm29Wx44ddfjwYdc6FRUVuuKKK9S7d2+Vl5crJydH//Ef/yHp3EhlzT5Q8/trzPGrdv3r1q3TlClT1LlzZ0VFRblGPZuzzwMwIzgBqOPUqVP67//+bw0cOFCpqamaMmWKysrK9Oabb9a7/rx585SXl6e5c+dq2bJlatWqlTIzM7V161bXOpMmTdLq1av1i1/8QuvWrdOCBQt044036tixY6515syZo/vuu09XXHGF3nnnHb3yyiv68ssvlZ6eroMHDzb7dd1yyy2aPXu2JOm1117T1q1btXXrVt1yyy2SpGXLlmnUqFGKiYnRkiVL9Kc//UlxcXG66aabLhieOnfurFtvvVVLlixRdXW123OLFi1SeHi4fvzjH0uSjh8/LknKzs7W+++/r0WLFukHP/iBhg8f3qKfz5g9e7buvvtu9enTR3/605/0hz/8QWVlZbruuuu0f//+C37vgQMHNGTIEO3bt0+/+c1v9M4776hPnz6aPHmyXnjhBUnnfpc1/b3jjjtcv8v6OBwO10jMfffd51r3/KA5fvx49erVS2+//baeeuopLV++XD/96U/d1nnooYc0bdo03XjjjVq9erV++9vfat++fRoyZIi++eabi/pd1bj55pvVunVrbd68uc5zVVVVOnv2rOurqqqqWT+rtkceeUQ/+9nPlJGRoTVr1uhXv/qV8vLyNGTIENfnvlatWqX77rtP0rlRra1bt+r+++9vcJuHDh3SZZddprlz52rt2rV6/vnnVVhYqIEDBxo/S7ZixQpNnTpVw4YN06pVq7R69Wr99Kc/VXl5+QW/7/XXX9eDDz6ofv366Z133tHPf/5z5ebmNvh3/dprryk/P19z587VH//4R5WXl+vmm292C8vNeR0Xcv/99ys2NlYrVqzQz3/+cy1fvlwPPPCAbrnlFqWlpemtt95SVlaWXnrpJb366qsNbsdms+kPf/iDoqKi9KMf/cgVsqZOnaqCggL96U9/Utu2bXX//ffr8ccflyS98847rn2gf//+F1X/lClTFBYWpj/84Q966623FBYW1qx9HkAjWQBwnqVLl1qSrN/97neWZVlWWVmZ1a5dO+u6665zW6+goMCSZCUmJlqnTp1yLS8tLbXi4uKsG2+80bWsXbt21rRp0xr8md9//70VGRlp3XzzzW7LDx8+bNntdmvChAmuZdnZ2db5hy9JVnZ2dp3tJicnW1lZWa7Hb775piXJ2rBhg9t65eXlVlxcnDVmzBi35VVVVVZaWpo1aNCgBmu3LMtas2aNJclat26da9nZs2etxMREa/z48Q1+39mzZy2n02ndcMMN1u23337B11Tf67Ysy1q0aJElySooKLAs69zvrE2bNtbjjz/utl5ZWZmVkJBg/ehHP7rga7nrrrssu91uHT582G15ZmamFRUVZZ04ccKtxkcfffSC27Msy/r2228b7FHN63rhhRfclk+dOtWKiIiwqqurLcuyrK1bt1qSrJdeesltvSNHjliRkZHWk08+ecEaan5PO3bsaHCdLl26WL17965T2/lfl1xySb3fX7P+t99+e8Faanz11VeWJGvq1Kluyz/99FNLkjVjxoyL3nZtZ8+etU6ePGm1bdvWeuWVVy647mOPPWa1b9/+guts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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dft_signal_mixture(32, amp1=1, period1=10.3, amp2=1, period2=15.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Investigating the magnitude spectrum one could conclude that the signal consists of two major contributions at the frequencies $\\mu_1 = 10$ and $\\mu_2 = 15$. Now lets take a look at a situation where the frequencies are closer together" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAK8CAYAAADYje8nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSWElEQVR4nO3dfVyUdb7/8feowwAKKBoyJCJbahpKmTehlWJhUvnLtN3K1TC7t9rj+ui0pesCu6lpW2ubrXta86Z1PbrdaLYVSmtqrZo3ZXnT8bi7mO4K2WoCguIA1+8PD7OOgF8Qhrl7PR8PHg/mmotrPsOHC3jP93t9x2ZZliUAAAAAQL1a+boAAAAAAPB3BCcAAAAAMCA4AQAAAIABwQkAAAAADAhOAAAAAGBAcAIAAAAAA4ITAAAAABgQnAAAAADAgOAEAAAAAAYEJwD1+vWvfy2bzaaUlJQ67z948KBsNpt++ctftmhdOTk5stlsF/W1+/btU05Ojg4ePNi8RXmBzWZTTk6Or8u4oM8//1xDhw5VTEyMbDab5s2bV+d+5eXlysnJ0YYNG2rdV9PPf/3rX16tdcmSJbLZbO6P8PBwxcfHKz09XbNnz9bRo0frra2uj/nz56tbt2713n/ux5IlS5rlOfz0pz9V165d1aZNG7Vv375ZjnkxNmzYIJvNVmc/faEl67nY83Lz5s3KycnRiRMnmr0mAC2jja8LAOC/Fi1aJEnau3evPv30Uw0aNMjHFTXdvn37lJubq2HDhqlbt26+LifgTZo0SWVlZVqxYoU6dOhQ7/e0vLxcubm5kqRhw4a1XIF1WLx4sa644gq5XC4dPXpUn3zyiebMmaNf/vKXWrlypW666aZaX5OXl6eYmBiPbcnJyRoyZIgqKirc2xYuXKjXXnut1v6XXXZZk+t+5513NHPmTE2fPl2ZmZlyOBxNPubF6tevn7Zs2aLevXv7rAZf2bJli7p06dLor9u8ebNyc3M1ceJEn4ZeABeP4ASgTjt27NAXX3yhW2+9Ve+9955ee+21oAhOaF579uzRgw8+qMzMTF+X0mApKSnq37+/+/bYsWP14x//WNddd53GjBmjAwcOqHPnzh5fc80116hTp061jnX+fnl5eRfcvyn27NkjSfrRj36kuLi4Zj12Y0VHR+vaa6/1aQ2+4m/P+9SpUwoPD7/oUXgADcdUPQB1eu211yRJzz33nAYPHqwVK1aovLy8zn2rq6s1c+ZMde3aVeHh4erfv7/+/Oc/e+zz7bff6qGHHlJiYqIcDocuueQSDRkyRB9++KHHfosWLVJqaqrCw8MVGxurO+64Q1999ZWx3vqmz3Tr1k0TJ06UdHaq1ve//31JUnp6ep3TqD788EPdeOONio6OVmRkpIYMGVLruZzv22+/VVhYmGbMmFHrvv/5n/+RzWbTr3/9a/e+kydPVu/evdWuXTvFxcVp+PDh+vjjj43Psb4pijVT0M6ffrhy5UqlpaWpbdu2ateunW6++WZ9/vnnxseRzv6Tfvvtt6tDhw4KDw/XVVddpaVLl9Z6zMrKSi1YsMD9vazLwYMHdckll0iScnNz3fvW9KXGN998o3vuuUcxMTHq3LmzJk2apOLiYo99LMvSb37zG1111VWKiIhQhw4ddOedd+rvf/97g55Xfbp27aoXXnhBpaWl+q//+q8mHauxqqurNXfuXF1xxRVyOByKi4vTvffeq3/84x/ufbp166af/vSnks6GNdN0sR07dujuu+9Wt27dFBERoW7duumee+7R119/3aCaFixYoNTUVLVr105RUVG64oorNG3aNPf99U2N+93vfqcePXrI4XCod+/eWr58uSZOnOgxEnnuFN8XX3xRycnJateundLS0rR169ZmfR7nq/m5Xb9+vR588EF17NhR0dHRuvfee1VWVqaioiL94Ac/UPv27eV0OvXkk0/K5XJ5HOPc771lWbrlllvUsWNHHTp0yL1PeXm5rrzySvXq1UtlZWXKycnRf/7nf0o6O1JZcw7UfP8a8vvr3PrXrVunSZMm6ZJLLlFkZKR71LMp5zwAM4ITgFpOnTql//7v/9aAAQOUkpKiSZMmqbS0VG+88Uad+8+fP195eXmaN2+eli1bplatWikzM1Nbtmxx7zNhwgStXr1aP/vZz7Ru3TotXLhQN910k44dO+beZ/bs2br//vt15ZVX6u2339ZLL72kL7/8UmlpaTpw4ECTn9ett96qWbNmSZJeeeUVbdmyRVu2bNGtt94qSVq2bJlGjBih6OhoLV26VH/84x8VGxurm2+++YLh6ZJLLtFtt92mpUuXqrq62uO+xYsXKywsTD/84Q8lScePH5ckZWdn67333tPixYv1ve99T8OGDWvW6zNmzZqle+65R71799Yf//hH/f73v1dpaamuv/567du374Jfu3//fg0ePFh79+7Vr3/9a7399tvq3bu3Jk6cqLlz50o6+72s6e+dd97p/l7Wxel0ukdi7r//fve+5wfNsWPHqkePHnrrrbf09NNPa/ny5frxj3/ssc/DDz+sKVOm6KabbtLq1av1m9/8Rnv37tXgwYP1zTffXNT3qsYtt9yi1q1ba9OmTbXuq6qqUmVlpfujqqqqSY91rkcffVQ/+clPlJGRoTVr1ugXv/iF8vLyNHjwYPd1X6tWrdL9998v6eyo1pYtW/TAAw/Ue8yDBw+qZ8+emjdvntauXas5c+aosLBQAwYMMF5LtmLFCk2ePFlDhw7VqlWrtHr1av34xz9WWVnZBb/u1Vdf1UMPPaS+ffvq7bff1k9/+lPl5ubW+3P9yiuvKD8/X/PmzdMf/vAHlZWV6ZZbbvEIy015HhfywAMPKCYmRitWrNBPf/pTLV++XA8++KBuvfVWpaam6s0331RWVpZeeOEFvfzyy/Uex2az6fe//70iIyP1gx/8wB2yJk+erIKCAv3xj39U27Zt9cADD+iJJ56QJL399tvuc6Bfv34XVf+kSZNkt9v1+9//Xm+++absdnuTznkADWQBwHlef/11S5L129/+1rIsyyotLbXatWtnXX/99R77FRQUWJKshIQE69SpU+7tJSUlVmxsrHXTTTe5t7Vr186aMmVKvY/53XffWREREdYtt9zisf3QoUOWw+Gwxo0b596WnZ1tnf/rS5KVnZ1d67hJSUlWVlaW+/Ybb7xhSbI++ugjj/3Kysqs2NhYa9SoUR7bq6qqrNTUVGvgwIH11m5ZlrVmzRpLkrVu3Tr3tsrKSishIcEaO3ZsvV9XWVlpuVwu68Ybb7TuuOOOCz6nup63ZVnW4sWLLUlWQUGBZVlnv2dt2rSxnnjiCY/9SktLrfj4eOsHP/jBBZ/L3XffbTkcDuvQoUMe2zMzM63IyEjrxIkTHjU+9thjFzyeZVnWt99+W2+Pap7X3LlzPbZPnjzZCg8Pt6qrqy3LsqwtW7ZYkqwXXnjBY7/Dhw9bERER1lNPPXXBGmq+T9u3b693n86dO1u9evWqVdv5H5deemmdX1+z/7fffnvBWmp89dVXliRr8uTJHts//fRTS5I1bdq0iz72uSorK62TJ09abdu2tV566aUL7vv4449b7du3v+A+H330kcd5VFVVZcXHx1uDBg3y2O/rr7+27Ha7lZSU5N5W83ujT58+VmVlpXv7tm3bLEnWf//3fzf6eZxfT31qfgbOPzdGjx5tSbJefPFFj+1XXXWV1a9fP49tdf0cf/LJJ1abNm2sKVOmWIsWLbIkWQsXLvTY5/nnn/c4T03HtKzav79q6r/33ns99mvqOQ+gYRhxAlDLa6+9poiICN19992SpHbt2un73/++Pv744zpHfsaMGaPw8HD37aioKI0aNUqbNm1yvzI/cOBALVmyRM8++6y2bt1aa/rLli1bdOrUqVrTtxITEzV8+HDjdLmm2rx5s44fP66srCyPkYXq6mqNHDlS27dvv+Ar7pmZmYqPj9fixYvd29auXasjR45o0qRJHvv+9re/Vb9+/RQeHq42bdrIbrfrz3/+c4OmJDbE2rVrVVlZqXvvvdfjuYSHh2vo0KHGka3169frxhtvVGJiosf2iRMnqry8vN6Rpab6f//v/3nc7tu3r06fPu1e7e5Pf/qTbDabxo8f7/G84uPjlZqa2iwjdpZl1bn9ww8/1Pbt290f77//fpMfS5I++ugjSar1cz9w4ED16tXron/uT548qZ/85Ce6/PLL1aZNG7Vp00bt2rVTWVmZ8eds4MCBOnHihO655x698847DRrZ2b9/v3ua27m6du2qIUOG1Pk1t956q1q3bu2+3bdvX0nymIbXlOdxIbfddpvH7V69erlrOn97Q6YFDhkyRDNnztS8efP06KOPavz48e4RQm8YO3asx+2mnvMAGobgBMDDX//6V23atEm33nqrLMvSiRMndOLECd15552S/r3S3rni4+Pr3HbmzBmdPHlS0tm591lZWVq4cKHS0tIUGxure++9V0VFRZLknrLndDprHSshIcFjSp831EzzuvPOO2W32z0+5syZI8uy3NPs6tKmTRtNmDBBq1atci83vGTJEjmdTt18883u/V588UU9+uijGjRokN566y1t3bpV27dv18iRI3Xq1KlmfS4DBgyo9VxWrlxp/Ef42LFj9fah5n5v6Nixo8ftmlXjar4v33zzjSzLUufOnWs9r61btzZ5OfOysjIdO3bM/TzPlZqaqv79+7s/av7Jbypv/dyPGzdO8+fP1wMPPKC1a9dq27Zt2r59uy655BLjz9mECRO0aNEiff311xo7dqzi4uI0aNAg5efnG5/H+Ytl1LdNMve7qc/jQmJjYz1uh4WF1bv99OnTDTrmD3/4Q4WFhamiosJ9PZO3nP/z0tRzHkDDsKoeAA+LFi2SZVl688039eabb9a6f+nSpXr22Wc9XimuCT/nKioqUlhYmNq1aydJ6tSpk+bNm6d58+bp0KFDWrNmjZ5++mkdPXpUeXl57n+iCgsLax3ryJEjxhXKHA6Hx7LQNRr6j2fN8V9++eV6V82q7x/AGvfdd5+ef/55rVixQnfddZfWrFmjKVOmeHyvli1bpmHDhmnBggUeX1taWmqssWZUr6KiwmMp6vP/Kap5Lm+++aaSkpKMxz1fx44d6+3DucdvaZ06dZLNZtPHH39c51LcTV2e+7333lNVVVWLLpd+7s/9+UtcN+Tnvi7FxcX605/+pOzsbD399NPu7RUVFRcM/+e67777dN9996msrEybNm1Sdna2brvtNv3v//5vnT9TNc+jruvM6vr90FLPo6VUVVXphz/8oTp06CCHw6H7779ff/nLX9yBzKSxv7/OX4ilqec8gIYhOAFwq6qq0tKlS3XZZZdp4cKFte7/05/+pBdeeEEffPCBx1SXt99+W88//7z7H/vS0lK9++67uv766z1CQ42uXbvq8ccf15///Gf95S9/kSSlpaUpIiJCy5Ytc698J0n/+Mc/tH79eveIV326deumL7/80mPb+vXr3SNeNep6VVs6O9Wmffv22rdvnx5//PELPlZ9evXqpUGDBmnx4sWqqqpSRUWF7rvvPo99bDZbrX/wv/zyS23ZsqXW1Ljz1axM9uWXX2rAgAHu7e+++67HfjfffLPatGmjv/3tb7Wm9DTEjTfeqFWrVunIkSMeoy+vv/66IiMjL2o55vq+741x22236bnnntM///nPWlPCmurQoUN68sknFRMTo4cffrhZj30hw4cPl3Q2UJ/b0+3bt+urr77S9OnTG31Mm80my7Jq/ZwtXLiw0YtatG3bVpmZmTpz5oxGjx6tvXv31vmPec+ePRUfH68//vGPmjp1qnv7oUOHtHnz5jpH8VryeXhbdna2Pv74Y61bt05t27bVDTfcoP/8z//USy+95N7nQudAQ39/1aep5zyAhiE4AXD74IMPdOTIEc2ZM6fOV91TUlI0f/58vfbaax7BqXXr1srIyNDUqVNVXV2tOXPmqKSkxP2Gp8XFxUpPT9e4ceN0xRVXKCoqStu3b1deXp7GjBkjSWrfvr1mzJihadOm6d5779U999yjY8eOKTc3V+Hh4crOzr5g7RMmTNCMGTP0s5/9TEOHDtW+ffs0f/78Wm9ampKSIunsCmBRUVEKDw9XcnKyOnbsqJdffllZWVk6fvy47rzzTsXFxenbb7/VF198oW+//bbWKFFdJk2apIcfflhHjhzR4MGD1bNnT4/7b7vtNv3iF79Qdna2hg4dqv379+vnP/+5kpOTVVlZecFj33LLLYqNjdX999+vn//852rTpo2WLFmiw4cPe+zXrVs3/fznP9f06dP197//XSNHjlSHDh30zTffaNu2bWrbtq27N3XJzs7Wn/70J6Wnp+tnP/uZYmNj9Yc//EHvvfee5s6dW+t72hBRUVFKSkrSO++8oxtvvFGxsbHq1KlTo96EeMiQIXrooYd03333aceOHbrhhhvUtm1bFRYW6pNPPlGfPn306KOPGo+zZ88e9zUgR48e1ccff6zFixerdevWWrVqlXvp9JbQs2dPPfTQQ3r55Zfdq1EePHhQM2bMUGJiYq1VBRsiOjpaN9xwg55//nn393jjxo167bXXGvTGqw8++KAiIiI0ZMgQOZ1OFRUVafbs2YqJifEId+dq1aqVcnNz9fDDD+vOO+/UpEmTdOLECeXm5srpdKpVq8ZfGdDU59FS8vPzNXv2bM2YMUM33nijpLMrhD755JMaNmyY7rjjDklSnz59JEkvvfSSsrKyZLfb1bNnT0VFRTX491d9mnrOA2ggHy5MAcDPjB492goLC7OOHj1a7z5333231aZNG6uoqMi9OtacOXOs3Nxcq0uXLlZYWJh19dVXW2vXrnV/zenTp61HHnnE6tu3rxUdHW1FRERYPXv2tLKzs62ysjKP4y9cuNDq27evFRYWZsXExFi33367tXfvXo996lpdrqKiwnrqqaesxMREKyIiwho6dKi1a9euWqtSWZZlzZs3z0pOTrZat25tSbIWL17svm/jxo3WrbfeasXGxlp2u9269NJLrVtvvdV64403GvQ9LC4utiIiIixJ1u9+97ta91dUVFhPPvmkdemll1rh4eFWv379rNWrV1tZWVkeK49ZVt0rbW3bts0aPHiw1bZtW+vSSy+1srOzrYULF9a5Wtfq1aut9PR0Kzo62nI4HFZSUpJ15513Wh9++KHxeezevdsaNWqU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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dft_signal_mixture(32, amp1=1, period1=10.3, amp2=1, period2=10.9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From visual inspection of the spectrum it is rather unclear if the mixture consists of one or two exponential signals. So far the levels of both signals where chosen equal. \n", "\n", "Lets consider the case where the second signal has a much lower level that the first one. The frequencies have been chosen equal to the first example" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAK8CAYAAADYje8nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRyUlEQVR4nO3de3RU5b3/8c8AySSBJBAgZCIhpAoKAlHkYkCFoEGi8hPBVqViEO+oPZTlsQqlSVoBwerBiqXHIhdLOVAvIFYNxCKgBeSiKBcPh54GoSUBBUlCAmGS7N8fnEwZkvDkNvf3a62sxezZs+c7+WaHfPaz97NtlmVZAgAAAADUq5WvCwAAAAAAf0dwAgAAAAADghMAAAAAGBCcAAAAAMCA4AQAAAAABgQnAAAAADAgOAEAAACAAcEJAAAAAAwITgAAAABgQHACUK/f/OY3stls6tOnT53PHzx4UDabTb/+9a+9WldOTo5sNluTXrtv3z7l5OTo4MGDLVuUB9hsNuXk5Pi6jIv64osvNGzYMMXGxspms2nevHl1rldeXq6cnBxt2LCh1nM1/fzuu+88WuuSJUtks9lcXxEREUpISFB6erpmz56tY8eO1VtbXV/z589X9+7d633+/K8lS5a0yGf4+c9/rm7duqlNmzZq3759i2yzKTZs2CCbzVZnP33Bm/U0db/cvHmzcnJydPLkyRavCYB3tPF1AQD816JFiyRJe/fu1WeffabBgwf7uKLm27dvn3JzczV8+HB1797d1+UEvEmTJqmsrEwrVqxQhw4d6v2elpeXKzc3V5I0fPhw7xVYh8WLF+uKK66Q0+nUsWPH9Omnn2rOnDn69a9/rZUrV+qmm26q9Zq8vDzFxsa6LUtJSdHQoUNVUVHhWrZw4UK9/vrrtda/9NJLm133u+++q5kzZ2r69OnKzMyU3W5v9jabqn///tqyZYt69+7tsxp8ZcuWLeratWujX7d582bl5uZq4sSJPg29AJqO4ASgTjt27NCXX36pW2+9Ve+//75ef/31oAhOaFl79uzRQw89pMzMTF+X0mB9+vTRgAEDXI/HjRunn/70p7ruuus0duxYHThwQF26dHF7zTXXXKNOnTrV2taF6+Xl5V10/ebYs2ePJOknP/mJ4uPjW3TbjRUTE6Nrr73WpzX4ir997tOnTysiIqLJo/AAGo5T9QDU6fXXX5ckPf/88xoyZIhWrFih8vLyOtetrq7WzJkz1a1bN0VERGjAgAH6y1/+4rbOt99+q4cfflhJSUmy2+3q3Lmzhg4dqo8++shtvUWLFik1NVURERGKi4vTHXfcoa+//tpYb32nz3Tv3l0TJ06UdO5UrR/+8IeSpPT09DpPo/roo4904403KiYmRlFRURo6dGitz3Khb7/9VuHh4ZoxY0at5/77v/9bNptNv/nNb1zrTp48Wb1791a7du0UHx+vESNG6JNPPjF+xvpOUaw5Be3C0w9XrlyptLQ0tW3bVu3atdPNN9+sL774wvg+0rk/0m+//XZ16NBBERERuuqqq7R06dJa71lZWakFCxa4vpd1OXjwoDp37ixJys3Nda1b05caR48e1T333KPY2Fh16dJFkyZNUnFxsds6lmXpt7/9ra666ipFRkaqQ4cOuvPOO/X3v/+9QZ+rPt26ddOLL76o0tJS/ed//mezttVY1dXVmjt3rq644grZ7XbFx8frvvvu0z/+8Q/XOt27d9fPf/5zSefCmul0sR07dujuu+9W9+7dFRkZqe7du+uee+7RN99806CaFixYoNTUVLVr107R0dG64oorNG3aNNfz9Z0a9/vf/149e/aU3W5X7969tXz5ck2cONFtJPL8U3xfeuklpaSkqF27dkpLS9PWrVtb9HNcqObndv369XrooYfUsWNHxcTE6L777lNZWZmKior0ox/9SO3bt5fD4dBTTz0lp9Ppto3zv/eWZemWW25Rx44ddejQIdc65eXluvLKK9WrVy+VlZUpJydH//7v/y7p3EhlzT5Q8/1ryO+v8+tft26dJk2apM6dOysqKso16tmcfR6AGcEJQC2nT5/Wf/3Xf2ngwIHq06ePJk2apNLSUr355pt1rj9//nzl5eVp3rx5WrZsmVq1aqXMzExt2bLFtc6ECRO0evVq/eIXv9C6deu0cOFC3XTTTTp+/LhrndmzZ+uBBx7QlVdeqXfeeUcvv/yyvvrqK6WlpenAgQPN/ly33nqrZs2aJUl69dVXtWXLFm3ZskW33nqrJGnZsmUaOXKkYmJitHTpUv3pT39SXFycbr755ouGp86dO+u2227T0qVLVV1d7fbc4sWLFR4erh//+MeSpBMnTkiSsrOz9f7772vx4sX6wQ9+oOHDh7fo9RmzZs3SPffco969e+tPf/qT/vCHP6i0tFTXX3+99u3bd9HX7t+/X0OGDNHevXv1m9/8Ru+884569+6tiRMnau7cuZLOfS9r+nvnnXe6vpd1cTgcrpGYBx54wLXuhUFz3Lhx6tmzp95++20988wzWr58uX7605+6rfPII49oypQpuummm7R69Wr99re/1d69ezVkyBAdPXq0Sd+rGrfccotat26tTZs21XquqqpKlZWVrq+qqqpmvdf5HnvsMf3sZz9TRkaG1qxZo1/96lfKy8vTkCFDXNd9rVq1Sg888ICkc6NaW7Zs0YMPPljvNg8ePKjLL79c8+bN09q1azVnzhwVFhZq4MCBxmvJVqxYocmTJ2vYsGFatWqVVq9erZ/+9KcqKyu76Otee+01Pfzww+rXr5/eeecd/fznP1dubm69P9evvvqq8vPzNW/ePP3xj39UWVmZbrnlFrew3JzPcTEPPvigYmNjtWLFCv385z/X8uXL9dBDD+nWW29Vamqq3nrrLWVlZenFF1/UK6+8Uu92bDab/vCHPygqKko/+tGPXCFr8uTJKigo0J/+9Ce1bdtWDz74oJ588klJ0jvvvOPaB/r379+k+idNmqSwsDD94Q9/0FtvvaWwsLBm7fMAGsgCgAu88cYbliTrd7/7nWVZllVaWmq1a9fOuv76693WKygosCRZiYmJ1unTp13LS0pKrLi4OOumm25yLWvXrp01ZcqUet/z+++/tyIjI61bbrnFbfmhQ4csu91ujR8/3rUsOzvbuvDXlyQrOzu71naTk5OtrKws1+M333zTkmR9/PHHbuuVlZVZcXFx1ujRo92WV1VVWampqdagQYPqrd2yLGvNmjWWJGvdunWuZZWVlVZiYqI1bty4el9XWVlpOZ1O68Ybb7TuuOOOi36muj63ZVnW4sWLLUlWQUGBZVnnvmdt2rSxnnzySbf1SktLrYSEBOtHP/rRRT/L3XffbdntduvQoUNuyzMzM62oqCjr5MmTbjU+/vjjF92eZVnWt99+W2+Paj7X3Llz3ZZPnjzZioiIsKqrqy3LsqwtW7ZYkqwXX3zRbb3Dhw9bkZGR1tNPP33RGmq+T9u3b693nS5duli9evWqVduFX5dcckmdr69Z/9tvv71oLTW+/vprS5I1efJkt+WfffaZJcmaNm1ak7d9vsrKSuvUqVNW27ZtrZdffvmi6z7xxBNW+/btL7rOxx9/7LYfVVVVWQkJCdbgwYPd1vvmm2+ssLAwKzk52bWs5vdG3759rcrKStfybdu2WZKs//qv/2r057iwnvrU/AxcuG+MGTPGkmS99NJLbsuvuuoqq3///m7L6vo5/vTTT602bdpYU6ZMsRYtWmRJshYuXOi2zgsvvOC2n5q2aVm1f3/V1H/fffe5rdfcfR5AwzDiBKCW119/XZGRkbr77rslSe3atdMPf/hDffLJJ3WO/IwdO1YRERGux9HR0Ro9erQ2bdrkOjI/aNAgLVmyRM8995y2bt1a6/SXLVu26PTp07VO30pKStKIESOMp8s11+bNm3XixAllZWW5jSxUV1dr1KhR2r59+0WPuGdmZiohIUGLFy92LVu7dq2OHDmiSZMmua37u9/9Tv3791dERITatGmjsLAw/eUvf2nQKYkNsXbtWlVWVuq+++5z+ywREREaNmyYcWRr/fr1uvHGG5WUlOS2fOLEiSovL693ZKm5/t//+39uj/v166czZ864Zrv785//LJvNpnvvvdftcyUkJCg1NbVFRuwsy6pz+UcffaTt27e7vj744INmv5ckffzxx5JU6+d+0KBB6tWrV5N/7k+dOqWf/exnuuyyy9SmTRu1adNG7dq1U1lZmfHnbNCgQTp58qTuuecevfvuuw0a2dm/f7/rNLfzdevWTUOHDq3zNbfeeqtat27tetyvXz9JcjsNrzmf42Juu+02t8e9evVy1XTh8oacFjh06FDNnDlT8+bN02OPPaZ7773XNULoCePGjXN73Nx9HkDDEJwAuPnb3/6mTZs26dZbb5VlWTp58qROnjypO++8U9K/Zto7X0JCQp3Lzp49q1OnTkk6d+59VlaWFi5cqLS0NMXFxem+++5TUVGRJLlO2XM4HLW2lZiY6HZKnyfUnOZ15513KiwszO1rzpw5sizLdZpdXdq0aaMJEyZo1apVrumGlyxZIofDoZtvvtm13ksvvaTHHntMgwcP1ttvv62tW7dq+/btGjVqlE6fPt2in2XgwIG1PsvKlSuNfwgfP3683j7UPO8JHTt2dHtcM2tczffl6NGjsixLXbp0qfW5tm7d2uzpzMvKynT8+HHX5zxfamqqBgwY4Pqq+SO/uTz1cz9+/HjNnz9fDz74oNauXatt27Zp+/bt6ty5s/HnbMKECVq0aJG++eYbjRs3TvHx8Ro8eLDy8/ONn+PCyTLqWyaZ+93cz3ExcXFxbo/Dw8PrXX7mzJkGbfPHP/6xwsPDVVFR4bqeyVMu/Hlp7j4PoGGYVQ+Am0WLFsmyLL311lt66623aj2/dOlSPffcc25HimvCz/mKiooUHh6udu3aSZI6deqkefPmad68eTp06JDWrFmjZ555RseOHVNeXp7rj6jCwsJa2zpy5IhxhjK73e42LXSNhv7hWbP9V155pd5Zs+r7A7DG/fffrxdeeEErVqzQXXfdpTVr1mjKlClu36tly5Zp+PDhWrBggdtrS0tLjTXWjOpVVFS4TUV94R9FNZ/lrbfeUnJysnG7F+rYsWO9fTh/+97WqVMn2Ww2ffLJJ3VOxd3c6bnff/99VVVVeXW69PN/7i+c4rohP/d1KS4u1p///GdlZ2frmWeecS2vqKi4aPg/3/3336/7779fZWVl2rRpk7Kzs3Xbbbfpf/7nf+r8mar5HHVdZ1bX7wdvfQ5vqaqq0o9//GN16NBBdrtdDzzwgP7617+6AplJY39/XTgRS3P3eQANQ3AC4FJVVaWlS5fq0ksv1cKFC2s9/+c//1kvvviiPvzwQ7dTXd555x298MILrj/sS0tL9d577+n66693Cw01unXrpieeeEJ/+ctf9Ne//lWSlJaWpsjISC1btsw1850k/eMf/9D69etdI1716d69u7766iu3ZevXr3eNeNWo66i2dO5Um/bt22vfvn164oknLvpe9enVq5cGDx6sxYsXq6qqShUVFbr//vvd1rHZbLX+wP/qq6+0ZcuWWqfGXahmZrKvvvpKAwcOdC1/77333Na7+eab1aZNG/3v//5vrVN6GuLGG2/UqlWrdOTIEbfRlzfeeENRUVFNmo65vu97Y9x22216/vnn9c9//rPWKWHNdejQIT311FOKjY3VI4880qLbvpgRI0ZIOheoz+/p9u3b9fXXX2v69OmN3qbNZpNlWbV+zhYuXNjoSS3atm2rzMxMnT17VmPGjNHevXvr/MP88ssvV0JCgv70pz9p6tSpruWHDh3S5s2b6xzF8+bn8LTs7Gx98sknWrdundq2basbbrhB//7v/66XX37Ztc7F9oGG/v6qT3P3eQANQ3AC4PLhhx/qyJEjmjNnTp1H3fv06aP58+fr9ddfdwtOrVu3VkZGhqZOnarq6mrNmTNHJSUlrhueFhcXKz09XePHj9cVV1yh6Ohobd++XXl5eRo7dqwkqX379poxY4amTZum++67T/fcc4+OHz+u3NxcRUREKDs7+6K1T5gwQTNmzNAvfvELDRs2TPv27dP8+fNr3bS0T58+ks7NABYdHa2IiAilpKSoY8eOeuWVV5SVlaUTJ07ozjvvVHx8vL799lt9+eWX+vbbb2uNEtVl0qRJeuSRR3TkyBENGTJEl19+udvzt912m371q18pOztbw4YN0/79+/XLX/5SKSkpqqysvOi2b7nlFsXFxemBBx7QL3/5S7Vp00ZLlizR4cOH3dbr3r27fvnLX2r69On6+9//rlGjRqlDhw46evSotm3bprZt27p6U5fs7Gz9+c9/Vnp6un7xi18oLi5Of/zjH/X+++9r7ty5tb6nDREdHa3k5GS9++67uvHGGxUXF6dOnTo16ibEQ4cO1cMPP6z7779fO3bs0A033KC2bduqsLBQn376qfr27avHHnvMuJ09e/a4rgE5duyYPvnkEy1evFitW7fWqlWrXFOne8Pll1+uhx9+WK+88oprNsqDBw9qxowZSkpKqjWrYEPExMTohhtu0AsvvOD6Hm/cuFGvv/56g268+tBDDykyMlJDhw6Vw+FQUVGRZs+erdjYWLdwd75WrVopNzdXjzzyiO68805NmjRJJ0+eVG5urhwOh1q1avyVAc39HN6Sn5+v2bNna8aMGbrxxhslnZsh9KmnntLw4cN1xx13SJL69u0rSXr55ZeVlZWlsLAwXX755YqOjm7w76/6NHefB9BAPpyYAoCfGTNmjBUeHm4dO3as3nXuvvtuq02bNlZRUZFrdqw5c+ZYubm5VteuXa3w8HDr6quvttauXet6zZkzZ6xHH33U6tevnxUTE2NFRkZal19+uZWdnW2VlZW5bX/hwoVWv379rPDwcCs2Nta6/fbbrb1797qtU9fschUVFdbTTz9tJSUlWZGRkdawYcOsXbt21ZqVyrIsa968eVZKSorVunVrS5K1ePFi13MbN260br31VisuLs4KCwuzLrnkEuvWW2+13nzzzQZ9D4uLi63IyEhLkvX73/++1vMVFRXWU089ZV1yySVWRESE1b9/f2v16tVWVlaW28xjllX3TFvbtm2zhgwZYrVt29a65JJLrOzsbGvhwoV1zta1evVqKz093YqJibHsdruVnJxs3XnnndZHH31k/By7d++2Ro8e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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dft_signal_mixture(32, amp1=1, period1=10.3, amp2=0.1, period2=15.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the contribution of the second exponential is almost hidden in the spread spectrum of the first exponential. From these examples it should have become clear that the leakage effect limits the spectral resolution of the DFT." ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Sascha Spors, Digital Signal Processing - Lecture notes featuring computational examples*." ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 1 }