This is a MATLAB question with the solution .. can someone please explain it in
ID: 3636286 • Letter: T
Question
This is a MATLAB question with the solution ..
can someone please explain it in details, step by step ..
NOTE: If you are not sure, plz DO NOT answer ..
The objective of this experiment is to generate a mixture of sinusoidal signals and
to verify that the spectrum is as predicted by theory
Set the sampling period to 0.5ms
Set the time interval to [0,2s]
Generate the signal x(t)= sin(2000t)+2 cos(4000t+32)+cos2(2000t)
Solution:
ts=.5/1000;t=[0:ts:2];
x=sin(2000*t)+2*cos(4000*t+32)+cos(2000*t).^2;
i) Calculate the signal power, defined as the sum of the squared terms
Solution
Power = sum(x.^2) = 14841.
ii) Plot the magnitude spectrum with the horizontal axis properly labeled in Hz.
Solution:
plot((1:length(x))/(ts*length(x)),abs(fft(x)));
iii) Perform clipping of values larger (in absolute value) than 2.5 to 2.5.
Plot the resulting magnitude spectrum. Insert here
Solution:
xx=(abs(x)<2.5).*x;
plot((1:length(x))/(ts*length(x)),abs(fft(xx)));
Explanation / Answer
Solution:
ts=.5/1000;t=[0:ts:2]; %ts=0.5ms t changes from 0 to 2
x=sin(2000*t)+2*cos(4000*t+32)+cos(2000*t).^2; %type in the sinusoidal function
i) Calculate the signal power, defined as the sum of the squared terms
Solution
Power = sum(x.^2) = 14841.
use Matlab to calculate the power as defined the sum of squared terms "sum(x.^2)" .^ is for matrix elements operations.
ii) Plot the magnitude spectrum with the horizontal axis properly labeled in Hz.
Solution:
plot((1:length(x))/(ts*length(x)),abs(fft(x)));
here solution used a combined statement:
we know that time t=[0,ts,2ts,3ts,.....(n-1)ts]; n is the length of x and t: n=length(x)
frequency=1/time; fo=1/ts, fo is the maximum frequency. but we need to split the fo in as many terms as x and t have in order to plot.
f=[1/n*fo,2/n*fo,.....n/n*fo]=[1/length(x)*(1/ts),2/length(x)*(1/ts).....length(x)/length(x)*(1/ts)]
=1/(length(x)*ts).*[1,2,3,....length(x)]=[1,2,....length(x)]./(length(x)*ts)
=(1:length(x))./(ts*lengt(x))
This is how they get the expression for horizontal variable....
the magnitude of the spectrum can be obtained by useing "abs(fft(x))"
"fft" function is for Discrete Fourier Transform, and "abs()" is used to get the magnitude.
iii) Perform clipping of values larger (in absolute value) than 2.5 to 2.5.
Plot the resulting magnitude spectrum. Insert here
Solution:
xx=(abs(x)<2.5).*x;
plot((1:length(x))/(ts*length(x)),abs(fft(xx)));
From the expression: xx=(abs(x)<2.5).*x; we see that when abs(x) is less than 2.5, the value doesn't change. However when the abs(x)>=2.5, xx will return 0 because (abs(x)<2.5)=0. Then, it plot the same frequency as defined in last part. and use fixed value.
NOTE: the problem says "Perform clipping of values larger than 2.5 to 2.5...
However, the solution would change the value that larger than 2.5 to 0......
U may want to fix that command to "xx=(abs(x)<2.5).*x+(abs(x)>=2.5).*2.5;" That will return 2.5 when the x value is larger than 2.5 instead of returning a '0'......
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.