Recording and Analyzing Personal Voice Signals with MATLAB

Resource Overview

This project involves recording a 15-30 second voice sample, processing it through MATLAB using functions like wavread and sound, and conducting comprehensive signal analysis including time-domain waveform plotting, power spectrum calculation at 1-second intervals, FIR/IIR filter design with frequency response visualization, signal filtering implementation, and time-frequency analysis with 0.05-second resolution.

Detailed Documentation

Following the provided guidelines, I will expand the technical documentation while preserving all core concepts and enhancing it with implementation details. Before starting the recording process, ensure your voice sample duration falls within the 15-30 second range. You can use MATLAB's wavread function (or audioread for newer versions) to sample your voice recording, noting that this function returns both the audio data and sampling frequency - crucial parameters for subsequent analysis. The implementation typically involves: [audio_data, fs] = wavread('filename.wav'); where fs represents the sampling frequency. We will first plot the time-domain waveform of the original voice signal. This visualization helps understand amplitude variations over time. Then, we'll segment the signal into 1-second intervals using buffer functions or loop-based indexing, and compute the power spectrum for each segment using FFT-based methods like pwelch or periodogram. This approach reveals frequency content evolution throughout the recording. To analyze voice signal characteristics more deeply, we'll design both FIR (Finite Impulse Response) and IIR (Infinite Impulse Response) filters. FIR filters can be designed using windowing methods (fir1 function) offering linear phase response, while IIR filters (butter, cheby1 functions) provide steeper roll-off with fewer coefficients. We'll plot both magnitude and phase response curves using freqz function, demonstrating filter characteristics in frequency domain. The designed filters will then be applied to the original signal using filter function (for IIR) or conv/filtfilt (for FIR with zero-phase distortion). The filtered signals' time-domain waveforms will be plotted for comparison. Finally, auditory verification can be performed using MATLAB's sound function to playback both original and processed signals. Additionally, for detailed time-frequency analysis, we'll compute characteristic frequency band variations over time by calculating power spectra at 0.05-second intervals. This high-resolution analysis can be implemented using spectrogram function with appropriate windowing parameters, revealing finer temporal patterns in vocal characteristics. These enhanced technical procedures should meet comprehensive signal processing requirements while providing clear implementation pathways for MATLAB users.