Ejemplo n.º 1
0
def plot_pink_noise():
    """Makes a plot showing power spectrums for pink noise.
    """
    thinkdsp.random_seed(20)

    duration = 1.0
    framerate = 512

    def make_spectrum(signal):
        wave = signal.make_wave(duration=duration, framerate=framerate)
        spectrum = wave.make_spectrum()
        spectrum.hs[0] = 0
        return spectrum

    signal = thinkdsp.UncorrelatedUniformNoise()
    white = make_spectrum(signal)

    signal = thinkdsp.PinkNoise()
    pink = make_spectrum(signal)

    signal = thinkdsp.BrownianNoise()
    red = make_spectrum(signal)

    linewidth = 2
    # colorbrewer2.org 4-class sequential OrRd
    white.plot_power(label='white', color='#fdcc8a', linewidth=linewidth)
    pink.plot_power(label='pink', color='#fc8d59', linewidth=linewidth)
    red.plot_power(label='red', color='#d7301f', linewidth=linewidth)
    thinkplot.save(root='noise-triple',
                   xlabel='Frequency (Hz)',
                   ylabel='Power',
                   xscale='log',
                   yscale='log',
                   xlim=[1, red.fs[-1]])
Ejemplo n.º 2
0
def plot_pink_noise():
    """Makes a plot showing power spectrums for pink noise.
    """
    thinkdsp.random_seed(20)

    duration = 1.0
    framerate = 512

    def make_spectrum(signal):
        wave = signal.make_wave(duration=duration, framerate=framerate)
        spectrum = wave.make_spectrum()
        spectrum.hs[0] = 0
        return spectrum

    signal = thinkdsp.UncorrelatedUniformNoise()
    white = make_spectrum(signal)

    signal = thinkdsp.PinkNoise()
    pink = make_spectrum(signal)

    signal = thinkdsp.BrownianNoise()
    red = make_spectrum(signal)

    linewidth = 2
    white.plot_power(label='white', color='#9ecae1', linewidth=linewidth)
    pink.plot_power(label='pink', color='#4292c6', linewidth=linewidth)
    red.plot_power(label='red', color='#2171b5', linewidth=linewidth)
    thinkplot.save(root='noise-triple',
                   xlabel='Frequency (Hz)',
                   ylabel='Power',
                   xscale='log',
                   yscale='log',
                   xlim=[1, red.fs[-1]])
Ejemplo n.º 3
0
def plot_pink_noise():
    """Makes a plot showing power spectrums for pink noise.
    """
    thinkdsp.random_seed(20)

    duration = 1.0
    framerate = 512

    signal = thinkdsp.UncorrelatedUniformNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    white = wave.make_spectrum()

    signal = thinkdsp.PinkNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    pink = wave.make_spectrum()

    signal = thinkdsp.BrownianNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    red = wave.make_spectrum()

    linewidth = 1
    white.plot_power(low=1, label='white', color='gray', linewidth=linewidth)
    pink.plot_power(low=1, label='pink', color='pink', linewidth=linewidth)
    red.plot_power(low=1, label='red', color='red', linewidth=linewidth)
    thinkplot.save(root='noise-triple',
                   xlabel='frequency (Hz)',
                   ylabel='power',
                   xscale='log',
                   yscale='log',
                   axis=[1, 300, 1e-4, 1e5])
Ejemplo n.º 4
0
def plot_pink_noise():
    """Makes a plot showing power spectrums for pink noise.
    """
    thinkdsp.random_seed(20)

    duration = 1.0
    framerate = 512

    signal = thinkdsp.UncorrelatedUniformNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    white = wave.make_spectrum()

    signal = thinkdsp.PinkNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    pink = wave.make_spectrum()

    signal = thinkdsp.BrownianNoise()
    wave = signal.make_wave(duration=duration, framerate=framerate)
    red = wave.make_spectrum()

    linewidth = 1
    white.plot_power(low=1, label='white', color='gray', linewidth=linewidth)
    pink.plot_power(low=1, label='pink', color='pink', linewidth=linewidth)
    red.plot_power(low=1, label='red', color='red', linewidth=linewidth)
    thinkplot.save(root='noise-triple',
                   xlabel='frequency (Hz)',
                   ylabel='power',
                   xscale='log',
                   yscale='log',
                   axis=[1, 300, 1e-4, 1e5])
Ejemplo n.º 5
0
def main():
    thinkdsp.random_seed(19)

    signal = thinkdsp.BrownianNoise()
    make_periodogram(signal)
    return

    signal = thinkdsp.UncorrelatedUniformNoise()
    wave1 = signal.make_wave(duration=1.0, framerate=11025)
    wave2 = signal.make_wave(duration=1.0, framerate=11025)
    print wave1.cov(wave2)
    print wave1.cov(wave1)
    print wave2.cov(wave2)

    print wave1.cov_mat(wave2)

    print wave1.corr(wave2)
    print wave1.corr(wave1)
    print wave2.corr(wave2)
    return

    signal = thinkdsp.BrownianNoise()
    process_noise(signal, root='red')
    return

    signal = thinkdsp.UncorrelatedUniformNoise()
    process_noise(signal, root='white')
    return

    signal = thinkdsp.WhiteNoise()
    white, integ_white = test_noise(signal, 'white-noise')
    print white.estimate_slope()

    signal = thinkdsp.BrownianNoise()
    red, integ_red = test_noise(signal, 'red-noise')
    print red.estimate_slope()
    return

    signal = thinkdsp.PinkNoise(beta=1.0)
    pink, integ_pink = test_noise(signal, 'pink-noise')
    print pink.estimate_slope()

    thinkplot.preplot(num=3)
    white.plot(low=1, exponent=2, label='white', linewidth=2)
    pink.plot(low=1, exponent=2, label='pink', linewidth=2)
    red.plot(low=1, exponent=2, label='red', linewidth=2)
    thinkplot.show(xlabel='frequency (Hz)',
                   ylabel='power',
                   xscale='log',
                   yscale='log',
                   axis=[1, 18000, 1e-5, 1e8])
    

    return
Ejemplo n.º 6
0
def main():
    thinkdsp.random_seed(19)

    signal = thinkdsp.BrownianNoise()
    make_periodogram(signal)
    return

    signal = thinkdsp.UncorrelatedUniformNoise()
    wave1 = signal.make_wave(duration=1.0, framerate=11025)
    wave2 = signal.make_wave(duration=1.0, framerate=11025)
    print wave1.cov(wave2)
    print wave1.cov(wave1)
    print wave2.cov(wave2)

    print wave1.cov_mat(wave2)

    print wave1.corr(wave2)
    print wave1.corr(wave1)
    print wave2.corr(wave2)
    return

    signal = thinkdsp.BrownianNoise()
    process_noise(signal, root='red')
    return

    signal = thinkdsp.UncorrelatedUniformNoise()
    process_noise(signal, root='white')
    return

    signal = thinkdsp.WhiteNoise()
    white, integ_white = test_noise(signal, 'white-noise')
    print white.estimate_slope()

    signal = thinkdsp.BrownianNoise()
    red, integ_red = test_noise(signal, 'red-noise')
    print red.estimate_slope()
    return

    signal = thinkdsp.PinkNoise(beta=1.0)
    pink, integ_pink = test_noise(signal, 'pink-noise')
    print pink.estimate_slope()

    thinkplot.preplot(num=3)
    white.plot(low=1, exponent=2, label='white', linewidth=2)
    pink.plot(low=1, exponent=2, label='pink', linewidth=2)
    red.plot(low=1, exponent=2, label='red', linewidth=2)
    thinkplot.show(xlabel='frequency (Hz)',
                   ylabel='power',
                   xscale='log',
                   yscale='log',
                   axis=[1, 18000, 1e-5, 1e8])

    return
Ejemplo n.º 7
0
def main():
    thinkdsp.random_seed(17)
    plot_pink_noise()

    thinkdsp.random_seed(17)
    plot_gaussian_noise()

    thinkdsp.random_seed(20)
    signal = thinkdsp.UncorrelatedUniformNoise()
    process_noise(signal, root='white')

    thinkdsp.random_seed(20)
    signal = thinkdsp.PinkNoise(beta=1.0)
    process_noise(signal, root='pink')

    thinkdsp.random_seed(17)
    signal = thinkdsp.BrownianNoise()
    process_noise(signal, root='red')
Ejemplo n.º 8
0
def main():
    thinkdsp.random_seed(17)
    plot_pink_noise()

    thinkdsp.random_seed(17)
    plot_gaussian_noise()

    thinkdsp.random_seed(20)
    signal = thinkdsp.UncorrelatedUniformNoise()
    process_noise(signal, root='white')

    thinkdsp.random_seed(20)
    signal = thinkdsp.PinkNoise(beta=1.0)
    process_noise(signal, root='pink')

    thinkdsp.random_seed(17)
    signal = thinkdsp.BrownianNoise()
    process_noise(signal, root='red')
Ejemplo n.º 9
0
def plot_gaussian_noise():
    """Shows the distribution of the spectrum of Gaussian noise.
    """
    thinkdsp.random_seed(18)
    signal = thinkdsp.UncorrelatedGaussianNoise()
    wave = signal.make_wave(duration=0.5, framerate=11025)
    spectrum = wave.make_spectrum()

    thinkplot.preplot(2, cols=2)
    thinkstats2.NormalProbabilityPlot(spectrum.real, label='real')
    thinkplot.config(xlabel='Normal sample',
                     ylabel='Amplitude',
                     ylim=[-250, 250],
                     loc='lower right')

    thinkplot.subplot(2)
    thinkstats2.NormalProbabilityPlot(spectrum.imag, label='imag')
    thinkplot.config(xlabel='Normal sample',
                     ylim=[-250, 250],
                     loc='lower right')

    thinkplot.save(root='noise1')
Ejemplo n.º 10
0
def plot_gaussian_noise():
    """Shows the distribution of the spectrum of Gaussian noise.
    """
    thinkdsp.random_seed(18)
    signal = thinkdsp.UncorrelatedGaussianNoise()
    wave = signal.make_wave(duration=0.5, framerate=48000)
    spectrum = wave.make_spectrum()

    thinkplot.preplot(2, cols=2)
    thinkstats2.NormalProbabilityPlot(spectrum.real, label='real')
    thinkplot.config(xlabel='Normal sample',
                     ylabel='Amplitude',
                     ylim=[-250, 250],
                     loc='lower right')

    thinkplot.subplot(2)
    thinkstats2.NormalProbabilityPlot(spectrum.imag, label='imag')
    thinkplot.config(xlabel='Normal sample',
                     ylim=[-250, 250],
                     loc='lower right')

    thinkplot.save(root='noise1')