{"id":273,"date":"2023-12-19T04:55:37","date_gmt":"2023-12-19T04:55:37","guid":{"rendered":"https:\/\/neilfoxman.com\/?page_id=273"},"modified":"2024-01-14T05:27:21","modified_gmt":"2024-01-14T05:27:21","slug":"discrete-systems","status":"publish","type":"page","link":"https:\/\/neilfoxman.com\/?page_id=273","title":{"rendered":"Discrete Systems"},"content":{"rendered":"\n<p>Discrete systems can generally be represented by an input signal $x[n]$ being modified to form an output signal $y[n] = f(x[n])$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"LTI_Systems\"><\/span>LTI Systems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>LTI, or Linear Time-Invariant systems have some desirable properties which are discussed in more detail below.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Linear\"><\/span>Linear<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Linear systems possess the superposition property.  That is, for $a, b \\in \\mathbb{C}$ we have<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a x_1[n] + b x_2[n] \\rightarrow a y_1[n] + b y_2[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Note that this implies $x(t) = 0 \\rightarrow y(t) = 0$. This &#8220;zero-in\/zero-out&#8221; property can be used to quickly prove if a system is nonlinear in some cases.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>As an example, let&#8217;s examine the system described by $y(t) = t x(t)$.  Summing scaled versions of $y[n]$ on the LHS:<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a y_1[n] + b y_2[n] &amp;= a \\{t x_1[n]\\} + b \\{t x_2[n]\\} \\\\<br>a y_1[n] + b y_2[n] &amp;= a t x_1[n] + b tx_2[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Now, summing scaled versions of $x[n]$ on the RHS and submitting the result as an input to the system yields<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>t\\{a x_1[n] + b x_2[n]\\} = a t x_1[n] + b tx_2[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Evaluating the RHS and LHS independently yields the same result, so the system is linear.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>On the other hand, we can look at the system described by $y[n] = x[n]^2$.  Summing scaled versions of $y[n]$ (LHS) we have<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a y_1[n] + b y_2[n] = a x_1[n]^2 + b x_2[n]^2 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>And summing scaled versions of $x[n]$ (RHS) and submitting the result as the input to the system yields<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\{a x_1[n] + b x_2[n]\\}^2 = a^2 x_1^2[n] + b^2 x_2^2[n] + 2 a b x_1[n] x_2[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>In this case, the LHS and RHS do not match, so the system is nonlinear.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Note that the linearity of a system is sometimes not intuitive.  Consider $y[n] = 2 x[n] + 3$.  Summing scaled versions of $y[n]$ we have<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a y_1[n] + b y_2[n] &amp;= a \\{2 x_1[n] + 3\\} + b \\{2 x_2[n] + 3\\} \\\\<br>a y_1[n] + b y_2[n] &amp;= 2 a x_1[n] + 2 b x_2[n] + 3(a+b) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>and summing scaled versions of $x[n]$ and feeding the result as an input yields<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>2[a x_1[n] + b x_2[n]] + 3 &amp;= 2 a x_1[n] + 2 b x_2[n] + 3 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Note that the results do not match, so this system is nonlinear. Note that even though the equation is linear, the system is not. Also upon inspection, this system has a &#8220;zero-input response&#8221; of $y_0 = 3$<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>A simple system is represented by $y[n] = 2 x[n]$.  Linear combination of $y[n]$ yields<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a y_1[n] + b y_2[n] = a \\{2 x_1[n]\\} + b \\{2 x_2[n]\\} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>and linear combination of $x[n]$ as an input yields<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>2\\{a x_1[n] + b x_2[n]\\} = 2 a x_1[n] + 2 b x_2[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>These results do indeed match, so the system is linear.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Time_Invariant\"><\/span>Time Invariant<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A system is Time Invariant if its characteristics remain unchanged over time. In other words, a time invariant system yields identical results if the same input is run today vs tomorrow.<\/p>\n\n\n\n<p>More formally, if a time shift in the input signal generates an identical time shift in the output, then the system is time invariant.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n &#8211; n_0] \\rightarrow y[n-n_0] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Consider $y[n] = \\sin(x[n])$.  For easier bookkeeping, let&#8217;s define<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y_1[n] = \\sin(x_1[n]) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Introducing a time shift to the input may be represented by<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x_2[n] = x_1[n &#8211; n_0] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>and the output generated when $x_2$ is the input is then<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y_2[n] &amp;= \\sin(x_2[n]) \\\\<br>y_2[n] &amp;= \\sin(x_1[n-n_0]) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Alternately, if we just introduce a time shift to the original output, $y_1[n]$, we have<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y_1[n-n_0] &amp;= \\sin(x_1[n-n_0]) \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>which is the same as $y_2$ which was generated from a time shifted input.  Thus, the time shifted output and time shifted input fed through the system yield the same result, therefore, the system is time invariant.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Now consider the system described by $y[n] = x[2n]$ that represents a time compression of the input signal $x[n]$. I originally attempted to apply some mathematical rigor to the proof, but the counterexample is much easier.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d31fb92e100&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d31fb92e100\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"821\" height=\"975\" 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\/01\/image.png\" alt=\"\" class=\"wp-image-314\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image.png 821w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-253x300.png 253w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-768x912.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><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>Consider the input signal $x_1(t)$ above.  When fed through the system it generates $y_1(t)$, a version compressed around $t=0$.<\/p>\n\n\n\n<p>A shifted input signal $x_2(t) = x_1(t-t_0)$ will produce $y_2(t)$ when compressed.  Note that this does not reflect a time shifted version of $y_1(t)$, so the system is not time invariant.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Convolution_and_LTI_Systems\"><\/span>Convolution and LTI Systems<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Imagine an impulse centered at $n=k$ represented by $\\delta[n-k]$.  Assume the system&#8217;s response as this impulse is fed through the system is then represented by<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\delta[n-k] \\rightarrow h_k[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>If the system is linear, then scaling the impulse at the input yields a correspondingly scaled version of the output.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>a \\delta[n-k] \\rightarrow a h_k[n] &amp;&amp; \\text{Linear System}\\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Now, <a href=\"https:\/\/neilfoxman.com\/?page_id=251\" data-type=\"link\" data-id=\"https:\/\/neilfoxman.com\/?page_id=251\">recall<\/a> the Sampling Property of signals<\/p>\n\n\n\n<p>$$<br>x[n] \\delta[n &#8211; n_0] = x[n_0] \\delta[n &#8211; n_0]<br>$$<\/p>\n\n\n\n<p>and the corresponding Sifting Property<\/p>\n\n\n\n<p>\\begin{align}<br>x[n] &amp;= \\sum_{k = -\\infty}^{\\infty} x[k] \\delta[n-k] \\\\<br>\\end{align}<\/p>\n\n\n\n<p>Note that the Sifting Property allows us to represent any signal $x[n]$ as a sum of scaled impulses.  If the system is linear, then the superposition property allows us to then determine the output as a sum of scaled $h_k[n]$ at each $n$.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n] = \\sum_{k = -\\infty}^{\\infty} x[k] \\delta[n-k] \\rightarrow y[n] = \\sum_{k=-\\infty}^{\\infty} x[k] h_k[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Additionally, if the system is time invariant, then we can also assume h_k[n] does not change with each k. If an impulse centered at time $n=0$, $\\delta[n]$, causes a time invariant response, $h[n] = h[n]$, then when the input is shifted and scaled, we would also expect to see an identical shift in the response i.e.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\delta[n] &amp;\\rightarrow h[n] \\\\<br>x[0]\\delta[n] &amp;\\rightarrow x[0]h[n] \\\\<br>x[k]\\delta[n-k] &amp;\\rightarrow x[k]h[n-k] \\\\<br>x[n] = \\sum_{k = -\\infty}^{\\infty} x[k] \\delta[n-k] &amp;\\rightarrow y[n] = \\sum_{k=-\\infty}^{\\infty} x[k] h[n-k] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>This is called the convolution sum which is also represented as<\/p>\n\n\n\n<p>$$y[n] = x[n] * h[n]$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Convolution\"><\/span>Convolution<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perspective_1_n-domain\"><\/span>Perspective 1: n-domain<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>We have generally outlined the n-domain perspective of the convolution sum above, but will rewrite it with visual aids here:<\/p>\n\n\n\n<p>The output of an LTI system with impulse response $h[n]$ at time $n_0$ is a summation of all the $h[n]$&#8217;s scaled by each value of $x[n]$ for all time, then the result is evaluated at a specific $n_0$. This perspective can be conceptualized by adding all the scaled $h[n]$&#8217;s along the n-axis.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d31fb92ecca&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d31fb92ecca\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"408\" height=\"867\" 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\/01\/image-20220117151607010.png\" alt=\"\" class=\"wp-image-337\" style=\"width:332px;height:auto\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-20220117151607010.png 408w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-20220117151607010-141x300.png 141w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><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<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perspective_2_k-domain\"><\/span>Perspective 2: k-domain<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The k-domain perspective can be visualized by imagining the profiles of $x[k]$ and $h[k]$ along the $k$ axis.<\/p>\n\n\n\n<p>$$<br>y[n] = \\sum_{k=-\\infty}^{\\infty} x[k] h[n-k]<br>$$<\/p>\n\n\n\n<p>Note that the function $h$ can be interpreted as a shifted and scaled version of itself. $h[n-k]$ can then be conceptualized in one of the following equivalent ways:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>$h[k]$ shifted forward in time by $n$, then flipped about $k=0$ (more ubiquitous shift\/scale algorithm, but possibly less intuitive)<\/li>\n\n\n\n<li>Mirroring $h[k]$ about $k=0$, then delaying the signal by $n$. (Move the $k=0$ position of a flipped $h[k]$ profile ($h[-k]$) to the $k=n$ position).<\/li>\n<\/ol>\n\n\n\n<p>When $h[n-k]$ is conceptualized in this fashion, the convolution sum is realized using the following steps.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Fix $x[k]$ in space along the k axis.<\/li>\n\n\n\n<li>Start with $n=-\\infty$ (we will shift the $h[-k]$ all the way to the left at first)<\/li>\n\n\n\n<li>Flip $h[k]$ at $k=0$, then shift the $h[-k]$ profile from the $k=0$ position to the $k=n$ position.<\/li>\n\n\n\n<li>At each $k$, multiply the $x$ and $h$ profiles at that spot. The resulting profile is $x[k] h[n-k]$ and note that it is only nonzero in locations that both $x[n]$ and $h[n-k]$ are nonzero.<\/li>\n\n\n\n<li>Add together all the resulting products (sum profile over all time from $-\\infty$ to $\\infty$), and that becomes your value for the final $y[n]$<\/li>\n\n\n\n<li>Increment n by 1 and repeat the process from step 3.<\/li>\n<\/ol>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69d31fb92f505&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69d31fb92f505\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"819\" 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\/01\/image-20220117152129185.png\" alt=\"\" class=\"wp-image-341\" style=\"width:368px;height:auto\" srcset=\"https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-20220117152129185.png 553w, https:\/\/neilfoxman.com\/wp-content\/uploads\/2024\/01\/image-20220117152129185-203x300.png 203w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><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>This perspective can also be justified in the following way:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Assume that when $h[-k]$ is shifted from left to right, the rightmost value of $h[-k]$ overlaps with the leftmost value of $x[k]$ at $k = n_0$. This corresponds to the case when the first scaled impulse of $x[n]$ (using the sifting property) begins creating its scaled input response. The scaled response becomes $y[n]$. Note that if the leftmost nonzero value of $h[k]$ is not at $k=0$, then this result does not get placed at $y[n_0]$.<\/li>\n\n\n\n<li>At time $n_0 + 1$, the response of $h[-k]$ is again shifted by 1 to the right. This corresponds to the case when the second leftmost value of $x[k]$ begins creating its first scaled input response (it is multiplied by the rightmost value of $h[-k]$. However, the scaled impulse back at the leftmost value of $x[k]$ would be multiplied by the next value of the shifted $h[-k]$ because its nonzero impulse response time has incremented by 1. Both results from the first and second leftmost scaled impulses are added to generate the net result, $y[n + 1]$.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Convolution_Properties\"><\/span>Convolution Properties<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Commutative_Property\"><\/span>Commutative Property<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>$$<br>x[n] * h[n] = h[n] * x[n]<br>$$<\/p>\n\n\n\n<p>Explanation:<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n] * h[n] = \\sum_{k=-\\infty}^{\\infty} x[k] h[n &#8211; k] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Substitute $r = n-k \\implies k = n &#8211; r$<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n] * h[n] &amp;= \\sum_{r=\\infty}^{-\\infty} x[n-r] h[r] \\\\<br>x[n] * h[n] &amp;= \\sum_{r=-\\infty}^{\\infty} h[r] x[n-r] \\\\<br>x[n] * h[n] &amp;= h[n] * x[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Distributive_Property\"><\/span>Distributive Property<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n] * (h_1[n] + h_2[n]) = x[n] * h_1[n] + x[n] * h_2[n] \\\\<br>(x_1[n] + x_2[n]) * h[n] = x_1[n] * h[n] + x_2[n] * h[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Associative_Property\"><\/span>Associative Property<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>$$<br>\\begin{align}<br>x[n] * (h_1[n] * h_2[n]) = (x_1[n] * h_1[n]) * h_2[n]<br>\\end{align}<br>$$<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Impulse_Response_vs_Step_Response\"><\/span>Impulse Response vs. Step Response<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>The step response can be directly determined from the impulse response.  Assume $s[n]$ is output when $x[n] = u[n]$.  From the commutative property<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>s[n] &amp;= u[n] * h[n] \\\\<br>s[n] &amp;= h[n] * u[n] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Note that convolving any signal with $u[n]$ is the same as an accumulator. On the k axis, each value of $h[k]$ before $k=n$ is multiplied by 1 and summed.  Therefore, the step response is<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>s[n] &amp;= \\sum_{k=-\\infty}^{n} h[k] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Conversely, an impulse can be derived from step signals by<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\delta[n] = u[n] &#8211; u[n-1] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Therefore, the step response can also be used to determine $h[n]$ if it is unknown.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\delta[n] * h[n] &amp;= (u[n] &#8211; u[n-1]) * h[n] \\\\<br>h[n] &amp;= s[n] &#8211; s[n-1] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>This allows us to ultimately characterize any system by the step response.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Other_System_Properties\"><\/span>Other System Properties<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Memory\"><\/span>Memory<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>A Memoryless system generates an output signal $y[n]$ from the input signal $x[n]$ and is only dependent on signal information at the same time step, $n$.  Some examples of memoryless systems are<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y[n] &amp;= (2x[n] &#8211; x^2[n])^2 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>An examples of a signal with memory is an accumulator<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y[n] &amp;= \\sum_{k=-\\infty}^n x[k] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Invertibility\"><\/span>Invertibility<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>If a system is invertible, there exists an inverse system such that when the original system is cascaded with the inverse system, the output is the same as the input.  In other words, a system is invertible if distinct inputs lead to distinct outputs, and there is a one-to-one correspondence.<\/p>\n\n\n\n<p>If LTI system has impulse response $h[n]$,<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\exists h_i[n] : h[n] * h_i[n] = \\delta[n] \\implies h[n] \\text{ is invertible} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Ex: Scaled output<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y(t) &amp;= 2 x(t) \\\\<br>h[n] &amp;= 2 \\\\<br>h_i[n] &amp;= \\frac{1}{2} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Ex: Accumulator<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y[n] &amp;= \\sum_{k=-\\infty}^n x[k] \\\\<br>h[n] = u[n] \\\\<br>h_i[n] = \\delta[n] &#8211; \\delta[n-1] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Ex: Time Shift<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y[n] = x[n-n_0] \\\\<br>h[n] = \\delta[n-n_0] \\\\<br>h_i[n] = \\delta[n+n_0] \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p><strong>Noninvertible<\/strong> Systems &#8211; Multiple inputs yield same output<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>y[n] = x^2[n]<br>\\end{align}<br>$$<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Causality\"><\/span>Causality<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Output only depends on present and past inputs.  All memoryless systems are causal.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\forall n &lt; 0, h[n] = 0 \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Stability\"><\/span>Stability<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Suppose input is bounded such that $|x(t)| &lt; B_x$.<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>\\forall n \\in \\mathbb{Z}, |x| &lt; B_x, \\exists B_y : |y[n]| &lt; B_y \\implies \\text{ System is Stable}<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>In general, a system is unstable if small inputs yield diverging response.<\/p>\n\n\n\n<p>If the system is LTI, we may further describe stability:<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>|y(t)| &amp;= \\left| \\int_{-\\infty}^{\\infty} x(\\tau) h(t-\\tau) d\\tau \\right| \\\\<br>|y(t)| &amp;= \\left| \\int_{-\\infty}^{\\infty} h(\\tau) x(t-\\tau) d\\tau \\right| \\\\<br>|y(t)| &amp;= \\int_{-\\infty}^{\\infty} |h(\\tau)| |x(t-\\tau)| d\\tau \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>A bounded input suggests<\/p>\n\n\n\n<p>$$<br>\\begin{align}<br>&amp;|y(t)| \\leq |B_x| \\int_{-\\infty}^{\\infty} |h(\\tau)| d\\tau \\\\<br>\\\\<br>&amp;\\int_{-\\infty}^{\\infty} |h(\\tau)| d\\tau &lt; B_y \\implies \\\\<br>&amp;\\text{ System is &#8220;Absolutely Integrable&#8221;} \\implies \\\\<br>&amp;\\text{ System is Stable} \\\\<br>\\end{align}<br>$$<\/p>\n\n\n\n<p>Ex: Pendulum vs. inverted pendulum<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discrete systems can generally be represented by an input signal $x[n]$ being modified to form an output signal $y[n] = f(x[n])$ LTI Systems LTI, or Linear Time-Invariant systems have some desirable properties which are discussed in more detail below. Linear Linear systems possess the superposition property. That is, for $a, b \\in \\mathbb{C}$ we have [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":251,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-273","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/273","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=273"}],"version-history":[{"count":67,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/273\/revisions"}],"predecessor-version":[{"id":359,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/273\/revisions\/359"}],"up":[{"embeddable":true,"href":"https:\/\/neilfoxman.com\/index.php?rest_route=\/wp\/v2\/pages\/251"}],"wp:attachment":[{"href":"https:\/\/neilfoxman.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}