# How do I write this chua oscillator to an audio file in matlab?

• MATLAB
• matlab audio
In summary, the code in the link will take the output of a MATLAB model of the circuit and write a *.wav file.
matlab audio
TL;DR Summary
writing chua oscillator to an audio file using matlab
hello i would like to ask how to write the solution of this matlab program to an audio file using the audio tool box or any other technique. thanks very much.
 function chua_oscillator %This program is computed by S.Sabarathinam %Based on: Nonlinear Dynamics: Integrability, Chaos and Patterns,by M Lakshmanan, S Rajaseekar % to see the period doubling change the value of "r" clear all figure(1) r=1920.0; ga = -0.758d-03; gb = -0.409d-03; c1 = 10.0d-09; c2 = 100.0d-09; bind = 20.0d-03; a = r*ga; b = r*gb; alpha = c2/c1; beta=(c2*r*r)/bind; %time step and initial condition tspan = 0:0.01:500; x10 = 0.11; x20 = 0.2; x30 = -0.3; y0 = [x10; x20; x30]; [t,y] = ode45(@(t,x) f(t,x,a,b,alpha,beta),tspan,y0); x1=y(:,1); x2=y(:,2); x3=y(:,3); %plot the variable x and y plot(x1,x2) function dy = f(t,y,a,b,alpha,beta) x1 = y(1); x2 = y(2); x3 = y(3); hx=b*x1 + 0.5d0*(a-b)*(abs(x1+1.0)-abs(x1-1.0)); dx1=alpha*(x2-x1-hx); dx2=x1-x2+x3; dx3=-beta*x2; dy = [dx1; dx2; dx3]; 
https://www.mathworks.com/help/audio/index.html?s_tid=srchtitle_audio_1

Last edited:
Welcome to PF.

I didn't click on the ZIP file, but are you asking how to take the output of a MATLAB model of the circuit and write a *.wav file that you can play? Or are you asking something else.

Does the MATLAB model of the circuit use the differential equations mentioned in this Wikipedia article?

https://en.wikipedia.org/wiki/Chua's_circuit

thanks for your response. yes that is my question. i edited my original post to include the code.

Have you worked with *.wav files before? I've only worked with them a little, to process digitized audio data that was acquired at 44.1kHz. I think at the least you will want to adjust your sample rate in your code to match one of the standard *.wav sample frequencies. Maybe the audio toolbox helps you to create the header for your *.wav file that your MATLAB code will be calculating the data for...

https://ccrma.stanford.edu/courses/422-winter-2014/projects/WaveFormat/

matlab audio
thanks a lot for your help.

berkeman
From https://www.mathworks.com/help/matlab/ref/audiowrite.html :
audiowrite(filename,y,Fs) writes a matrix of audio data, y, with sample rate Fs to a file called filename.​
For WAV files, there are no restrictions on the value of Fs that you write to the file, though a non-standard value might not be playable depending on what you use to play it.

berkeman

## 1. How do I generate the Chua oscillator signal in MATLAB?

To generate the Chua oscillator signal in MATLAB, you need to solve the differential equations governing the Chua circuit. This can be done using numerical solvers like ode45. First, define the equations in a function file and then use ode45 to solve them over a specified time range.

## 2. How do I convert the Chua oscillator signal to an audio signal?

The Chua oscillator signal needs to be normalized to fit within the range of audio signals, typically between -1 and 1. Once normalized, you can use the audiowrite function to save the signal as an audio file, specifying the desired sample rate.

## 3. What sample rate should I use when saving the Chua oscillator signal as an audio file?

The sample rate depends on the frequency content of your Chua oscillator signal. A common sample rate for audio files is 44100 Hz, which is CD quality. However, you might choose a different sample rate based on the specific characteristics of your signal.

## 4. How do I use the audiowrite function in MATLAB to save the signal?

Use the audiowrite function by specifying the filename, the signal array, and the sample rate. For example: audiowrite('chua_oscillator.wav', signal, fs); where signal is your normalized Chua oscillator signal and fs is the sample rate.

## 5. How do I ensure the Chua oscillator signal is properly normalized before saving?

To normalize the Chua oscillator signal, divide the signal by its maximum absolute value. This ensures the signal amplitude ranges between -1 and 1. For example: normalized_signal = signal / max(abs(signal));.