(New page: == Part B. Find the Bug == The original code is displayed below. <pre> F0 =13; T0 =1/F0; Ts = 0.07; t = 0:Ts:13*T0; x = real(exp(j*(2*pi*F0*t-pi/2))); plot(t,x) </pre>)
 
Line 8: Line 8:
  
 
Ts = 0.07;
 
Ts = 0.07;
 +
 +
t  = 0:Ts:13*T0;
 +
 +
x = real(exp(j*(2*pi*F0*t-pi/2)));
 +
 +
plot(t,x)
 +
</pre>
 +
 +
This code is supposed to display the real part of the complex exponential, which is a sine wave.  This code actually produces a distorted sine, since the step size, Ts, is not sufficiently small to get enough data points to produce a smooth curve.
 +
 +
== Solution ==
 +
In order to correct this, one simply must adjust the step size, Ts, to get smaller readings, producing a smoother curve.  The smaller the step size one chooses, the smoother the output curve will be.  A step size of Ts/100 or even Ts/1000 will produce a sufficiently smooth sine wave.  The new code is displayed below.
 +
 +
<pre>
 +
F0 =13;
 +
 +
T0 =1/F0;
 +
 +
Ts = 0./1000
  
 
t  = 0:Ts:13*T0;
 
t  = 0:Ts:13*T0;

Revision as of 09:53, 11 September 2008

Part B. Find the Bug

The original code is displayed below.

F0 =13;

T0 =1/F0;

Ts = 0.07;

t  = 0:Ts:13*T0;

x = real(exp(j*(2*pi*F0*t-pi/2)));

plot(t,x)

This code is supposed to display the real part of the complex exponential, which is a sine wave. This code actually produces a distorted sine, since the step size, Ts, is not sufficiently small to get enough data points to produce a smooth curve.

Solution

In order to correct this, one simply must adjust the step size, Ts, to get smaller readings, producing a smoother curve. The smaller the step size one chooses, the smoother the output curve will be. A step size of Ts/100 or even Ts/1000 will produce a sufficiently smooth sine wave. The new code is displayed below.

F0 =13;

T0 =1/F0;

Ts = 0./1000

t  = 0:Ts:13*T0;

x = real(exp(j*(2*pi*F0*t-pi/2)));

plot(t,x)

Alumni Liaison

Ph.D. 2007, working on developing cool imaging technologies for digital cameras, camera phones, and video surveillance cameras.

Buyue Zhang