Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
7 views5 pages

GNU Linux

The project titled 'Audio Signal Visualizer in GNU Octave' aims to create a basic audio signal visualizer using GNU Octave on Ubuntu, focusing on time domain waveform extraction from a .wav audio file. It covers essential concepts of digital signal processing, including sampling, waveform plotting, and frequency visualization using Fast Fourier Transform (FFT). The project includes practical implementation steps, code examples, and output visualizations for both time and frequency domains.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views5 pages

GNU Linux

The project titled 'Audio Signal Visualizer in GNU Octave' aims to create a basic audio signal visualizer using GNU Octave on Ubuntu, focusing on time domain waveform extraction from a .wav audio file. It covers essential concepts of digital signal processing, including sampling, waveform plotting, and frequency visualization using Fast Fourier Transform (FFT). The project includes practical implementation steps, code examples, and output visualizations for both time and frequency domains.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
You are on page 1/ 5

GNU Octeve- for Beginners ( Using Ubuntu/Linex )

Name of Project- Audio Signal Visualizer in GNU Octave (Time domain )


By: Bodhiswatta Biswas
Date: 23rd July 2025’
Platform: Ubuntu 25.04 with GNU Octave
Specialization: Electronics Engineering (VLSI)

1. Abstract
This project focuses on building a basic audio signal visualizer using GNU Octave. The goal is to load an
audio file (a .wav WhatsApp voice message), extract its waveform in the time domain, and understand how
signals are represented in digital signal processing (DSP). It introduces fundamental concepts of signal
sampling, waveform plotting, and basic frequency visualization.

2.Objectives
To visualize audio signals in the time domain.
To understand how sampled digital audio data is structured.
To practice using Octave for basic DSP tasks.
To explore voice-based waveform data using personal .wav recordings.

3.Software and Tools Used


• GNU Octave 8.1.0 (open-source MATLAB alternative)
• Operating System: Ubuntu Linux 25.04
• Audio File: WhatsApp voice message exported as .wav

• Plotting Tools: Octave built-in plot functions


• Script File: whatsapp_waveform.m

4.Basic Theory
In digital signal processing, audio is represented as discrete samples taken at a fixed rate (e.g.,
44.1 kHz). Each sample contains amplitude information. By plotting these values against time,
we can visualize how sound varies over time.

audioread() Function
Reads an audio file (e.g., .wav, .mp3) and extracts:
The audio signal (y) (amplitude values over time).
The sample rate (Fs) (how many samples per second).

Sample Rate (Fs)


Number of samples per second (measured in Hz, e.g., 44100 Hz).
Higher Fs = Better quality (but larger file size).
Standard rates:
44.1 kHz (CD quality)
48 kHz (DVD/film)
16 kHz (Voice recordings)
8 kHz (Telephone quality).
Audio Signal Vector (y)
A 1D array (vector) containing amplitude values of the audio signal.
For mono audio y= [y1, y2, y3 ………, yn] single column
For stereo audio y= [ [ L1, R1 ], [ L2, R2 ], ………, [ Ln, Rn ] ] tow columns
length(y) Number of Samples
Definition: Total number of amplitude values in y
Formula:

5.Project Description -
A. audio wave from:
1. First we created a working folder--

2. Exported a WhatsApp voice message in .wav format--

3. Then we open GNU and creat a new Octave script --


4. Write the code --

Save as: whatsapp_waveform.m

5. Run the Script ( In the Command Window in Octave, ) --


write a command: cd ~/OctaveProjects/AudioVisualizer whatsapp_waveform
6. Output --

Figure 1: Waveform of WhatsApp voice message (TIME)

Audio Signal Visualizer in GNU Octave ( Frequency


domain )

Next Step: Frequency Analysis (FFT)

Objective: To convert the audio signal from the time domain to the frequency
domain using Fast Fourier Transform (FFT) and visualize the frequency
components present in the audio.

Implementation in GNU Octave:


Creat a new script and erite a code than save as .m file
% STEP 1: Load the audio file
[y, Fs] = audioread('WhatsApp Audio 2025-07-23 at 3.54.30 PM.wav');

% STEP 2: Plot Time-Domain Waveform


t = (0:length(y)-1) / Fs;
subplot(2,1,1); % Top subplot for waveform
plot(t, y);
xlabel('Time (seconds)');
ylabel('Amplitude');
title('Time-Domain: Audio Waveform');
% STEP 3: Frequency-Domain Analysis using FFT
N = length(y); % Total number of samples
Y = fft(y); % Perform FFT
f = (0:N-1)*(Fs/N); % Frequency axis

mag = abs(Y); % Get magnitude

% STEP 4: Plot Frequency Spectrum (up to Nyquist)


half_N = floor(N/2); % Only take half (positive frequencies)
subplot(2,1,2); % Bottom subplot for frequency
plot(f(1:half_N), mag(1:half_N));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency-Domain: FFT Spectrum');
xlim([0 4000]); % Limit to 0–4000 Hz (speech range)
Run the Script : fft_visualizer in command window

Figure 1: Waveform of WhatsApp voice message (FFT)

You might also like