{"id":782,"date":"2024-06-02T17:10:47","date_gmt":"2024-06-02T17:10:47","guid":{"rendered":"https:\/\/neilfoxman.com\/?page_id=782"},"modified":"2024-06-04T19:05:32","modified_gmt":"2024-06-04T19:05:32","slug":"interpolation","status":"publish","type":"page","link":"https:\/\/neilfoxman.com\/?page_id=782","title":{"rendered":"Signal Recovery"},"content":{"rendered":"\n<p>The process described for <a href=\"https:\/\/neilfoxman.com\/?page_id=169\">sampling a signal<\/a> is effectively reversed when going from discrete to continuous time, and we first focus on generating an idealized continuous time sampled signal (weighted pulses spaced by $T$) from the discrete time sampled signal (sequence in $n$).  The continuous time sampled signal then can be fed through continuous time LPF filters that represent various real-world interpolation methods to generate the re-created signal.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea046f6&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea046f6\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"386\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202908995-1024x386.png\" alt=\"\" class=\"wp-image-725\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202908995-1024x386.png 1024w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202908995-300x113.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202908995-768x289.png 768w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202908995.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Discrete_to_Continuous_Conversion\"><\/span>Discrete to Continuous Conversion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea04f26&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea04f26\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1008\" height=\"847\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202937457.png\" alt=\"\" class=\"wp-image-726\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202937457.png 1008w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202937457-300x252.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220816202937457-768x645.png 768w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>The impulse train can then be recreated for each discrete sample. That is<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y_p(t) = \\sum_{n=-\\infty}^{\\infty} y_d[n] \\delta(t-nT)<br>&amp;\\stackrel{\\mathcal{F}}{\\leftrightarrow}<br>Y_p(j \\omega) = \\sum_{n=-\\infty}^{\\infty} y_d[n] e^{-j \\omega n T} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>The discrete sample signal frequency response $Y_d$ will repeat every $2\\pi$ in the $\\Omega$ domain as any discrete signal would.  We also know that the output continuous signal frequency response $Y_p(j \\omega)$ will repeat in the $\\omega$ domain relative to the output sampling frequency $\\omega_s = 2 \\pi \/ T$, and so $\\Omega = \\omega T$ still holds as a viable comparison between $\\Omega$ and $\\omega$ domains.<\/p>\n\n\n\n<p>This pulsed output signal $Y_p(j \\omega)$ contains information of the single desired result we want in the continuous domain, which we can denote as the idealized $Y_c$ which is repeated every $\\omega_s$ in the $\\omega$ domain and scaled.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>Y_p(j \\omega) &amp;= \\frac{1}{T} \\sum_{k=-\\infty}^{\\infty} Y_c(j(\\omega &#8211; k \\omega_s)) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>From this, we can see that to accurately recreate $Y_d$ in continuous time, the ideal filter applied to $Y_p$ scales all signals $0 &lt; |\\omega| &lt; \\omega_s \/ 2$ by $T$, and all other frequency information is removed. This idealized interpolation method is explored further below.<\/p>\n\n\n\n<p>Note that the following discussion reverts back to using signal $x$ instead of signal $y$ for generality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Interpolation\"><\/span>Interpolation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea058e8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea058e8\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"505\" height=\"194\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204919661.png\" alt=\"\" class=\"wp-image-710\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204919661.png 505w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204919661-300x115.png 300w\" sizes=\"auto, (max-width: 505px) 100vw, 505px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>An interpolation formula describes how to fit a continuous curve between sample points $x(nT)$ using a filter $h(t) \\stackrel{\\mathcal{F}}{\\leftrightarrow} H(j \\omega)$.  Note that the shape of the filter impulse response $h(t)$ is convolved with the idealized continuous sample pulse $x_p(t)$ to represent the recovered signal.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t) &amp;= x_p(t) * h(t) \\\\<br>x_r(t) &amp;= \\left[ \\sum_{n=-\\infty}^{\\infty} x(nT) \\delta(t-nT) \\right] * h(t) \\\\<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) h(t &#8211; nT) \\\\<br>\\\\<br>X_r(j \\omega) &amp;= X_p(j \\omega) H(j \\omega) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>The analysis does not need to be limited to the idealized continuous time sampled signal, and the same result appears if using discrete sampled values and the discrete frequency response.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x_d[n] * h(t &#8211; nT) \\\\<br>\\\\<br>X_r(j \\omega) &amp;= \\sum_{n=-\\infty}^{\\infty} x_d[n] H(j \\omega) e^{-j \\omega T n} \\\\<br>X_r(j \\omega) &amp;= H(j \\omega) \\sum_{n=-\\infty}^{\\infty} x_d[n] e^{-j \\omega T n} \\\\<br>X_r(j \\omega) &amp;= H(j \\omega) \\sum_{n=-\\infty}^{\\infty} x_d[n] e^{-j \\Omega n} \\\\<br>X_r(j \\omega) &amp;= H(j \\omega) X_d(e^{j \\Omega}) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ideal_Signal_Recreation_Filter_Ideal_Low-Pass_Filter\"><\/span>Ideal Signal Recreation Filter \/ Ideal Low-Pass Filter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This filter recreates the original signal perfectly such that $x_r(t) = x(t)$ It is difficult to implement in real-life, but provides a useful foundation of analysis.<\/p>\n\n\n\n<p>A unity-gain low-pass filter is described by<\/p>\n\n\n\n<p>$$<br>H_u(j \\omega) = \\cases{<br>\\begin{align}<br>1 &amp;&amp; |\\omega| &lt; \\omega_c \\\\<br>0 &amp;&amp; |\\omega| \\geq \\omega_c \\\\<br>\\end{align}<br>}<br>$$<\/p>\n\n\n\n<p>Which can be found to have a frequency response of (TBD Reference)<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>h_u(t) &amp;= \\frac{\\sin(\\omega_c t)}{\\pi t} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Recall that the magnitude of $X_p(j \\omega)$ is $X(j \\omega)$ scaled by $1\/T$, so in order to get the recovered signal spectrum $X_r(j \\omega)$, we would need to scale the filter by the sampling period, $T$.  That is, the ideal signal recovery interpolation filter is described by<\/p>\n\n\n\n<p>$$<br>H(j \\omega) = \\cases{<br>\\begin{align}<br>T &amp;&amp; |\\omega| &lt; \\omega_c \\\\<br>0 &amp;&amp; |\\omega| \\geq \\omega_c \\\\<br>\\end{align}<br>}<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H(j \\omega) = T H_u (j \\omega)<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>h(t) &amp;= T \\frac{\\sin(\\omega_c t)}{\\pi t} \\\\<br>h(t) &amp;= \\frac{\\omega_c T}{\\pi} \\frac{\\sin(\\omega_c t)}{\\omega_c t} \\\\<br>h(t) &amp;= \\frac{\\omega_c T}{\\pi} sinc(\\omega_c t) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>So the recovered signal becomes<br>$$<br>\\begin{align}<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) \\frac{\\omega_c T}{\\pi} \\frac{\\sin(\\omega_c (t-nT))}{\\omega_c (t-nT)} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>In the case where we assume the signal is band-limited and no aliasing occurs, we can use $\\omega_c = \\omega_s\/2 = \\pi\/T$ to get<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>h(t) &amp;= \\frac{\\sin(\\pi t \/ T)}{\\pi t \/ T} \\\\<br>h(t) &amp;= sinc(\\pi t \/ T) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>The reconstructed signal is then described by<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) h(t &#8211; nT) \\\\<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) \\frac{\\sin[\\pi (t &#8211; nT) \/ T]}{\\pi (t &#8211; nT) \/ T} \\\\<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x[n] \\frac{\\sin[\\pi (t &#8211; nT) \/ T]}{\\pi (t &#8211; nT) \/ T} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>In other words, the summation of sinc functions at each time step scaled by the original signal exactly replicates the original signal.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea06486&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea06486\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"717\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124451572.png\" alt=\"\" class=\"wp-image-712\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124451572.png 839w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124451572-300x256.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124451572-768x656.png 768w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Zero-Order_Hold\"><\/span>Zero-Order Hold<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>More common in practice than multiplying input signal by generated impulses. Output is equivalent to convolving $x_p(t)$ (same as above) with a filter, $H_0(j \\omega)$, that has impulse response, $h_0(t)$, that is unity between $t=0$ and $t=T$.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea06b26&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea06b26\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"867\" height=\"966\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728203002527.png\" alt=\"\" class=\"wp-image-714\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728203002527.png 867w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728203002527-269x300.png 269w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728203002527-768x856.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Note that $H_0(j \\omega)$ is very similar to the rectangular pulse, but shifted in time.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H_{sq} (j \\omega) &amp;= \\frac{2 sin(\\omega T\/2)}{\\omega}<br>&amp;&amp; \\text{Square of width }T\\text{, centered at }t=0 \\\\<br>H_0 (j \\omega) &amp;= e^{-j \\omega T\/2} \\frac{2 sin(\\omega T\/2)}{\\omega}<br>&amp;&amp; \\text{Square of width }T\\text{, delayed by }t=T\/2 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>If the effects of the Zero-Order hold are desired to be reversed, an ideal reconstruction filter $H_r(j \\omega)$ would be<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H_0(j \\omega) H_r(j \\omega) &amp;= 1 \\\\<br>H_r(j \\omega) &amp;= \\frac{1}{H_0(j \\omega)} \\\\<br>H_r(j \\omega) &amp;= \\frac{1}{e^{-j \\omega T\/2} \\frac{2 sin(\\omega T\/2)}{\\omega}} \\\\<br>H_r(j \\omega) &amp;= \\frac{e^{j \\omega T\/2}}{\\frac{2 sin(\\omega T\/2)}{\\omega}} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea07334&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea07334\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"838\" height=\"575\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204544768.png\" alt=\"\" class=\"wp-image-715\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204544768.png 838w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204544768-300x206.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220728204544768-768x527.png 768w\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"First-Order_HoldLinear_Interpolation\"><\/span>First-Order Hold\/Linear Interpolation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Consider $x_p(t)$, the series of impulses weighted by $x(t)$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_p(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) \\delta(t-nT) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea07b0b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea07b0b\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"231\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812140603075.png\" alt=\"\" class=\"wp-image-716\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812140603075.png 527w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812140603075-300x131.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>An interpolating filter $h(t)$ would then generate a recreated signal, $x_r(t)$ be described as<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br><br>x_r(t) &amp;= x_p(t) * h(t) \\\\<br><br>x_r(t) &amp;= \\left[ \\sum_{n=-\\infty}^{\\infty} x(nT) \\delta(t-nT) \\right] * h(t) \\\\<br><br>x_r(t) &amp;= [ \\cdots + x(-2T)\\delta(t+2T) + x(-T)\\delta(t+T) + x(0)\\delta(t) + \\\\<br>&amp;x(T)\\delta(t-T) + x(2T)\\delta(t-2T) + \\cdots] * h(t) \\\\<br><br>x_r(t) &amp;= \\cdots + x(-2T)h(t+2T) + x(-T)h(t+T) + x(0)h(t) + \\\\<br>&amp;x(T)h(t-T) + x(2T)h(t-2T) + \\cdots \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Alternatively, one can find more simply that<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t) &amp;= x_p(t) * h(t) \\\\<br>x_r(t) &amp;= \\left[ \\sum_{n=-\\infty}^{\\infty} x(nT) \\delta(t-nT) \\right] * h(t) \\\\<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) \\left[ \\delta(t-nT) * h(t) \\right] \\\\<br>x_r(t) &amp;= \\sum_{n=-\\infty}^{\\infty} x(nT) h(t-nT) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>If we confine our focus to the region between two impulses of $x_p(t)$, say at some $t_0$, we can make some conceptual simplifications to determine the interpolation function. Note that in this case, all impulses of $x_p(t)$ where $t &gt; t_0$ are weighted by the acausal side of $h(t)$ ($t &lt; 0$) whereas all the impulses of $x_p(t)$ where $t \\leq t_0$ are weighted by the causal half of $h(t)$ ($t \\geq 0$). Graphically, we can split $h(t)$ into two functions where<\/p>\n\n\n\n<p>$$ h(t) = h_{pre}(t) + h_{post}(t) $$<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea08306&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea08306\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"492\" height=\"706\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812141454499.png\" alt=\"\" class=\"wp-image-717\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812141454499.png 492w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812141454499-209x300.png 209w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Now with knowledge of what we want as the output, we can define the interpolation function. For example if we know that we want<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t_0) = x(t_0) &amp;&amp; { t_0 | t_0=nT, n \\in \\mathbb{Z}} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>then<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(0) &amp;= \\cdots + x(-2T)h(2T) + x(-T)h(T) + x(0)h(0) + \\\\<br>&amp;x(T)h(-T) + x(2T)h(-2T) + \\cdots \\\\<br>\\\\<br>&amp;= x(0)\\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>and<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(T) &amp;= \\cdots + x(-2T)h(T+2T) + x(-T)h(T+T) + x(0)h(T) + \\\\<br>&amp;x(T)h(T-T) + x(2T)h(T-2T) + \\cdots \\\\<br>&amp;= \\cdots + x(-2T)h(3T) + x(-T)h(2T) + x(0)h(T) + \\\\<br>&amp;x(T)h(0) + x(2T)h(-T) + \\cdots \\\\<br>&amp;= x(T)\\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>then to be agnostic of the input function, $x(t)$, we must set<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>h(0) = 1 \\\\<br><br>h(t) = 0 &amp;&amp; \\forall |t| \\geq T<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Now, let&#8217;s pick $t_0 \\in [0,T]$ and only look at this interval. In this case we can rewrite $x_r(t)$ as<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t_0) &amp;= \\cdots + x(-2T)h_{post}(t_0+2T) + x(-T)h_{post}(t_0+T) + x(0)h_{post}(t_0) + \\\\<br>&amp;x(T)h_{pre}(t_0-T) + x(2T)h_{pre}(t_0-2T) + \\cdots &amp;&amp; t_0 \\in [0,T] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Applying these constraints, $x_r(t)$ has many terms that become 0 and it simplifies to<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_r(t_0) &amp;= x(0)h_{post}(t_0) + x(T)h_{pre}(t_0-T) &amp;&amp; t_0 \\in [0,T] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Additionally, if we want $x_r(t_0)$ to resemble a line between the two samples (first-order hold\/linear interpolation), we set the equation of that line equal to $x_r(t)$ then solve for the impulse response function that makes that possible.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x(0)h_{post}(t_0) + x(T)h_{pre}(t_0-T) &amp;= x(0) + \\frac{x(T) &#8211; x(0)}{T} t_0 &amp;&amp; t_0 \\in [0,T] \\\\<br>x(0)h_{post}(t_0) + x(T)h_{pre}(t_0-T) &amp;= x(0) + \\frac{1}{T} x(T) t_0 &#8211; \\frac{1}{T}x(0) t_0 &amp;&amp; t_0 \\in [0,T] \\\\<br>x(0)h_{post}(t_0) + x(T)h_{pre}(t_0-T) &amp;= x(0)\\left[1 &#8211; \\frac{t_0}{T} \\right] + x(T) \\frac{t_0}{T} &amp;&amp; t_0 \\in [0,T] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>The impulse response function can then be isolated such that<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>h_{post}(t) = 1 &#8211; \\frac{t}{T} \\\\<br>h_{post}(t) = \\frac{T &#8211; t}{T} \\\\<br>\\\\<br>h_{pre}(t-T) = \\frac{t}{T} \\\\<br>h_{pre}(t) = \\frac{t+T}{T} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>and so the final impulse response is<\/p>\n\n\n\n<p>$$<br>h(t) = \\cases{<br>\\begin{align}<br>&amp;\\frac{t+T}{T} &amp;&amp;-T &lt; t &lt; 0 \\\\<br>&amp;\\frac{T-t}{T} &amp;&amp;0 \\leq t &lt; T \\\\<br>&amp;0 &amp;&amp;\\text{Otherwise} \\\\<br>\\end{align}<br>}<br>$$<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea08e6a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea08e6a\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"650\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124730054.png\" alt=\"\" class=\"wp-image-718\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124730054.png 901w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124730054-300x216.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220730124730054-768x554.png 768w\" sizes=\"auto, (max-width: 901px) 100vw, 901px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea09468&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea09468\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"133\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812150243682.png\" alt=\"\" class=\"wp-image-719\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812150243682.png 420w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220812150243682-300x95.png 300w\" sizes=\"auto, (max-width: 420px) 100vw, 420px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Note that the impulse response is acausal, but $h(t) = 0 \\;\\;\\; \\forall t &gt; T$, so one can effectively achieve linear interpolation with a latency of $T$.<\/p>\n\n\n\n<p>Transfer function is determined by taking derivatives<\/p>\n\n\n\n<p>$$<br>h'(t) = \\cases{<br>\\begin{align}<br>&amp;\\frac{1}{T} &amp;&amp;-T &lt; t &lt; 0 \\\\<br>&amp;\\frac{-1}{T} &amp;&amp;0 \\leq t &lt; T \\\\<br>&amp;0 &amp;&amp;\\text{Otherwise} \\\\<br>\\end{align}<br>}<br>$$<\/p>\n\n\n\n<p>$$<br>h&#8221;(t) = \\frac{1}{T} \\delta(t+T) &#8211; \\frac{2}{T} \\delta(t) + \\frac{1}{T} \\delta(t-T)<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H&#8221;(j \\omega) = \\frac{1}{T} e^{j \\omega T} &#8211; \\frac{2}{T} + \\frac{1}{T} e^{-j \\omega T} \\\\<br>H&#8221;(j \\omega) = \\frac{1}{T} \\left[ e^{j \\omega T} + e^{-j \\omega T} -2 \\right] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H(j \\omega) = \\frac{1}{(j \\omega)^2 T} \\left[2 \\cos(\\omega T) -2 \\right] &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = \\frac{2}{(j \\omega)^2 T} \\left[\\cos(\\omega T) &#8211; 1 \\right] &amp;&amp;\\omega \\neq 0 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Half Angle Formula<\/p>\n\n\n\n<p>$$<br>\\begin{array}{ll}<br>sin^2(x) = \\frac{1 &#8211; cos(2x)}{2} \\\\<br>2 sin^2(x) = 1 &#8211; cos(2x) \\\\<br>cos(2x) &#8211; 1 = &#8211; 2 sin^2(x)<br>\\end{array}<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>2x = \\omega T \\\\<br>x = \\frac{\\omega T}{2} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>H(j \\omega) = \\frac{2}{(j \\omega)^2 T} \\left[ -2 \\sin^2 \\left( \\frac{\\omega T}{2} \\right) \\right] &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = \\frac{-4 \\sin^2 (\\omega T\/2)}{(j \\omega)^2 T} &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = \\frac{1}{T} \\frac{4 \\sin^2 (\\omega T\/2)}{ \\omega^2} &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = \\frac{1}{T} \\frac{\\sin^2 (\\omega T\/2)}{ (\\omega \/ 2)^2} &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = T \\frac{\\sin^2 (\\omega T\/2)}{ (\\omega T \/ 2)^2} &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = T sinc^2 (\\omega T\/2) &amp;&amp;\\omega \\neq 0 \\\\<br>H(j \\omega) = \\frac{2 \\pi}{\\omega_s} sinc^2 \\left(\\pi \\frac{\\omega}{\\omega_s} \\right) &amp;&amp;\\omega \\neq 0 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d338ea09d15&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d338ea09d15\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"314\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220813222748661.png\" alt=\"\" class=\"wp-image-720\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220813222748661.png 995w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220813222748661-300x95.png 300w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/05\/image-20220813222748661-768x242.png 768w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The process described for sampling a signal is effectively reversed when going from discrete to continuous time, and we first focus on generating an idealized continuous time sampled signal (weighted pulses spaced by $T$) from the discrete time sampled signal (sequence in $n$). The continuous time sampled signal then can be fed through continuous time [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":169,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-782","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=782"}],"version-history":[{"count":31,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/782\/revisions"}],"predecessor-version":[{"id":870,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/782\/revisions\/870"}],"up":[{"embeddable":true,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/169"}],"wp:attachment":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}