DSP Labs
  • INTRODUCTION
  • BILL OF MATERIALS
  • 1. OVERVIEW AND INSTALLATION
    • 1.1 Hardware
    • 1.2 Software
      • CubeMX
      • SW4STM32
      • Eclipse tips
    • 1.3 First project!
  • 2. AUDIO PASSTHROUGH
    • 2.1 Audio I/O theory
      • Microphone
      • Stereo decoder
    • 2.2 Updating peripherals
    • 2.3 Wiring audio I/O
    • 2.4 Coding passthrough
  • 3. ALIEN VOICE EFFECT
    • 3.1 How it works
    • 3.2 Real-time DSP tips
    • 3.3 Real-time with Python
    • 3.4 C implementation
  • 4. DIGITAL FILTER DESIGN
    • 4.1 Design approaches
    • 4.2 Real-time implementation
  • 5. GRANULAR SYNTHESIS
    • 5.1 How it works
    • 5.2 Implementation
  • 6. LINEAR PREDICTION
    • 6.1 Theory behind LPC
    • 6.2 Implementation
  • 7. DFT PITCH SHIFTING
    • 7.1 How it works
    • 7.2 Python implementation
Powered by GitBook
On this page

Was this helpful?

6. LINEAR PREDICTION

Previous5.2 ImplementationNext6.1 Theory behind LPC

Last updated 6 years ago

Was this helpful?

In this exercise, we enhance our granular synthesis pitch shifter by using (LPC). Although our real-time implementation already does a good job in lowering the pitch, the result may sound unnatural. The motivation behind using LPC is to preserve the energy envelope of the initial speech throughout the transformation in order to improve the output quality.

In , we briefly explain the theory behind LPC. In particular, we will see that there exists an intuitive model to describe the production of human speech. This model results in a system of linear equations that needs to be solved (for each buffer) in order to keep this energy envelope untouched.

In , we implement the code that solves the set of equations presented in Section 6.1. We then guide you on the use of this code in order to improve the quality of the granular synthesis effect from the previous chapter.

As before, text contained in highlighted boxes, as shown below, will require you to determine the appropriate solution/implementation.

TASK: This is a task for you!

Linear Predictive Coding
Section 6.1
Section 6.2