Skip to content

Commit 8dad861

Browse files
committed
Switch to OO code style & ensure y-range
1 parent 80a3f3e commit 8dad861

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed
Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
# This is a ported version of a MATLAB example from the signal processing
2-
# toolbox that showed some difference at one time between Matplotlib's and
3-
# MATLAB's scaling of the PSD. This differs from psd_demo3.py in that
4-
# this uses a complex signal, so we can see that complex PSD's work properly
1+
"""This is a ported version of a MATLAB example from the signal
2+
processing toolbox that showed some difference at one time between
3+
Matplotlib's and MATLAB's scaling of the PSD.
4+
5+
This differs from psd_demo3.py in that this uses a complex signal,
6+
so we can see that complex PSD's work properly
7+
8+
"""
9+
510
import numpy as np
611
import matplotlib.pyplot as plt
712
import matplotlib.mlab as mlab
@@ -12,27 +17,28 @@
1217
f = np.array([150, 140]).reshape(-1, 1)
1318
xn = (A * np.exp(2j * np.pi * f * t)).sum(axis=0) + 5 * np.random.randn(*t.shape)
1419

20+
fig, (ax0, ax1) = plt.subplots(ncols=2)
21+
22+
fig.subplots_adjust(hspace=0.45, wspace=0.3)
1523
yticks = np.arange(-50, 30, 10)
24+
yrange = (yticks[0], yticks[-1])
1625
xticks = np.arange(-500, 550, 100)
17-
plt.subplots_adjust(hspace=0.45, wspace=0.3)
18-
ax = plt.subplot(1, 2, 1)
1926

20-
plt.psd(xn, NFFT=301, Fs=fs, window=mlab.window_none, pad_to=1024,
27+
ax0.psd(xn, NFFT=301, Fs=fs, window=mlab.window_none, pad_to=1024,
2128
scale_by_freq=True)
22-
plt.title('Periodogram')
23-
plt.yticks(yticks)
24-
plt.xticks(xticks)
25-
plt.grid(True)
26-
plt.xlim(-500, 500)
27-
28-
plt.subplot(1, 2, 2, sharex=ax, sharey=ax)
29-
plt.psd(xn, NFFT=150, Fs=fs, window=mlab.window_none, noverlap=75, pad_to=512,
29+
ax0.set_title('Periodogram')
30+
ax0.set_yticks(yticks)
31+
ax0.set_xticks(xticks)
32+
ax0.grid(True)
33+
ax0.set_ylim(yrange)
34+
35+
ax1.psd(xn, NFFT=150, Fs=fs, window=mlab.window_none, pad_to=512, noverlap=75,
3036
scale_by_freq=True)
31-
plt.title('Welch')
32-
plt.xticks(xticks)
33-
plt.yticks(yticks)
34-
plt.ylabel('')
35-
plt.grid(True)
36-
plt.xlim(-500, 500)
37+
ax1.set_title('Welch')
38+
ax1.set_xticks(xticks)
39+
ax1.set_yticks(yticks)
40+
ax1.set_ylabel('') # overwrite the y-label added by `psd`
41+
ax1.grid(True)
42+
ax1.set_ylim(yrange)
3743

3844
plt.show()

0 commit comments

Comments
 (0)