<< Chapter < Page | Chapter >> Page > |
load('fall')
and plot it. Use
whos
to see that the variables
fall
and
Fs
are created for you. (The sampling rate (Fs) for this signal should be 8000 Hz.)h
, with the trumpet sound.
Fs = 8000 % for this example
h = [1 zeros(1,10000) .25 zeros(1,1000)];
y = conv(fall, h);plot(y)
soundsc(y, Fs)
h
) is a negative coefficient? When you play it, it should not sound different since your ear is not sensitive to that sort of modification (simple phase change).Fs/4
zeros before the second impulse:
h = [1 zeros(1, round(Fs/4)) 0.25 zeros(1,1000)];
Pass the
fall
input signal through the system to get the output
y
:
y = conv(h, fall);
How do the input and output signals compare in the above step? (Look and listen). Experiment with different numbers of zeros, and try repeating this with some of the built-in MATLAB sounds.
chirp
,
gong
,
handel
,
laughter
,
splat
, and
train
. Load them with the
load
command and the sound data will be loaded into the variable
y
and the sampling rate in
Fs
.pause
command to pause MATLAB until a key is pressed to prevent it from playing all your sounds at once.h2=[ones(1,50)/50 zeros(1,20)];
Create a new signal
y2
by convolving "fall" with
h2
fall
looks like it's centered around value 0, and the system output
y2
looks like it's more positive. Let's look more closely. Find the average value of the signal
fall
(use
sum(fall)/length(fall)
), and you should see that in fact the
fall
signal isn't really centered around 0.subplot(2,1,1), plot(6400:6500, fall(6400:6500))
subplot(2,1,2), plot(6400:6500, y2(6400:6500))
The convolved signal should look a little smoother to you. This is because this impulse response applies a low-pass filter to the signal. We'll learn more about filters a bit later, but basically the idea is that the original signal is made up of sounds at many different frequencies, and the lower frequencies pass through the system, but the higher frequencies are attenuated. This affects how it sounds as well as how it looks.unitstep.m
in MATLAB. The function should take two parameters, a time vector that specifies the finite range of the signal and a time shift value.
unitstep([time],ts)
should be equivalent to
u(t + ts)
unitstep
function to create a box-shaped time signal. Write a new function called
boxt.m
that creates a box with specified start and end times
t1
and
t2
. In other words, your function should take three inputs: scalars
t1
and
t2
, and a time vector
t
, and should output a vector of the same size as
t
, which contains the values of
u(t-t1)-u(t-t2)
evaluated at each point in
t
.boxtscript.m
that uses the function to create a box that starts at time
t = -1
and ends at time
t = 1
, where the signal lasts from time
t = -3
to
t = 3
. Generate three different versions of this box using three different time granularities, where the finest granularity has very sharp edges similar to the ideal box and the coarsest granularity has a step size of 0.5.
boxtscript.tif
.u
is a vector of length
n
with time span
tu = t1:del:t2
, and
v
is a vector of length
m
with time span
tv = t3:del:t4
, and both have the same time step
del
, then the result of
conv(u,v)
will be a vector of length
n + m - 1
with a time span
tc = (t1+t3):del:(t2+t4)
.del = 0.01
), create box signals from (0,4) and (-1,1), with time span of (-5,10). Find and plot the result of the convolution of the two boxes and save it as
convplot.tif
. Use the above discussion of Time to create the appropriate time vector in your plot. Verify that the timing of signal rising and falling matches what you expect in theory.n
rather
n del
, which impacts the area computation in convolution. To get the correct height, you need to scale by
del
. Scale and plot the resulting function, and verify that the height is now 2. Save the figure as
scaled.tif
h
and a system input
x
such that you get a perfectly symmetric triangle of length 100 as the system output
y
. Use subplot to plot
x
,
h
, and
y
, and save the plot as
tri.tif
.Notification Switch
Would you like to follow the 'Continuous time linear systems laboratory (ee 235)' conversation and receive update notifications?