22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SOURCE-SIGNAL ANALYSIS 585<br />

again, the comparator goes negative. If the leakage current is low, the circuit<br />

is capable <strong>of</strong> responding exclusively to the highest peak in the presence <strong>of</strong><br />

orher peaks <strong>of</strong> nearly equal height. However, too little leakage inhibits<br />

response to decaying signals entirely. In a digital implementation, the precise<br />

point <strong>of</strong> comparator switching can be determined by interpolation at the<br />

switching point only, thus avoiding a significant increase in computation<br />

elsewhere.<br />

In an analog implementation, single-shot number 1 simply indicates<br />

the beginning <strong>of</strong> a new period. The output converter is a period-to-voltage<br />

converter followed by a reciprocal element. In a digital implementation, one<br />

would simply count samples between peak detections for the period and do a<br />

digital division or table lookup.<br />

The adaptive control processor looks at the current frequency and sets<br />

three detection parameters accordingly. The preprocessor filter cut<strong>of</strong>f is set at<br />

about 1. 2 times the current frequency, while the blanking single shot is set<br />

for 80% <strong>of</strong> the current period. The peak detector discharge rate is normally<br />

set fairly high to allow tracking <strong>of</strong> decaying signals. During startup from<br />

silence, however, it is set for little or no discharge. Startup also requires that<br />

the low-pass filter revert to a high cut<strong>of</strong>f frequency and that the blanking<br />

time be set to a low value. As soon as two peaks are detected, whi(Oh then<br />

gives a preliminary period estimate, the parameters are set accordingly. If the<br />

first estimate is erroneous due to multiple peaks, the filter cut<strong>of</strong>f and blanking<br />

will continue to favor high frequencies until the peak detector has<br />

charged to the absolute highest peak in the signal. At this point, a longer<br />

period would be found and the feedback would adjust to favor it. The<br />

processor also detects long dead periods and resets to the startup mode in<br />

response.<br />

One way to improve the performance <strong>of</strong> the detector is to construct a<br />

duplicate that processes negative peaks. As before, if the two disagree, the<br />

final pitch output should the lower <strong>of</strong> the two estimates. With this improvement,<br />

about the only waveforms that it would consistently fail on<br />

would be Fig. 16-17E and a backward version <strong>of</strong> Fig. 16-17F, the latter <strong>of</strong><br />

which is unlikely to occur unless the speech had been subjected to severe<br />

dispersion.<br />

The idea <strong>of</strong> using multiple detectors and taking a majority vote has<br />

been carried to the limit in a scheme proposed by Gold and Rabiner. The<br />

general idea is to make several (six) estimates <strong>of</strong> the period using individual<br />

peak and valley (negative peak) amplitudes as well as differences between<br />

peak and valley and peak and previous peak. These six estimates along with<br />

the preceding two estimates for each are combined in a decision tree to obtain<br />

the final estimate. If there is a significant lack in consistency among the 18<br />

values, no decision is made and the sound is declared to be unpitched. A full<br />

explanation <strong>of</strong> the algorithm is quite involved and would require too much<br />

space to reproduce here. Although seemingly complex, the programming is<br />

straightforward and efficient.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!