You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.7 KiB
71 lines
1.7 KiB
|
|
Exercise 3.74: Alyssa P. Hacker is designing a
|
|
system to process signals coming from physical sensors. One important feature
|
|
she wishes to produce is a signal that describes the
|
|
zero crossings
|
|
of the input signal. That is, the resulting signal should be
|
|
|
|
+
|
|
1
|
|
|
|
whenever the
|
|
input signal changes from negative to positive,
|
|
|
|
−
|
|
1
|
|
|
|
whenever the input signal
|
|
changes from positive to negative, and
|
|
0
|
|
otherwise. (Assume that the sign of a
|
|
|
|
0
|
|
input is positive.) For example, a typical input signal with its associated
|
|
zero-crossing signal would be
|
|
|
|
|
|
… 1 2 1.5 1 0.5 -0.1 -2 -3 -2 -0.5 0.2 3 4 …
|
|
… 0 0 0 0 0 -1 0 0 0 0 1 0 0 …
|
|
|
|
|
|
In Alyssa’s system, the signal from the sensor is represented as a stream
|
|
sense-data and the stream zero-crossings is the corresponding
|
|
stream of zero crossings. Alyssa first writes a procedure
|
|
sign-change-detector that takes two values as arguments and compares the
|
|
signs of the values to produce an appropriate
|
|
0
|
|
,
|
|
1
|
|
, or
|
|
|
|
−
|
|
1
|
|
|
|
. She then
|
|
constructs her zero-crossing stream as follows:
|
|
|
|
|
|
(define (make-zero-crossings
|
|
input-stream last-value)
|
|
(cons-stream
|
|
(sign-change-detector
|
|
(stream-car input-stream)
|
|
last-value)
|
|
(make-zero-crossings
|
|
(stream-cdr input-stream)
|
|
(stream-car input-stream))))
|
|
|
|
(define zero-crossings
|
|
(make-zero-crossings sense-data 0))
|
|
|
|
Alyssa’s boss, Eva Lu Ator, walks by and suggests that this program is
|
|
approximately equivalent to the following one, which uses the generalized
|
|
version of stream-map from Exercise 3.50:
|
|
|
|
|
|
(define zero-crossings
|
|
(stream-map sign-change-detector
|
|
sense-data
|
|
⟨expression⟩))
|
|
|
|
Complete the program by supplying the indicated ⟨expression⟩.
|
|
|