User Tools

Site Tools


ecen_380_matlab_assignments

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ecen_380_matlab_assignments [2015/09/04 09:13]
petersen created
— (current)
Line 1: Line 1:
-^ Chapter ^ Modulo ​                                                   ^  Course Topic                   ^ MATLAB Topic                                                                                                                                                                  ^  created ​ ^        ​ 
-| Ch 1    | [[ecen_380_assignments#​MT380.UY1 | MT380.UY1 ]]           | Signals ​                        ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY1.1.1 | MT380.UY1.1.1 ]]   | Types of Signals ​               |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY1.2.1 | MT380.UY1.2.1 ]]   | Signal Transformations ​         | [[matlab_guide#​Array Operations| Array Operations]],​[[matlab_guide#​Graph Function| plot]] ,​[[matlab_guide#​Annotation| Graph Annotation]] ,​[[matlab_guide#​Figures| Figures]] ​  ​| ​   yes          | 
-| :::     | [[ecen_380_assignments#​MT380.UY1.3.1 | MT380.UY1.3.1 ]]   | Waveform Properties ​            ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY1.4.1 | MT380.UY1.4.1 ]]   | Nonperiodic Waveforms ​          ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY1.5.1 | MT380.UY1.5.1 ]]   | Signal Power and Energy ​        ​| ​                                                                                                                                                               sum            |     ​yes ​        | 
-| Ch 2    | [[ecen_380_assignments#​MT380.UY2 | MT380.UY2 ]]           | LTI Systems ​                    ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.1.1 | MT380.UY2.1.1 ]]   | LTI Systems ​                    ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.2.1 | MT380.UY2.2.1 ]]   | Impulse Response ​               |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.3.0 | MT380.UY2.3.0 ]]   | Convolution ​ Aid                |                                                                                                                                                                               ​| ​   yes          | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.3.1 | MT380.UY2.3.1 ]]   | Convolution with function files |  [[matlab_guide#​Function Files| Function Files]], [[matlab_guide#​For-loop| For-loop]] ​                                                                                        ​| ​   yes          | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.3.1 | MT380.UY2.3.2 ]]   | Convolution with arrays ​        ​| ​  ​[[matlab_guide#​For-loop| For-loop]], [[matlab_guide#​Ones and Zeros| Zeros]] ​                                                                                                ​| ​   yes          | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.4.1 | MT380.UY2.4.1 ]]   | Graphical Convolution ​          ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.5.1 | MT380.UY2.5.1 ]]   | Convolution Properties ​         |   ​Review ​                                                                                                                                                                     |    yes          | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.6.1 | MT380.UY2.6.1 ]]   | Causality & BIBO Stability ​     |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.7.1 | MT380.UY2.7.1 ]]   | LTI Sinusoidal Response ​        ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.8.0 | MT380.UY2.8.0 ]]   | Imp.Resp. of 2nd Ord LCCDEs Aid |                                                                                                                                                                               ​| ​    ​yes ​        | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.8.1 | MT380.UY2.8.1 ]]   | Imp.Resp. of 2nd Ord LCCDEs ​    ​| ​   [[matlab_guide#​Roots| Roots]] ​                                                                                                                                             |     ​yes ​        | 
-| :::     | [[ecen_380_assignments#​MT380.UY2.9.1 | MT380.UY2.9.1 ]]   | Car Suspension ​                 |    Review ​            ​ | ​     yes        | 
-| Ch 3    | [[ecen_380_assignments#​MT380.UY3 | MT380.UY3 ]]           | Laplace Transform ​              ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.0 | MT380.UY3.0 ]]       | Laplace Transform Aid           ​| ​                                                                                                                                                                              ​| ​     yes        | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.1.1 ​ | MT380.UY3.1.1 ]]  | Def. of the (Uni) L-Transform ​  ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.2.1 ​ | MT380.UY3.2.1 ]]  | Poles and Zeros                 ​| ​   [[matlab_guide#​Mesh| Mesh]] ​                                    ​  ​   |      yes        | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.3.1 ​ | MT380.UY3.3.1 ]]  | Properties of the L-Transform ​  ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.4.1 ​ | MT380.UY3.4.1 ]]  | Circuit Analysis Example ​       |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.5.1 ​ | MT380.UY3.5.1 ]]  | Partial Fraction Expansion ​     |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.6.1 ​ | MT380.UY3.6.1 ]]  | Transfer Function ​              ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.7.1 ​ | MT380.UY3.7.1 ]]  | Poles and System Stability ​     |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY3.8.1 ​ | MT380.UY3.8.1 ]]  | Invertible Systems ​             |                                                                                                                                                                               ​| ​                | 
-| Ch 4    | [[ecen_380_assignments#​MT380.UY4 | MT380.UY4 ]]           | App. of the L-Transform ​        ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY4.1.1 ​ | MT380.UY4.1.1 ]]  | s-Domain Circuit Elem. Models ​  ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY4.2.1 ​ | MT380.UY4.2.1 ]]  | s-Domain Circuit Analysis ​      ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY4.5.1 ​ | MT380.UY4.5.1 ]]  | Op-Amp Circuits ​                ​| ​  ​Review ​                                                                                                                                                                     |     ​yes ​        | 
-| Ch 5    | [[ecen_380_assignments#​MT380.UY5 | MT380.UY5 ]]           | Fourier Analysis Techniques ​    ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.4.1 | MT380.UY5.4.1 ]]   | Fourier Series Coefficients ​    ​| ​  ​[[matlab_guide#​For-loop| For-loop]] ​                                                                                                                                        ​| ​       yes      | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.7.1 | MT380.UY5.7.1 ]]   | Fourier Transform ​              ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.8.1 | MT380.UY5.8.1 ]]   | Fourier Transform Properties ​   |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.9.1 | MT380.UY5.9.1 ]]   | Parseval'​s Thrm for Fourier T.  |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.10.1 | MT380.UY5.10.1 ]] | Additional Attributes ​          ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.11.1 | MT380.UY5.11.1 ]] | Phasor v. Laplace v. Fourier ​   |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.12.1 | MT380.UY5.12.1 ]] | Circuit Analysis with Fourier ​  ​| ​  ​Review ​                                                                                                                                                                     |       ​yes ​      | 
-| :::     | [[ecen_380_assignments#​MT380.UY5.13.1 | MT380.UY5.13.1 ]] | The Importance of Phase Info.   ​| ​                                                                                                                                                                              ​| ​                | 
-| Ch 6    | [[ecen_380_assignments#​MT380.UY6 | MT380.UY6 ]]           | Apps of the Fourier Trans. ​     |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY6.1.1 | MT380.UY6.1.1 ]]   | Signal Filtering ​               |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY6.3.1 | MT380.UY6.3.1 ]]   | Active Filters ​                 |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY6.8.1 | MT380.UY6.8.1 ]]   | Butterworth Filters ​            ​| ​ Review ​                                                                                                                                                                      ​| ​   yes          | 
-|    :::  | [[ecen_380_assignments#​MT380.UY6.12.1 | MT380.UY6.12.1 ]] | Sampling Theorem ​               |  [[matlab_guide#​fopen| fopen]],​[[matlab_guide#​fscanf| fscanf]],​[[matlab_guide#​fclose| fclose]], [[matlab_guide#​interp| Interpolate]],​[[matlab_guide#​sound| sound]] ​           |    yes          | 
-| Ch 7    | [[ecen_380_assignments#​MT380.UY7 | MT380.UY7 ]]           | Discrete-Time Signals and Syst  |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.1.1 | MT380.UY7.1.1 ]]   | Discrete Notation and Property ​ |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.2.1 | MT380.UY7.2.1 ]]   | D-Time Signal Functions ​        ​| ​  ​rat ​                                                                                                                                                                        ​| ​      ​yes ​      | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.3.1 | MT380.UY7.3.1 ]]   | D-Time LTI Systems ​             |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.4.1 | MT380.UY7.4.1 ]]   | Properties of D-T LTI Sys.      |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.5.1 | MT380.UY7.5.1 ]]   | D-Time Convolution ​             |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.6.1 | MT380.UY7.6.1 ]]   | Z-Transform ​                    ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.7.1 | MT380.UY7.7.1 ]]   | Properties of Z-Transform ​      ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.8.1 | MT380.UY7.8.1 ]]   | Inverse Z-Transform ​            ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.9.1 | MT380.UY7.9.1 ]]   | Solving Diff Eq. with Int. Cond.| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.10.1 | MT380.UY7.10.1 ]] | System Transfer Function ​       |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.11.1 | MT380.UY7.11.1 ]] | BIBO Stability ​                 |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.12.1 | MT380.UY7.12.1 ]] | System Frequency Response ​      ​| ​                                                                                                                                                                              ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.13.1 | MT380.UY7.13.1 ]] | D-Time Fourier Series ​          ​| ​ Review ​                                                                                                                                                                      ​| ​    ​yes ​        | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.14.1 | MT380.UY7.14.1 ]] | D-Time Fourier Transform ​       |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.15.1 | MT380.UY7.15.1 ]] | Discrete Fourier Transform ​     |                                                                                                                                                                               ​| ​                | 
-| :::     | [[ecen_380_assignments#​MT380.UY7.16.1 | MT380.UY7.16.1 ]] | Fast Fourier Transform ​         |                                                                                                                                                                               ​| ​                | 
  
- 
-===== Signal Transformation ===== 
- 
-==== MT380.UY1.2.1 ====  
- 
-== Discription == 
- 
-<​file>​ 
- ​Signal Transformations 
- 
- ​Objective:​ Help student gain a visual understanding of several basic 
- ​signal transformations. 
- 
- ​Commands:​ array operations, plot, labels, figure. 
- 
- ​Background Information:​ In MATLAB and other programming environments 
- ​continuous signals cannot be represented by vectors or arrays, since 
- these are inherently discrete. However, it is possible to approximate a 
- ​continuous signal by taking samples of the signal, where the time 
- ​interval between samples is small enough that the signal exhibits only 
- small changes in amplitude between adjacent samples. ​ For example, 
- ​consider the signal x(t) = exp(-0.5*t)*u(t). ​ This signal "turns on" 
- at t = 0, and then exponentially decays towards 0 with an initial slope 
- of -0.5 (at t = 0).  Given this initial slope, the time interval between 
- ​samples should be significantly less than 0.5.  A nice choice might be 
- 100 times smaller, although this will clearly depend on the application. 
- 
- ​Exercise:​ Consider the signal x(t) = sin(2*pi/​4*t). 
- 
- This is a continuous signal, "​turning on" at time t = negative infinity and  
- ​continuing towards t = positive infinity. ​ Clearly we can't plot this signal ​ 
- for all time in Matlab. ​ In this exercise, you should limit 
- your time axis from -6 s to 6 s, and use a sampling period (interval 
- ​between time points) of 0.01 s. 
- 
- ​First,​ set up a vector t holding your time values, and create the signal 
- x(t) = sin(2*pi/​4*t). ​ This can be done with the following code: 
- 
-   ​t_start = -6; 
-   t_end = 6; 
-   ​t_interval = 0.01; 
- 
-   t = t_start:​t_interval:​t_end;​ 
- 
-   x = sin(2*pi/​4*t);​ 
- 
- 
- Then do the following: 
- 
-   (1) Plot the signal x(t) 
- 
-   (2) Create the following transformations of the signal x(t), and 
-       plot each of them in the same figure but different plots using 
-       the subplot command: 
- 
-       (a) y1(t) = x(2*t) 
-       (b) y2(t) = x(0.5*t) 
-       (c) y3(t) = x(t-1) 
-       (d) y4(t) = x(-t) 
-       (e) y5(t) = x(4-2*t) 
- 
-       Give each plot a title to distinguish the original signal from its 
-       ​transformations. 
- 
-   (3) Answer the following questions: 
- 
-       (a) Explain the behavior you observe in 2(a) and 2(b). 
-       (b) Explain in words how the signal x(t) is transformed in 2(e). 
-  
-</​file>​ 
- 
-== Solution Image == 
- 
-{{:​380matlab:​ch1:​ul_1_2_si_signaltransformationssolutionimage.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch1:​ul_1_2_signaltransformations.m|}} 
- 
-</​ifauth>​ 
- 
- 
-===== Signal Power and Energy ===== 
- 
-==== MT380.UY1.5.1 ==== 
-==Description == 
- 
-<​file>​ 
- ​Signal Power and Energy 
- 
- ​Objective:​ Help students gain a better understanding of the relation 
- ​between frequency, total energy, and average power for sinusoidal signals 
- of limited time duration. 
- 
- ​Commands:​ sum  
- 
- ​Exercise:​ For this exercise use the function x(t) = cos(2*pi*f*t)(u(t) - u(t-6)); with t 
- ​representing time, and f representing frequency in hz.  
- a) Create four signals with different frequencies,​ f = [1 10 50 1000]. 
-     ex, y1 = cos(2*pi*f(1)*t)(u(t) - u(t-6)) 
- b) Use the sum command to calculate the total energy and average power of 
-     each signal. 
- c) Create two plots that graph frequency vs total energy ​ 
-     and frequency vs average power 
- d) What impact does frequency have on the total energy and average power 
-    of a sinusoidal signal? 
-</​file>​ 
-==Solution Image == 
- 
-{{:​380matlab:​ch1:​uy_1_5_1_si1_poweravgsolutionimage1.jpg?​400|}} 
- 
-{{:​380matlab:​ch1:​uy_1_5_1_si2_poweravgsolutionimage2.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch1:​uy_1_5_1_poweravg.m|}} 
- 
-</​ifauth>​ 
- 
- 
-===== Convolution Aid ===== 
- 
-==== MT380.UY2.3.0 ==== 
- 
-A document to help gain an intuition behind convolution. 
-{{:​380matlab:​ch2:​convolutionguide.docx|}} 
- 
-The file below work together to create a MATLAB gui that simulates convolution 
- 
-Please do not modify the following two files. \\  
-{{:​380matlab:​ch2:​convolutiongui.m|}} \\  
-{{:​380matlab:​ch2:​convolutiongui.fig|}} \\  
- 
-You can modify the following three function files to change your signals x(t) and h(t) \\  
-{{:​380matlab:​ch2:​x_t_gui.m|}} ​ This file modifies the signal x(t) \\  
-{{:​380matlab:​ch2:​h_t_gui.m|}} ​ This file modifies the signal h(t) \\  
-{{:​380matlab:​ch2:​time_parameters_gui.m|}} This file returns the time parameters used for x(t) and h(t) \\  
- 
-===== Convolution ===== 
- 
-==== MT380.UY2.3.1 ====  
- 
-<​file>​ 
- ​MT380_UY2_3_1_Convolution Function File 
- 
- ​Objective:​ Create a function file in matlab that can approximate 
- ​continuous time convolution. 
- 
- ​Commands:​ function file. 
- 
- ​Background Information:​ The convolution formula is  
- y(t) = integral (x(tau)*h(t-tau)dtau,​ 0, t). To implement convolution 
- using MATLAB we will have to approximate it since t cannot be continuous. 
- 
- ​Exercise:​ You will create three different function files. One function 
- file will contain a function for x(t), another for h(t), and the last 
- ​function file will be your convolution function file. The parameters for 
- the function files of x(t) and h(t) should only have one parameter for 
- time (s). 
- The headers for the two function files should look something like the ones below. 
- ​function [x] = x_t(t) 
- ​function [h] = h_t(t) 
- They take in one value representing one instance in time, and return only 
- ​value;​ the function evaluated at one value of t. 
- 
- The convolution function file header should look like the one below. 
- ​function [y] = convolution(t_array,​ dtau) 
- This function will take in an entire array representing time, and dtau 
- which represents the time step between values of tau and call the 
- ​functions x_t and h_t in order to perform the convolution integral. ​ 
- 
- Once you have created the three function files put the following function 
- in both function files x_t and h_t. 
- if t < 0 || t > 4 
-     x = 0; 
- else 
-     x = 1; 
- end 
- ​Convolve them together using the convolution function file that you created 
- by creating an appropriate time array and an appropriate value of dtau.  
- graph it and verify that the graph matches what you expect x_t*h_t to be. 
-</​file>​ 
- 
-== Solution Image == 
- 
-{{:​380matlab:​ch2:​mt380_uy2_3_1_si_convolutionffsolutionimage.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch2:​h_t.m|}} \\  
-{{:​380matlab:​ch2:​x_t.m|}} \\  
-{{:​380matlab:​ch2:​mt380_uy2_3_1_convolutionff.m|}} ​ \\ 
- 
-</​ifauth>​ 
- 
-===== Convolution ===== 
- 
-==== MT380.UY2.3.2 ====  
- 
-<​file>​ 
- ​MT380.UY2.3.2 Convolution of two arrays 
- 
-Objective: Understand the mechanics of convolution in order to create a 
-function that will approximate continuous time convolution. 
- 
-Commands: for-loop, zeros, functions 
- 
- ​Exercise:​ Create a function that can approximate continuous convolution. 
- The functions parameters should consist of two arrays representing signals, ​ 
- x(t) and h(t), and a time_interval that represents the time increments in an array that 
- ​represents time. ex: t = 0:​time_interval:​5. Your time interval will serve 
- as dtau in y(t) = integral (x(tau)*h(t-tau)dtau,​ -inf, +inf). ​ 
- The function declaration should look like 
- ​function [y] = convolution(x,​ h, time_interval). 
- with x, and h representing two signals. 
-          a) To test your function let x(t) = h(t) = u(t)-u(t-4) and convolve the 
-             two signals together. 
-          b) Plot the computed signal. ​ 
- 
- 
- 
- Some helpful information is below. 
- 
- ​Convolution is defined as  
- y(t) = integral (x(tau)*h(t-tau)dtau,​ -inf, +inf) 
- ​Working with causal signals, convolution can be rewritten as 
- y(t) = integral (x(tau)*h(t-tau)dtau,​ 0, t) with 0 being the lower bound 
- of integration and t being the upper bound of integration. ​ 
- 
- In order to do Convolution in MATLAB the formula has to change since 
- ​MATLAB can only approximate a continuous signal. Time is lost and is 
- ​replaced by indexing. 
- For example consider the code: 
- t= 0:​.1:​1-.1; ​         t(s) = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9]; 
- x = sin(pi/​0.2*t); ​       x = [0  1  0  1  0  1  0  1  0  1] 
- ​sin(pi/​o.2*t(2)) = x(2) 
- 
- 
- To visually demonstrate this consider the two arrays below. ​ 
- let t = [0 1 2 3 ] then t(1) represents 0s 
- let x(t) = [1 2 3 4] then x(1) = 1 at t = 0s 
- let h(t) = [3 2 1 0] then h(4) = 0 at t = 3s 
- let y(t) = [3 8 14 20 11 4 0] then y(1) = 3 at t = 0s 
- 
- ​Because indexing in MATLAB begins with 1 instead of 0, the convolution 
- ​formula needs to be adapted for proper indexing. ​ 
- ​y(index) = integral (x(tau)*h(index-tau)dtau,​ 1, index) 
- tau cannot start at 0 since x(0) does not exist in MATLAB. This means 
- that tau must start at 1. However, that creates a problem since both 
- index and tau starts at 1. Thus h( (index = 1) - (tau =1 ) ) = h(0) is out of 
- ​range. To fix this, the equation needs to be adapted even further. 
- ​y(index) = integral (x(tau)*h(index+1 - tau)dtau, 1, index) 
- 
- Below is an example of this equation. Assume that dtau = 1. 
- 
- 
- at index < 1    y(index <1) = integral (x(tau)*h(index+1<​2-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau] ​                         |  1    2    3    4 
- ​h[index-tau] ​         1   ​2 ​  3 |  
- ​------------------------------------------------------------- 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- ​During this period, the two signals do not come in contact with 
- each other, thus y[index <1] must be zero. This is the property of a causal 
- ​signal convolved with a causal system. 
- 
- at index = 1  y(1) = integral (x(tau)*h(2-tau)dtau,​ 1, index) 
-                           | 
-                           | 
- ​x[tau] ​                   |  1    2    3    4 
- ​h[index-tau] ​       1   2 |  3  ​ 
- ​------------------------------------------------------------- 
- ​tau ​       -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 1, and with tau ranging from 1 to index, the two signals only 
- have non-zero values at tau = 1. This indicates that y(1) = 1*3. 
- 
- at index = 2   y(2) = integral (x(tau)*h(3-tau)dtau,​ 1, index) 
-                              | 
-                              | 
- ​x[tau] ​                      ​| ​ 1    2    3    4 
- ​h[t-tau] ​                  1 |  2    3    
- ​------------------------------------------------------------- 
- ​tau ​          ​-3 ​ -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 2, and with tau ranging from 1 to index, the two signals both have non-zero 
- ​values when tau = 1, and 2. This indicates that y(2) = 1*2 + 3*2. This is 
- ​because y(t) depends on the integration (summation in discrete time) of 
- the two signals being multiplied together. ​ 
- 
- at index = 3   y(3) = integral (x(tau)*h(4-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau] ​                         |  1    2    3    4 
- ​h[t-tau] ​                       |  1    2    3    
- ​------------------------------------------------------------- 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 3, and with tau ranging from 1 to index, the two signals both have non-zero 
- ​values when tau = 1,2, and 3. This indicates that y(3) = 1*1 + 2*2 + 3*3. 
- 
- at index = 4   y(4) = integral (x(tau)*h(5-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau] ​                         |  1    2    3    4 
- ​h[t-tau] ​                       |       ​1 ​   2    3    
- ​------------------------------------------------------------- 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 4, and with tau ranging from 1 to index, the two signals both have non-zero 
- ​values when tau = 2,3 and 4. This indicates that y(4) = 2*1 + 3*2 + 4*3.  
- 
- at index = 5   y(5) = integral (x(tau)*h(6-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau] ​                         |  1    2    3    4 
- ​h[t-tau] ​                       |            1    2    3    
- ​------------------------------------------------------------- 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 5, and with tau ranging from 1 to index, the two signals both have non-zero 
- ​values when tau = 3 and 4. This indicates that y(5) = 3*1 + 2*4.  
- 
- at index = 6   y(6) = integral (x(tau)*h(7-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau ​ ]                        |  1    2    3    4 
- ​h[t-tau] ​                       |                 ​1 ​   2    3 
- ​------------------------------------------------------------- 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6 
- At index = 6, and with tau ranging from 1 to index, the two signals both have non-zero 
- ​values when tau = 4. This indicates that y(6) = 4*1. 
- 
- at index > 6   ​y(index>​6) = integral (x(tau)*h(index+1>​7-tau)dtau,​ 1, index) 
-                                 | 
-                                 | 
- ​x[tau] ​                         |  1    2    3    4 
- ​h[t-tau] ​                       |                      1    2    3    
- ​------------------------------------------------------------------ 
- ​tau ​         -4  -3  -2  -1   ​0 ​   1    2    3    4    5    6    7 
- At index > 6, and with tau ranging from 1 to index, the two signals only have non-zero 
- ​values. This indicates that y(>6) = 0. 
- 
- ​Because of the time reversal, we need to ensure that MATLAB doesn'​t try 
- to index a part of an array that is out of bounds. There are many ways of 
- doing this. The easiest for most people will be an if-statement that 
- ​checks to see if the index is out of bounds. Another way of doing this is 
- by zero padding. Zero padding is when you concatenate an array with zeros 
- to ensure that MATLAB doesn'​t index out of bounds. 
-</​file>​ 
- 
-== Solution Image == 
- 
-{{:​380matlab:​ch2:​mt380_uy2_3_1_si_convolutionffsolutionimage.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch2:​convolution.m|}} 
- 
-</​ifauth>​ 
- 
-===== Convolution Properties ===== 
- 
-==== MT380.UY2.5.1 ==== 
- 
-== Description == 
-<​file>​ 
- ​UY2_5_1 Convolution Properties 
-  
-  Objective: Gain a visual understanding of the following convolution 
-  properties: Commutative,​ Associative,​ Distributive,​ Causal*Causal,​ 
-  Time-shift, Width, and Area. 
-  
-  Commands: subplot, figure. 
-  
-  Exercise: Use the following functions in this exercise: 
-  x1(t) = 2u(t) - 2u(t-2) 
-  x2(t) = 2r(t) -4r(t-1) + 2r(t-2) 
-  x3(t) = 2u(t) - 3u(t-1) + 3u(t-t) -2u(t-4) 
-  x4(t) = r(t)u(t)u(-(t-1)) 
-  x5(t) = u(t) - u(t-4) 
-  Create two figures. In one figure plot each signal in its own subplot. 
-  In the other figure, plot the results to parts a to e. 
-  The '​*'​ symbol denotes convolution. 
-  a) Compute y1(t) = x2(t)*x3(t) and y2(t) = x3(t)*x2(t) 
-     You should have four subplots in this first figure. 
-     What is the difference between y1(t) and y2(t)? If there 
-     is no difference, state that. 
-  b) Compute y3(t) = [x2(t)*x3(t)]*x4(t) and y4(t) = x2(t)*[x3(t)*x4(t)] 
-     What is the difference between y3(t) and y4(t)? 
-     If there is no difference, state that. 
-  c) Compute y5(t) = x3(t)*[x1(t) + x2(t)] and y6(t) = x3(t)*x1(t) + x3(t)*x2(t) 
-     What is the difference between y5(t) and y6(t)? 
-     If there is no difference, state that. 
-  d) Compute y7(t) = x2(t-1)*x3(t-2). Compare y7(t) with the answer in part a.  
-     What is the delay in y(t), and how does it relate to the delay in the two 
-     ​signals x2(t-1) and x3(t-2)? 
-  e) Compute y8(t) = x1(t)*x5(t). How does the area of y8(t) relate to the 
-     areas of x1(t) and x5(t). 
-  Use the previous plots created to answer the following questions. 
-  What is the relation between the width of the convolved signal (y1(t)-y8(t)) and the 
-  width of the signals that were convolved (x1(t)-x5(t)). 
-  Signals x1(t)-x5(t) are all causal signals. If you convolved any two or 
-  more signals together, the output signal must also be (causal / 
-  non-causal) 
-</​file>​ 
- 
-== Solution Image == 
- 
-{{:​380matlab:​ch2:​uy2_5_1_si1convolutionpropertiessolutionimage1.jpg?​400|}} 
- 
-{{:​380matlab:​ch2:​uy2_5_1_si2convolutionpropertiessolutionimage2.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch2:​uy2_5_1_convolutionproperties.m|}} 
- 
-</​ifauth>​ 
- 
-===== Imp.Resp. of 2nd Ord LCCDEs Aid ===== 
- 
-==== MT380.UY2.8.0 ==== 
- 
-Differential Equations-Euler'​s Method {{:​380matlab:​ch2:​differential_equations_eulersmethod.docx|}} 
- 
-===== Imp.Resp. of 2nd Ord LCCDEs ===== 
- 
-==== MT380.UY2.8.1 ==== 
- 
-== Description == 
- 
-<​file>​ 
-   ​UY2_8_1 Impulse Response of 2nd Order LCCDEs 
-  
-  Objectives: Become familiar with Euler'​s method for solving 1st order 
-  differential equations; the effect of overdamped, critically damped, and  
-  underdamped systems to a sinusoidal frequency; and approximating 
-  derivations in matlab. 
-  
-  Commands: review roots. 
-  
-  Exercise: Use the figure below for this problem. The value of the 
-  capacitor is 2e-3F, the value of the inductor is 1H, and the resistor 
-  will take on four different values R = [1,​10,​20,​40]. 
-  The input signal is  
-    Vs = | cos(2*pi*f*t) for 0 <= t < 1(s)  
-         ​| ​       0      for 1(s) <= t <= 3(s) 
-    and f represents the frequency in Hz, and is 22 Hz. 
-  This frequency is close to the resonate frequency of 
-  the system. ​ 
-  Vout is Vo. 
-  
-    You will create an impulse response of the system for every value of R.  
-    When you plot, create four different figures for each different 
-    resistor value. in each figure, create subplots: 1 for h1(t), 1 for 
-    h2(t), 1 for hc(t), 1 for h(t), and 1 for h(t)*Vs (Convolution) 
- 
-    When you are creating the impulse responses you will have to create a 
-    time array for each of them. t = 0:​time_interval:​time_end. For the 
-    time_interval use 2/1000, and for time_end use 5*tau. The behavior of 
-    the impulse response can be captured in a time duration of 5*tau. The 
-    value of tau will change depending on the value of R. Remember, tau is 
-    the real part of the root of the characteristic equation. 
- 
-    Begin by creating your 2nd order differential equation based on the image  
-    provided. 
- 
-    a) Split the second order differential equation into to coupled 
-    first-order equations. Use Euler'​s method to approximate h1(t) and 
-    h2(t). Compare them to the analytical solutions provided in the book by 
-    plotting them. Remember to do this for each value of R 
-          - analytic approach. Used for comparison 
-          - h1A = exp(p(1).*t);​ 
-          - h2A = exp(p(2).*t);​ 
-    b) Convolve your h1(t) and h2(t) to get hc(t). Compare it to the 
-    analytical solution provided in the book by plotting them. 
-          - analytical solution to hc 
-          - hcA = (1/​(p(1)-p(2)))*(exp(p(1).*tc)-exp(p(2).*tc));​ 
-          - tc is the time array for hcA 
-    c) Approximate the derivative of hc to get h(t). Compare it to the  
-    analytical solution provided in the book by plotting them. 
-          - analytical solution 
-          - hA = (1/​(p(1)-p(2)))*(p(1)*exp(p(1).*tc)-p(2)*exp(p(2).*tc));​ 
-    d) Convolve your four h(t)s, one for each resistor value, with the input  
-       ​signal and plot them.  
-    e) Questions: 
-       1) How close of an approximation is Euler'​s method, and for what value 
-          of R is the approximation the worse and why? 
-       2) Using the graph that shows Vout, look at the time after the input signal 
-          stops (t = 1s). What is the relationship between the value of R and 
-          Vout after (t = 1s). Why does it behave like this? 
-  
-  For further exploration,​ change the resonate frequency of the input 
-  signal and see what happens. 
-</​file>​ 
- 
-For help with this assignment see the document [[ecen_380_assignments#​MT380.UY2.8.0 | Differential Equations-Euler'​s Method]] 
- 
- 
-== Figure == 
- 
-{{:​380matlab:​ch2:​uy2_8_1_impresp2ndordercircuit.png?​300|}} 
- 
-== Solution Image == 
- 
-{{:​380matlab:​ch2:​uy2_8_1_si1_impresp2ndordersolutionimage1.jpg?​400|}} 
- 
-{{:​380matlab:​ch2:​uy2_8_1_si2_impresp2ndordersolutionimage2.jpg?​400|}} 
- 
-{{:​380matlab:​ch2:​uy2_8_1_si3_impresp2ndordersolutionimage3.jpg?​400|}} 
- 
-{{:​380matlab:​ch2:​uy2_8_1_si4_impresp2ndordersolutionimage4.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch2:​uy2_8_1_impresp2ndorder.m|}} 
- 
-</​ifauth>​ 
- 
-===== Car Suspension System ===== 
- 
-==== MT380.UY2.9.1 ==== 
- 
-<​file>​ 
- ​Euler'​s method 2nd order 
- 
- 
- ​Objective:​ Use Euler'​s method for solving 2nd order differential 
- ​equations to approximate the displacement of a car as it drives over a 
- pot hole. 
- 
- ​Exercise:​ You are driving a car at 10m/s when you run over a pot hole 
- that is 0.2 meters deep and 0.5 meters wide. The car weighs 1800 kg (450 
- kg per wheel), and the suspension system has a spring constant of 10^5 
- N/m and a Viscous damper of 5*10^3 Ns/m. 
- a) Use Euler'​s method to plot the path of the car starting from when it 
- first hits the pothole. Hint- you will need the cart to start at level 
- ​ground. ​ 
- b) compare the results from part a with the analytical solution. Look at 
- table 2-3 on page 71 and the example of driving over a pothole on page 
- 72 to compute the analytical solution. Plot it on the same graph used in 
- part a. 
- c) Compare and contrast the two plots 
- 
-</​file>​ 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch2:​uy2_9_1_eulermethod2ndorder.m|}} 
- 
-</​ifauth>​ 
- 
-===== Laplace Transform Aid ===== 
- 
-==== MT380.UY3.0 ==== 
- 
-{{:​380matlab:​ch3:​laplacetransformgui.fig|}} 
-{{:​380matlab:​ch3:​laplacetransformgui.m|}} 
- 
-===== Poles and Zeros ===== 
-==== MT380.UY3.2.1 ==== 
- 
-<​file>​ 
- S Domain Graph 
- 
- ​Objective:​ Learn how to plot the magnitude and phase of a Laplace transform 
- in order to gain a visual understanding of the s-domain 
- 
- ​Functions:​ review mesh-grid and mesh 
- 
- ​Exercise:​ Apply the Laplace transform to the function 
- ​exp(-0.9*t)*cos(2*pi*2*t). Evaluate the Laplace transform at different 
- ​values of s. s can be split into its real part and its imaginary part;  
- s = sigma + j*omega. Let the values of sigma range from -3:.02:3; and the 
- ​values of omega range from 2*pi*(-3:​.02:​3;​). s represents all possible 
- ​combinations of sigma and j*omega. In this case s should be 301x301 
- ​matrix since both arrays of sigma and omega contain 301 elements. ​ 
- a) Evaluate the Laplace transform at every value of s. 
- b) calculate the magnitude and phase of the Laplace transform at every 
-    value of s. 
- c) use mesh grid to plot the magnitude and phase calculated in part b. 
-    The x-axis should be sigma, the y-axis omega, and z-axis the magnitude or 
-    phase. In the graph represent the y-axis in (hz) and not omega. The 
-    command should look like this. mesh(sigma,​omega/​2/​pi,​Xs_magnitude);​ 
- d) By looking at the graph, determine where the poles and zeros are. Are 
-    they where they should be? 
-</​file>​ 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch3:​uy3_2_1_sdomaingraph.m|}} 
- 
-</​ifauth>​ 
- 
-===== Op-Amp Circuits ===== 
-==== MT380.UY4.5.1 ==== 
- 
-<​file>​ 
- ​Op-amp circuit 
- 
- ​Objective:​ Graph the s-domain transfer function of an op-amp circuit to 
- gain a visual understanding. Also, create a bode plot of the s-domain transfer function 
- with sigma = 0 to introduce students to the Fourier domain. 
- 
- ​Functions to learn: none 
- 
- ​Exercise:​ Using the figure associated with the problem, solve for the 
- ​op-amp'​s transfer function H(s). 
- The values are shown below 
- L = 10e-2; % inductor 
- C = 10e-6; % capacitor ​ 
- R1 = 10; 
- R2 = 2000; 
- ​a)Evaluate H(s) at all possible ​ combinations of s with 
-   s = sigma + j*omega, sigma = -20:1:20, and omega = 2*pi*(-1000:​10:​1000). ​ 
- b) graph the magnitude of H(s) with the frequency axis in units of Hz. 
- c) where are the zeros ? 
- d) Evaluate H(s) with sigma = 0, and omega = 2*pi*(-1000:​10:​1000). Graph 
-   the magnitude in terms of decibels, dB = 20log(Vo/​Vin);​ and with the frequency ​ 
-   axis in units of Hz. Also, graph the phase in terms of degrees on the 
-   same plot.  
- e) In part d you plotted the bode plot of the Op-Amp. This is to 
-    introduce you into the Fourier domain 
-</​file>​ 
- 
-== Figure == 
- 
-{{:​380matlab:​ch3:​uy4_5_1_op_amp.png?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch4:​uy4_5_1_op_ampcircuit.m|}} 
- 
-</​ifauth>​ 
- 
-===== Fourier Series Coefficients ===== 
-==== MT380.UY5.4.1 ==== 
- 
-<​file>​ 
- ​UY5_4_1_ComputationOfFourierSeriesCoefficients 
- 
- ​Objective:​ Use MATLAB to calculate the Fourier series coefficients of a 
- ​continuous signal. 
- 
- ​Functions:​ review for-loops 
- 
- ​Exercise:​ Assume that the figure associated with this problem is continuous over all 
- ​time. ​ 
- a)Use MATLAB to find the Fourier series coefficients for 100 harmonic 
-   ​signals,​ or n = 100 according to equation 5.26a that's located in the book.  
- b)Use the Fourier series coefficients found in part a to calculate the 100 
-   ​harmonic signals which the original signal is composed of. 
- c)Sum up all of the harmonic signals found in part b to get an approximate 
-   ​signal of the original signal. Plot the approximate and original 
-   ​signals on the same graph for one period. 
- ​d)Plot the amplitude spectrum and phase spectrum of the signal. You do 
-   not need to show all 100 frequencies in this graph, but about 20.  
- e)The approximate signal does not perfectly with the original signal. Why 
- is this? Does increasing or decreasing the number of harmonics fix the 
- ​strange offset? Hint. Gibbs phenomenon. ​ 
-</​file>​ 
- 
-== Figure == 
-{{:​380matlab:​ch5:​uy5_4_1_computationoffourierseriescoefficients_figure.jpg?​400|}} 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch5:​uy5_4_1_fourierseriescoefficients.m|}} 
- 
-</​ifauth>​ 
- 
-===== Circuit Analysis with Fourier ===== 
-==== MT380.UY5.12.1 ==== 
- 
-<​file>​ 
- ​UY5_12_1_Circuit Analysis Fourier Transform 
- 
- ​Objective:​ Use Fourier analysis to calculate the output to a system when 
- ​stimulated. 
- 
- ​Exercise:​ This problem is based off of problem 5.61 that is in the book. 
- You will still need to do part a by hand. The book will direct you to the 
- ​needed figures. 
- a) Derive the impulse function for the circuit. ​ 
- b) Create a function file that models the impulse function obtained in 
-    part a. 
- c) Create another function file that models the input signal. Remember 
-    that A = 5mA and T = 3. 
- d) Using the functions obtained in part b and c find and plot Vout. Hint 
-    convolve the functions. 
- e) Take a moment to appreciate how much easier that problem became by using MATLAB 
-    compared to if you had to convolve the two functions by hand.  
-</​file>​ 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch5:​uy5_12_1_circuitanalysisfouriertransform.m|}} 
-{{:​380matlab:​ch5:​h_t.m|}} 
-{{:​380matlab:​ch5:​x_t.m|}} 
- 
-</​ifauth>​ 
- 
- 
-===== Butterworth Filters ===== 
-==== MT380.UY6.8.1 ==== 
- 
-<​file>​ 
- ​UY6_3_1_Active Filters 
- 
- ​Objective:​ model a second order butterworth filter using an approximated 
- ​impulse response in order to see its effectiveness in filtering signals 
- 
- ​functions:​ review roots 
- 
- ​Exercise:​ This exercise will be broken down into several parts 
- part 1) in this first part you will create a low pass filter based on a 
-       ​second order butterworth filter. Create it in a function file that 
-       takes in two parameters (corner frequency in Hz and time interval/​step). 
-       ex. functionName(fc , time_interval). The function file will return 
-       the impulse response h(t) in an array. Make the time length of the 
-       ​impulse response at least 10*tau; usually 5 tau is sufficient but 
-       ​let'​s be extra precise. ​ 
-       a) look at table 6-3 on page 285 in your book. This will help you 
-          find the coefficients for your transfer function. Look at example 
-          6-10 in the book if you need more help. When designing this 
-          transfer function, H(jw), make sure you have a dc gain of 1. 
-       b) look at section 2-7.3 in your book to remember how to turn a 
-          transfer function into a second order differential equation. 
-       c) review section 2-8 to transform your second order differential 
-          equation into an impulse response, h(t). 
-       If done correctly, you only need to pass the function file fc and 
-       the time_interval and the function file will return an array 
-       ​representing h(t). 
- part 2) Now that you have constructed your filter it's time to test it.  
-       a) create a low pass filter with an fc of 400 Hz using part 1 of 
-          the assignment. Use an appropriate time interval. time_interval 
-          << tau. and time_interval << 1/​largest(f),​ look at part b for 
-          largest 4) 
-       b) create three different signals of the form x = 5*cos(2*pi*f*t). ​ 
-          the three signals will have different frequencies:​ f1 = 100, f2 
-          = 400, f3 = 4000 Hz. When creating these signals, use the same 
-          time_interval in part a) but have the time array last for 1 s. 
-       c) Convolve each signal with h(t) to simulate filtering. ​ 
-          y = x(t)*h(t), * denotes convolution. ​ 
-       d) plot h(t), and the three filtered signals. 
- part 3) You will now analyse the plots to verify that your filter is 
-         ​working. 
-       a) you designed your filter with an fc of 400 Hz and a dc gain of 
-          1. Verify that the filtered signal with f1 = 100 Hz still has a max 
-          amplitude of 5.  
-       b) Now look at the filtered signal with f2 = 400 Hz. Since the 
-          signal has the same frequency as the corner frequency what should 
-          its amplitude approximately be?  
-       d) Looking at the last signal with f3 = 4000 Hz ignore the first 
-          part of the filtered signal that has an amplitude twice the value 
-          that the rest of the signal has, remember that this is just an 
-          approximation. f3 is ten times the frequency of f2, and you are 
-          using a second order filter. How much smaller should the 
-          amplitude of the signal with a freq(f3) be compared to the 
-          signal(f2)? 
-</​file>​ 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch6:​uy6_8_1_butterworthfilter.m|}} \\  
-The function file below creates the impulse response of a second order lowpass filter. \\  
-{{:​380matlab:​ch6:​h_t.m|}} ​ \\  
- 
-</​ifauth>​ 
- 
-===== Sampling Theorem ===== 
-==== MT380.UY6.12.1 ==== 
- 
-<​file>​ 
-   ​UY6_12_1 Sampling Theorem With Noise 
- 
-  Objective: This exercise will expose students to the process of sampling 
-  data, and the effects of aliasing. ​ 
- 
-  Functions: fopen, fscan, fclose, interp, and sound. ​ 
- 
-  Caution: The command '​sound'​ will clip at +/- 1V. Before playing any 
-  array using the sound command, make sure that every value is within the 
-  range. You should not have to worry about it in this lab, but it is good 
-  to verify so that you develop the habit. You can easily verify the max 
-  and min value in your workspace by specifying it to show those values, or 
-  you can do it by inspection of the graphs that you will plot. 
- 
-  Exercise: For this exercise you will be given a file to read in. You will 
-            take the file and read it in. This file contains an array of 
-            data that represents sound. You will filter, sample, and filter 
-            again to gain an idea on the effects of aliasing. 
-            This problem is broken down into 7 parts to help simplify and 
-            organize it. Some of the descriptions will be long, but read 
-            them because they will help save you time.  
-  Part 1) Get Data From the File 
-          You will use the command fopen to read in the file 
-          '​PianoDataWithNoise.txt'​. Everything in the file represents data used 
-          in generating the sound; just open up the file in notepad to see its format. 
-          The file is long and its length is 5512500 which 
-          represents 5 seconds of data. i.e. 1102500 elements represents 1 
-          second. When you read in the file, the format of the file is 
-          exponential notation. After you read the file, make sure you 
-          close it.  
-          Reading the file will take MATLAB about 15 seconds, but it only 
-          needs to read it in once. After you have the file's content 
-          stored in a variable, comment it out so it doesn'​t read it every 
-          time you run the program. The variable will remain in the 
-          workspace unless you clear it.  
-  Part 2) Creating the filter. 
-          Before you sample a signal you always want to filter it with a 
-          lowpass filter. In modulo MT380.UY6.8.1 you created a function 
-          file that generates a second order filter. Create a filter with a 
-          corner frequency of 500 Hz. Remember that the samples per second 
-          is 1102500, and the time interval/​step used for creating the 
-          filter is 1/​1102500. ​ 
-  Part 3) Filter Data 
-       a) You will have two arrays of data. One array will not be 
-          pre-filtered and the other array will be filtered. ​ 
-          Use the filter created in part 2 to filter the data obtained in 
-          part 1, and store the data in another array. 
-       b) Plot the non-pre-filtered data (NPFD) and the pre-filtered data (PFD) as a 
-          function of time.  
-          I have given you a function file called fft_plot. If you have not 
-          downloaded it from the wiki page, download it now. This function 
-          will plot the frequency magnitude spectrum. It takes in two 
-          parameters: the array containing the data, and the number of 
-          samples that represent a second. Ex fft_plot(NPFD,​ 1102500). Use 
-          this function to plot the frequency magnitude of NPFD and PFD. 
-          Magnify the plots so you can see the frequencies between 0 and 
-          1500 Hz. Notice that each signal has a frequency at 1200 and 1500 
-          Hz; However, the PFD frequency at 100 and 1500 Hz is much smaller 
-          because of the filter. These frequencies represents possible 
-          noise that can get into your system. Even though the noise shows 
-          up in the PFD signal, it is negligibly small, and can be 
-          ignored. Also, other than the noise, the other frequencies are 
-          about 500 Hz or below. ​ 
-  Part 4) Sample Data 
-       a) The data that you have been given represents a continuous signal. 
-          In this part you will simulate sampling a continuous signal. 
-          Sample the NPFD signal at 1050 samples/​second,​ and sample the PFD 
-          at 1050 sample/​second and 500 samples/​second. At this point you 
-          should have three different data arrays. 
-             1) a pre-filtered signal sampled at 1050 samples/s or Hz 
-             2) a pre-filtered signal sampled at 500 samples/s or Hz 
-             3) a non pre-filtered signal sampled at 1050 sample/s or Hz 
-       b) These three signals will need to be modified in order to be 
-          played using the sound command because the sound card can only 
-          play data at specific frequencies,​ and they are 
-          8000,11025, 22050, 44100, 48000, and 96000 Hz. 
-          To do this, you will need to interpolate the signals using the 
-          interp command. The signals sampled at 1050 Hz will need to be 
-          interpolated to have 22050 samples/s and the signal sampled at 
-          500 Hz will need to be interpolated to have 8000 samples/s. 
-          Interpolating a signal does not change the frequencies. 
-      c)  After you have interpolated it, plot all three signals as a 
-          function of time, and plot their frequency magnitude spectrum using 
-          the fft_plot function file provided. Compare and contrasts these 
-          plots to the plots created in part.  
-      d)  Questions 
-          1) After sampling the NPFD at 1050, what frequencies did the 
-             noise alias to?  
-          2) Why are some of the aliased frequencies attenuated? 
-          3) Why does the PFD signal sampled at 1050 Hz not suffer from 
-             ​aliasing?​ 
-          4) Why did the PFD signal sampled at 500 Hz become really 
-             ​distorted?​ 
-  Part 5) Create Filters for sampled data 
-          For the signals sampled at 1050 Hz, create a filter will a cut 
-          off frequency of 500 Hz. For the signal sampled at 500 Hz, create 
-          a filter with a cut off frequency of 250 Hz using the filter 
-          function file you created in modulo MT380.UY6.8.1. ​ 
-  Part 6) Filter the sampled data 
-       a) Filter the sampled data with their corresponding filters. ​ 
-       b) Plot each signal as a function of time, and plot their frequency magnitude ​ 
-          using the fft_plot function file provided. Remember to pass in the 
-          correct samples/s for each signal. ​ 
-       c) Questions 
-          1) Why is it important to filter after sampling data? 
-          2) If you have a Nyquist sampling rate of 1000 Hz, what should 
-             the maximum corner frequency of the low pass filter be and why? 
-  Part 7) Play the data 
-       a) You now get to play your data using the sound command. Remember 
-          to make sure that all values in any signal array is within ​ 
-          +/- 1. 
-       b) Play all signals with there corresponding frequencies. The 
-          signals sampled at 1050 Hz should be played at 22050 Hz, and the signal 
-          sampled at 500 Hz should be played at 8000 Hz 
-       c) Compare your results with the sound files provided on the wiki 
-          page. 
-       d) Questions 
-          1) You should hear a low hum in the NPFD signal. It is most 
-             ​apparent at the beginning of the sound file. Why is it 
-             ​important to pre-filter before sampling. 
-          2) You signal sampled at 500 Hz doesn'​t resemble the original 
-             ​sound. Why is it important to sample at a frequency greater 
-             than the Nyquist sampling rate? 
-</​file>​ 
- 
-== Sound File == 
- 
- 
- 
-== fft_plot function file == 
-{{:​380matlab:​ch6:​fft_plot.m|}} 
- 
-== Original Music File == 
-{{:​380matlab:​ch6:​pianofinal_5s.wav|}} 
- 
-== Music Files After Sampling == 
-This file was sampled at 1050 samples/​sec,​ then filtered again with fc of 500 Hz.  \\    
-You should be able to hear a low buz that is not in the original file \\  ​ 
-{{:​380matlab:​ch6:​pianos1nff.wav|}} 
- 
-This file was first filtered with fc of 500 Hz, sampled at 1050 samples/​sec,​ then filtered again with fc of 500 Hz.  \\  ​ 
-This file should sound similar to the original just quieter due to filtering \\  ​ 
-{{:​380matlab:​ch6:​pianos1ff.wav|}} 
- 
-This file was first filtered with fc of 500 Hz, sampled at 500 samples/​sec,​ then filtered again with fc of 250 Hz.\\ 
-This file shows the effects of aliasing. \\      ​ 
-{{:​380matlab:​ch6:​pianos8ff.wav|}} 
- 
- 
-===== D-Time Signal Functions ===== 
- 
-==== MT380.UY7.2.1 ==== 
- 
- 
-<​file>​ 
-   ​MT380.UY7.2.1 Discrete Time Signal Functions 
- 
-  Objective: gain a visual understanding of the fundamental period. 
- 
-  Functions: rat 
- 
-  Exercise: Consider the causal signal x = cos(2*pi*f*t) with f = 5 Hz.  
-           a) Calculate the period of the signal. 
-           b) Write a function file that can calculate the fundamental 
-              period of a sampled signal for any period (To) and sample rate 
-              (Ts). This function must be able to indicate if a fundamental 
-              period does not exist. For example, in my program, if the 
-              fundamental period does not exist i return a 0. Hint: for 
-              this function file, consider using the rat command. 
-           c) You will sample signal x at the following three sample rates 
-              (Ts):0.035, 0.25, 0.01, and .01/pi. Using the function file created 
-              in part b, determine the fundamental period of signal x 
-              sampled at the three different sample rates. For example, if  
-              I were to sample signal x at a sample rate of 0.077 my fundamental ​ 
-              period would be 200 samples. 
-           d) Sample the signal x at the indicated sample rates for the duration of 1 
-              fundamental period. Continuing my example, my time duration would  
-              be (No*Ts) or 15.4 seconds. You should have three sampled 
-              signals of different time duration 
-           e) Approximate three continuous time signals (x) by sampling at a 
-              very high frequency and with a time duration equal to the fundamental ​ 
-              period of all three sampling rates.Continuing my example, I 
-              would create a signal that approximates a continuous signal 
-              that begins at t = 0s and ends at t = 15.4s. 
-           f) Plot each sampled signal x with its corresponding continuous 
-              approximated signal. See solution graphs for a visual 
-              understanding. If the fundamental period does not exist, do 
-              not plot the data points, just indicate it in the plot's 
-              title. 
-           g) Questions: 
-              1) For each sampled signal, how many periods of the 
-                 ​continuous approximated signal fit within one fundamental 
-                 ​period of the sampled signal? ​ 
-              2) How do the numbers obtained in part 1 relate to the book  
-                 ​equation 7.21 (No = k*(To/Ts)) 
-</​file>​ 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
-{{:​380matlab:​ch7:​mt380_uy7_2_1_discrete_time_signal_functions.m|}} 
-{{:​380matlab:​ch7:​fundamentalperiod.m|}} 
- 
-</​ifauth>​ 
- 
-===== D-Time Fourier Series ===== 
-==== MT380.UY7.13.1 ==== 
- 
-== Description == 
-<​file>​ 
-   ​MT380_UY7_13_1_DiscreteTimeFourierSeries 
- 
-  Objective: Create a Program that simulates the Discrete-Time Fourier 
-  Series of a sampled signal. 
- 
-  Commands: none 
- 
-  Exercise: The file, signal.txt, contains one period of a sampled periodic 
-            signal. ​ 
-            a)Open the file, import the data, and plot the original signal. 
-            b) Find the expansion coefficients of the given signal. 
-            c) Plot the magnitude line spectrum and phase line spectrum of 
-               the imported signal using the expansion coefficients 
-               ​obtained in part b 
-            d) Reconstruct the original signal using the expansion 
-               ​coefficients and plot it.  
-            e) Question: What is the highest frequency in the signal? 
- 
-</​file>​ 
- 
-== Signal == 
- 
- 
- 
-== Solution Image == 
- 
-<ifauth @admin,​@380ta>​ 
- 
-== Solution == 
- 
-{{:​380matlab:​ch7:​mt380_uy7_13_1_discretetimefourierseries.m|}} 
- 
-</​ifauth>​ 
ecen_380_matlab_assignments.1441379638.txt.gz ยท Last modified: 2015/09/04 09:13 by petersen