mag2db
Builtin index · Signal processing
result = mag2db(x)
Input: x · Output: result
What it is
x: a number or vector (amplitude/voltage ratio).
Overloads
One call shape — this function is not overloaded.
Code Input Output Description
result = mag2db(x)x number or vector not documented yet
result —
Returns the same shape: 20*log10(x). AMPLITUDE/field-quantity convention.
Examples
From the documentation, and run by the build -- the output and the figure below are what the engine actually produced. Simplest first.
print ("{mag2db(2)} dB" ) # 6.0206 -- a factor-of-2 voltage ratio
print ("{pow2db(2)} dB" ) # 3.0103 -- a factor-of-2 power ratio
output 6.0206 dB
3.0103 dB from numerics-dsp
fs = 1000
b = butter (4 , "low" , 100 , fs)
h = freqz (b, 512 )
f = linspace (0 , fs / 2 , 512 )
plot (f, mag2db (abs (h)), color = "#4169e1" , width = 2 )
xscale ("log" )
ylim (-80 , 5 )
xlabel ("frequency (Hz)" )
ylabel ("magnitude (dB)" )
title ("4th-order Butterworth, 100 Hz cutoff" )
output · plot: figure 8 (512 points)
-80
-60
-40
-20
0
0
150
300
450
Magnitude Response
Frequency (Hz)
Magnitude (dB)
-150
-100
-50
0
50
100
150
0
150
300
450
Phase Response
Frequency (Hz)
Phase (deg)
-250
-200
-150
-100
-50
0
0
150
300
450
Group Delay
Frequency (Hz)
Delay (samples)
-120
-80
-40
0
40
10 −272
10 −204
10 −136
10 −68
10 0
x=-0.135, y=0.991
x=-0.135, y=-0.991
x=0.57, y=0.821
x=0.57, y=-0.821
4th-order Butterworth, 100 Hz
cutoff
frequency (Hz)
magnitude (dB)
from signal-processing
fs = 1000
t = (0 to 999 ) / fs
signal = sin (2 * pi * 50 * t) + 0.5 * sin (2 * pi * 220 * t) + 0.1 * randn (1000 , seed = 2 )
lp = butter (4 , "low" , 100 , fs) # 4th-order lowpass, 100 Hz cutoff
notch = butter (2 , "notch" , [45 , 55 ], fs) # removes 45-55 Hz mains hum
filtered = sosfilt (lp, signal) # causal, one pass
zero_phase = filtfilt (lp, signal) # zero-phase, double effective order
print ("lp is stable: {is_stable(lp)}, notch is stable: {is_stable(notch)}" )
H = freqz (lp, 512 )
plot (linspace (0 , fs/2 , 512 ), mag2db (abs (H)))
output lp is stable: true, notch is stable: true
· plot: figure 3 (512 points)
-200
-100
0
100
200
300
400
500
-200
0
200
400
600
800
x=0.21, y=0
x=0.21, y=0
x=0.21, y=0
x=0.21, y=0
x=0.21, y=0
x=0.21, y=0
x=0.21, y=$10^{-9}$
x=0.21, y=$1.1\times10^{-9}$
x=0.21, y=$1.2\times10^{-9}$
x=0.21, y=$1.3\times10^{-9}$
x=0.21, y=$1.4\times10^{-9}$
x=0.21, y=$1.5\times10^{-9}$
x=0.21, y=$1.7\times10^{-9}$
x=0.21, y=$1.8\times10^{-9}$
x=0.21, y=$2\times10^{-9}$
x=0.21, y=$2.1\times10^{-9}$
x=0.21, y=$2.3\times10^{-9}$
x=0.21, y=$2.5\times10^{-9}$
x=0.21, y=$2.7\times10^{-9}$
x=0.21, y=$2.9\times10^{-9}$
x=0.21, y=$3.2\times10^{-9}$
x=0.21, y=$3.4\times10^{-9}$
x=0.21, y=$3.7\times10^{-9}$
x=0.21, y=$4\times10^{-9}$
x=0.21, y=$4.4\times10^{-9}$
x=0.21, y=$4.8\times10^{-9}$
x=0.21, y=$5.2\times10^{-9}$
x=0.21, y=$5.6\times10^{-9}$
x=0.21, y=$6.1\times10^{-9}$
x=0.21, y=$6.6\times10^{-9}$
x=0.21, y=$7.1\times10^{-9}$
x=0.21, y=$7.7\times10^{-9}$
x=0.21, y=$8.4\times10^{-9}$
x=0.21, y=$9.1\times10^{-9}$
x=0.21, y=$9.9\times10^{-9}$
x=0.21, y=$1.1\times10^{-8}$
x=0.21, y=$1.2\times10^{-8}$
x=0.21, y=$1.3\times10^{-8}$
x=0.21, y=$1.4\times10^{-8}$
x=0.21, y=$1.5\times10^{-8}$
x=0.21, y=$1.6\times10^{-8}$
x=0.21, y=$1.7\times10^{-8}$
x=0.21, y=$1.9\times10^{-8}$
x=0.21, y=$2\times10^{-8}$
x=0.21, y=$2.2\times10^{-8}$
x=0.21, y=$2.4\times10^{-8}$
x=0.21, y=$2.6\times10^{-8}$
x=0.21, y=$2.8\times10^{-8}$
x=0.21, y=$3.1\times10^{-8}$
x=0.21, y=$3.3\times10^{-8}$
x=0.21, y=$3.6\times10^{-8}$
x=0.21, y=$3.9\times10^{-8}$
x=0.21, y=$4.2\times10^{-8}$
x=0.21, y=$4.6\times10^{-8}$
x=0.21, y=$5\times10^{-8}$
x=0.21, y=$5.4\times10^{-8}$
x=0.21, y=$5.9\times10^{-8}$
x=0.21, y=$6.4\times10^{-8}$
x=0.21, y=$6.9\times10^{-8}$
x=0.21, y=$7.5\times10^{-8}$
x=0.21, y=$8.1\times10^{-8}$
x=0.21, y=$8.8\times10^{-8}$
x=0.21, y=$9.5\times10^{-8}$
x=0.21, y=$10^{-7}$
x=0.21, y=$1.1\times10^{-7}$
x=0.21, y=$1.2\times10^{-7}$
x=0.21, y=$1.3\times10^{-7}$
x=0.21, y=$1.4\times10^{-7}$
x=0.21, y=$1.5\times10^{-7}$
x=0.21, y=$1.7\times10^{-7}$
x=0.21, y=$1.8\times10^{-7}$
x=0.21, y=$2\times10^{-7}$
x=0.21, y=$2.1\times10^{-7}$
x=0.21, y=$2.3\times10^{-7}$
x=0.21, y=$2.5\times10^{-7}$
x=0.21, y=$2.7\times10^{-7}$
x=0.21, y=$3\times10^{-7}$
x=0.21, y=$3.2\times10^{-7}$
x=0.21, y=$3.5\times10^{-7}$
x=0.21, y=$3.8\times10^{-7}$
x=0.21, y=$4.1\times10^{-7}$
x=0.21, y=$4.4\times10^{-7}$
x=0.21, y=$4.8\times10^{-7}$
x=0.21, y=$5.2\times10^{-7}$
x=0.21, y=$5.7\times10^{-7}$
x=0.21, y=$6.1\times10^{-7}$
x=0.21, y=$6.7\times10^{-7}$
x=0.21, y=$7.2\times10^{-7}$
x=0.21, y=$7.8\times10^{-7}$
x=0.21, y=$8.5\times10^{-7}$
x=0.21, y=$9.2\times10^{-7}$
x=0.21, y=$10^{-6}$
x=0.21, y=$1.1\times10^{-6}$
x=0.21, y=$1.2\times10^{-6}$
x=0.21, y=$1.3\times10^{-6}$
x=0.21, y=$1.4\times10^{-6}$
x=0.21, y=$1.5\times10^{-6}$
x=0.21, y=$1.6\times10^{-6}$
x=0.21, y=$1.8\times10^{-6}$
x=0.21, y=$1.9\times10^{-6}$
x=0.21, y=$2.1\times10^{-6}$
x=0.21, y=$2.2\times10^{-6}$
x=0.21, y=$2.4\times10^{-6}$
x=0.21, y=$2.6\times10^{-6}$
x=0.21, y=$2.9\times10^{-6}$
x=0.21, y=$3.1\times10^{-6}$
x=0.21, y=$3.4\times10^{-6}$
x=0.21, y=$3.6\times10^{-6}$
x=0.21, y=$4\times10^{-6}$
x=0.21, y=$4.3\times10^{-6}$
x=0.21, y=$4.7\times10^{-6}$
x=0.21, y=$5\times10^{-6}$
x=0.21, y=$5.5\times10^{-6}$
x=0.21, y=$5.9\times10^{-6}$
x=0.21, y=$6.4\times10^{-6}$
x=0.21, y=$7\times10^{-6}$
x=0.21, y=$7.6\times10^{-6}$
x=0.21, y=$8.2\times10^{-6}$
x=0.21, y=$8.9\times10^{-6}$
x=0.21, y=$9.6\times10^{-6}$
x=0.21, y=$10^{-5}$
x=0.21, y=$1.1\times10^{-5}$
x=0.21, y=$1.2\times10^{-5}$
x=0.21, y=$1.3\times10^{-5}$
x=0.21, y=$1.4\times10^{-5}$
x=0.21, y=$1.6\times10^{-5}$
x=0.21, y=$1.7\times10^{-5}$
x=0.21, y=$1.8\times10^{-5}$
x=0.21, y=$2\times10^{-5}$
x=0.21, y=$2.2\times10^{-5}$
x=0.21, y=$2.3\times10^{-5}$
x=0.21, y=$2.5\times10^{-5}$
x=0.21, y=$2.8\times10^{-5}$
x=0.21, y=$3\times10^{-5}$
x=0.21, y=$3.2\times10^{-5}$
x=0.21, y=$3.5\times10^{-5}$
x=0.21, y=$3.8\times10^{-5}$
x=0.21, y=$4.1\times10^{-5}$
x=0.21, y=$4.5\times10^{-5}$
x=0.21, y=$4.9\times10^{-5}$
x=0.21, y=$5.3\times10^{-5}$
x=0.21, y=$5.7\times10^{-5}$
x=0.21, y=$6.2\times10^{-5}$
x=0.21, y=$6.7\times10^{-5}$
x=0.21, y=$7.3\times10^{-5}$
x=0.21, y=$7.9\times10^{-5}$
x=0.21, y=$8.6\times10^{-5}$
x=0.21, y=$9.3\times10^{-5}$
x=0.21, y=$10^{-4}$
x=0.21, y=$1.1\times10^{-4}$
x=0.21, y=$1.2\times10^{-4}$
x=0.21, y=$1.3\times10^{-4}$
x=0.21, y=$1.4\times10^{-4}$
x=0.21, y=$1.5\times10^{-4}$
x=0.21, y=$1.6\times10^{-4}$
x=0.21, y=$1.8\times10^{-4}$
x=0.21, y=$1.9\times10^{-4}$
x=0.21, y=$2.1\times10^{-4}$
x=0.21, y=$2.3\times10^{-4}$
x=0.21, y=$2.5\times10^{-4}$
x=0.21, y=$2.7\times10^{-4}$
x=0.21, y=$2.9\times10^{-4}$
x=0.21, y=$3.1\times10^{-4}$
x=0.21, y=$3.4\times10^{-4}$
x=0.21, y=$3.7\times10^{-4}$
x=0.21, y=$4\times10^{-4}$
x=0.21, y=$4.3\times10^{-4}$
x=0.21, y=$4.7\times10^{-4}$
x=0.21, y=$5.1\times10^{-4}$
x=0.21, y=$5.5\times10^{-4}$
x=0.21, y=$6\times10^{-4}$
x=0.21, y=$6.5\times10^{-4}$
x=0.21, y=$7\times10^{-4}$
x=0.21, y=$7.6\times10^{-4}$
x=0.21, y=$8.2\times10^{-4}$
x=0.21, y=$8.9\times10^{-4}$
x=0.21, y=$9.7\times10^{-4}$
x=0.21, y=0.001
x=0.21, y=0.001
x=0.21, y=0.001
x=0.21, y=0.001
x=0.21, y=0.001
x=0.21, y=0.002
x=0.21, y=0.002
x=0.21, y=0.002
x=0.21, y=0.002
x=0.21, y=0.002
x=0.209, y=0.002
x=0.209, y=0.002
x=0.209, y=0.003
x=0.209, y=0.003
x=0.209, y=0.003
x=0.209, y=0.003
x=0.209, y=0.003
x=0.209, y=0.004
x=0.208, y=0.004
x=0.208, y=0.004
x=0.208, y=0.004
x=0.207, y=0.004
x=0.207, y=0.005
frequency (Hz)
from signal-processing
fs = 2000
t = linspace (0 , 1 , fs)
x = sin (2 * pi * 120 * t) + 0.4 * sin (2 * pi * 350 * t) + 0.2 * randn (fs, seed = 4 )
X = rfft (x)
f = linspace (0 , fs / 2 , len (X))
print ("largest peak at {round(f[argmax(abs(X))], 1)} Hz" )
plot (f, mag2db (abs (X)), color = "#4169e1" )
xlabel ("frequency (Hz)" )
ylabel ("magnitude (dB)" )
title ("two tones in noise" )
output largest peak at 120 Hz
· plot: figure 9 (1001 points)
-80
-60
-40
-20
0
0
150
300
450
Magnitude Response
Frequency (Hz)
Magnitude (dB)
-150
-100
-50
0
50
100
150
0
150
300
450
Phase Response
Frequency (Hz)
Phase (deg)
-250
-200
-150
-100
-50
0
0
150
300
450
Group Delay
Frequency (Hz)
Delay (samples)
-120
-80
-40
0
40
10 −272
10 −204
10 −136
10 −68
10 0
x=-0.135, y=0.991
x=-0.135, y=-0.991
x=0.57, y=0.821
x=0.57, y=-0.821
two tones in noise
frequency (Hz)
magnitude (dB)
from signal-processing
How it works
dB conversions — MATLAB's own naming (mag2db/db2mag for amplitude/voltage ratios, pow2db/db2pow for power ratios), chosen deliberately over a single ambiguous db(x) — whether a ratio is a power or an amplitude changes the factor of 10 vs. 20, and a bare db() would hide which one it picked.
From the note above this builtin in the interpreter, where the reasoning was written down as it was built.