python类square()的实例源码

wavegen.py 文件源码 项目:cebl 作者: idfah 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, mgr, sampRate=128,
                 chans=[str(n)+'x' for n in np.power(2, np.arange(8))/2.0],
                 waveform='sinusoid', freq=1.0, mix='none', pollSize=2):
        """
        Construct a new wave generator source.

        Args:
            sampRate:   Floating point value of the initial sampling frequency.

            chans:      Tuple of strings containing the initial channel
                        configuration.

            waveform:   String describing the type of waveform to produce.
                        May be 'sinusoid' or 'sawtooth' or 'square'

            freq:       Base frequency.  Each channel is a power-of-two
                        multiple of this frequency.

            pollSize:    Number of data samples collected during each poll.
                        Higher values result in better timing and marker
                        resolution but more CPU usage while higher values
                        typically use less CPU but worse timing results.
        """

        self.waveform = mp.Value('I', 0)
        self.freq = mp.Value('d', freq)
        self.t0 = mp.Value('d', 0.0)
        self.t0.value = 0.0
        self.pollSize = pollSize
        self.lock = mp.Lock()

        Source.__init__(self, mgr=mgr, sampRate=sampRate, chans=chans,
            configPanelClass=WaveGenConfigPanel)

        self.setWaveform(waveform)

        self.mixArr = mp.Array('d', self.getNChan()*self.getNChan())
        self.mixMat = (np.frombuffer(self.mixArr.get_obj())
                        .reshape((-1,self.getNChan())))
        self.setMix(mix)
wavegen.py 文件源码 项目:cebl 作者: idfah 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def setWaveform(self, waveform):
        """Set the periodic waveform to generate.

        Args:
            waveform:   String describing the type of waveform to produce.
                        May be 'sinusoid' or 'sawtooth' or 'square'
        """
        waveform = waveform.lower()

        with self.lock:
            try:
                # index into keys gives us an integer id
                self.waveform.value = list(waveforms.keys()).index(waveform)
            except ValueError:
                raise ValueError('Invalid waveform %s.' % str(waveform))
synctools2_NEW_VERSION_TEST.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
synctools_v0.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
parameter_sweep_01.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
m_twist_05.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
synctools2_v1.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
synctools2.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
synctools.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
synctools3.py 文件源码 项目:delayCoupledDPLLnet 作者: cuichi23 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __call__(self, t):
        return self.amp * signal.square(2 * np.pi * self.freq * t, duty=0.5)
sound.py 文件源码 项目:chord_id 作者: lorenlugosch 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def generate_chord(T=1,fs=44100,noise=True):
    """
    Generate random major chord with amplitude 1
    for duration T with sampling rate fs

    Return chord and label (pitch class)
    0  = Ab / G#
    1  = A
    2  = Bb / A#
    3  = B
    4  = C
    5  = Db / C#
    6  = D
    7  = Eb / D#
    8  = E
    9  = F
    10 = Gb / F#
    11 = G
    """
    t = np.linspace(0,T,T*fs)
    n1 = np.random.randint(1+17,88-10)
    chord_inversion = np.random.randint(1,6)
    n3 = 0  
    n5 = 0
    if chord_inversion == 1:
        n3 = n1 + 4
        n5 = n1 + 7
    if chord_inversion == 2:
        n3 = n1 + 7
        n5 = n1 + 16
    if chord_inversion == 3:
        n3 = n1 + -8
        n5 = n1 + 7
    if chord_inversion == 4:    
        n3 = n1 + -8
        n5 = n1 + -5
    if chord_inversion == 5:
        n3 = n1 + 4
        n5 = n1 + -5
    if chord_inversion == 6:
        n3 = n1 + -8
        n5 = n1 + -17
    f1 = 2**((n1-49)/12.0)*440
    f2 = 2**((n3-49)/12.0)*440
    f3 = 2**((n5-49)/12.0)*440

    phase1 = np.random.uniform(0, 2*np.pi, 1)
    phase2 = np.random.uniform(0, 2*np.pi, 1)
    phase3 = np.random.uniform(0, 2*np.pi, 1)
    label = (n1 % 12) + 1
    noise_var = np.random.uniform(0, 1, 1)

    sig = signal.square(f1*2*np.pi*t + phase1) + signal.square(f2*2*np.pi*t + phase2) + signal.square(f3*2*np.pi*t + phase3)
    if noise:
        sig = sig + noise_var*np.random.randn(int(T*fs))
    return sig/3, label-1


问题


面经


文章

微信
公众号

扫码关注公众号