# Why is there an amplitude difference in Matlab and Python?

I've been trying to read an audio file in Matlab using this code --

q = audioread('C:\Users\DELL\Downloads\cha1.wav'); figure; plot(q); 

Translated to Python, the code looks like this --

import scipy.io.wavfile

orig_sample_rate = tup[0]
q = tup[1]


When I try to plot these in Matlab, they produce the same waveform with different amplitudes.

Figure 1: Matlab code, Figure 2: Python code

How can I make the amplitudes the same? Scaling down did not produce accurate results.

• what's there to solve? Two different programs interpret the same file differently, but with a factor? That's not a problem, that's just interpretation. Commented Oct 21, 2017 at 19:54
• Sorry, my question wasn't very clear. I want to know how to make the amplitudes the same. Scaling down by a factor did not give accurate results. Commented Oct 21, 2017 at 20:00
• "not accurate" in which way? What's the difference? (please try to give all relevant info) Commented Oct 21, 2017 at 20:03
• Is it just that Matlab normalizes with a factor of $2^{15}$ or so?
– Peter K.
Commented Oct 21, 2017 at 20:36
• How are you moving from Python to Matlab to plot the second signal ? There might be some spurious gain in the conversion Commented Oct 21, 2017 at 21:41

This function of Matlab use an algorithm that normalized every data of an external medium, while Pyhton doesn't do that. You just need to multiply the Matlab values to 32,767.0 or divide Python values to the same value. That number is because you are using a file with each value has 16 bits, but with sign, so $$2^{16}/2 = 32767$$