Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #28853

Re: Numpy combine channels

Newsgroups comp.lang.python
Date 2012-09-10 13:15 -0700
References <de5d9415-f3d8-47b9-bcc2-822dc57fd1d8@googlegroups.com> <mailman.465.1347307911.27098.python-list@python.org> <0d091492-39e0-42b3-a383-9853af33136f@googlegroups.com>
Subject Re: Numpy combine channels
From Wanderer <wanderer@dialup4less.com>
Message-ID <mailman.467.1347308157.27098.python-list@python.org> (permalink)

Show all headers | View raw


On Monday, September 10, 2012 4:14:18 PM UTC-4, Wanderer wrote:
> On Monday, September 10, 2012 4:12:40 PM UTC-4, MRAB wrote:
> 
> > On 10/09/2012 20:39, Wanderer wrote:
> 
> > 
> 
> > > I have an array generated by audiolab of left and right stereo
> 
> > 
> 
> > > channels. It looks like [[1,1],[1,2],[2,3]]. I would like to combine
> 
> > 
> 
> > > the left and right channels to get an array [2,3,5]. Is there a numpy
> 
> > 
> 
> > > command to do that?
> 
> > 
> 
> > >
> 
> > 
> 
> > >>> import numpy
> 
> > 
> 
> > >>> numpy.array([[1,1],[1,2],[2,3]], dtype="i")
> 
> > 
> 
> > array([[1, 1],
> 
> > 
> 
> >         [1, 2],
> 
> > 
> 
> >         [2, 3]])
> 
> > 
> 
> > >>> a[:, 0]
> 
> > 
> 
> > array([1, 1, 2])
> 
> > 
> 
> > >>> a[:, 1]
> 
> > 
> 
> > array([1, 2, 3])
> 
> > 
> 
> > >>> a[:, 0] + a[:, 1]
> 
> > 
> 
> > array([2, 3, 5])
> 
> > 
> 
> > 
> 
> > 
> 
> > But should they be added together to make mono?
> 
> > 
> 
> > 
> 
> > 
> 
> > Suppose, for example, that both channels have a maximum value. Their
> 
> > 
> 
> > sum would be _twice_ the maximum.
> 
> > 
> 
> > 
> 
> > 
> 
> > Therefore, I think that it should probably be the average.
> 
> > 
> 
> > 
> 
> > 
> 
> >  >>> (a[:, 0] + a[:, 1]) / 2
> 
> > 
> 
> > array([1, 1, 2])
> 
> 
> 
> I'm decoding morse code. So it's CV dots and dashes.

In case anyone is interested, here is the full code.

# morsecode.py
import numpy as np
from scikits.audiolab import wavread
from scipy.signal import decimate
from pylab import plot
from pylab import show
import os

def movingaverage(interval, window_size):
    window = np.ones(int(window_size)) / float(window_size)
    return np.convolve(interval, window, 'same')

def wav2morse(resultDir, filename):
    """ Convert a wave file to morse code
    resultDir: directory for wave file and results
    filename: wave file name

    """
    data, _fs, _enc = wavread(resultDir + '\\' + filename)
    data = np.sum(data, axis=1)
    data = np.fabs(data)
    data = movingaverage(data, 100)
    data = decimate(data, 2)
    highcount = 0
    lowcount = 0
    fileBase, _fileExt = os.path.splitext(filename)
    f = open(resultDir + '\\' + fileBase + '.txt', 'w')
    for d in data:
        if d > 0.3:
            if lowcount > 3000:
                f.write(' ')
            lowcount = 0
            highcount += 1
        else:
            if highcount > 3000:
                f.write('-')
            elif highcount > 1000:
                f.write('.')
            highcount = 0
            lowcount += 1
    f.close()

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 12:39 -0700
  Re: Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 12:56 -0700
  RE: Numpy combine channels Nick Cash <nick.cash@npcinternational.com> - 2012-09-10 19:50 +0000
  Re: Numpy combine channels MRAB <python@mrabarnett.plus.com> - 2012-09-10 21:11 +0100
    Re: Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 13:14 -0700
      Re: Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 13:15 -0700
      Re: Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 13:15 -0700
    Re: Numpy combine channels Wanderer <wanderer@dialup4less.com> - 2012-09-10 13:14 -0700
    Re: Numpy combine channels aahz@pythoncraft.com (Aahz) - 2012-11-09 20:30 -0800
      Re: Numpy combine channels Dave Angel <d@davea.name> - 2012-11-10 08:05 -0500

csiph-web