标签: sampling

用于上采样的PCM算法

我有8k16bit pcm音频,我想将其上采样到16k16bit.我必须手动完成此操作.

有人能告诉我线性插值的算法吗?我应该在每两个字节之间进行插值吗?

此外,当我进行上采样时,我必须对wav标题进行更改 - 我应该更改什么?

java audio interpolation pcm sampling

2
推荐指数
1
解决办法
4115
查看次数

快速安全地确定范围内的随机数

我将如何快速安全*确定范围内的随机数0(含)至r(独家)?

换句话说,拒绝采样的优化版本:

u32 myrand(u32 x)
{
    u32 ret = rand();

    while(ret >= x)
        ret = rand();

    return(ret);
}
Run Code Online (Sandbox Code Playgroud)

*安全地,我的意思是统一分布.

c++ random algorithm sampling

2
推荐指数
1
解决办法
323
查看次数

F#中的采样:设置是否足够?

我有一系列项目,我想从中抽样.

我的印象是,Set会有一个好的结构来取样,在折叠中我会回复原始或修改后的元素,如果我想要替换不是,则将检索到的元素丢失.但是,似乎没有方法直接从Set检索元素.

有什么我想念的吗?或者我应该使用一组索引,以及一个随机开始的代理函数,position < Set.count直到它找到一个成员为止?

也就是说,沿着这条线

module Seq =
    let modulo (n:int) start = 
        let rec next i = seq { yield (i + 1)%n ; yield! next (i+1)}
        next start

module Array =
    let Sample (withReplacement:bool) seed (entries:'T array) = 
        let prng, indexes = new Random(seed), Set(Seq.init (entries |> Array.length) id)
        Seq.unfold (fun set  -> let N = set |> Set.count
                                let next = Seq.modulo N (prng.Next(N)) |> Seq.truncate N |> Seq.tryFind(fun i -> set |> Set.exists …
Run Code Online (Sandbox Code Playgroud)

f# set sampling

2
推荐指数
1
解决办法
366
查看次数

Python Gibbs Sampler无法正常工作

我正在尝试创建第175页上的相同的Gibbs采样器 http://www.people.fas.harvard.edu/~plam/teaching/methods/mcmc/mcmc.pdf 这是用R写的但是我我试图在python中做到这一点.

我的代码是

from numpy import *
import matplotlib.pylab as pl

def gibbs_sampler(alpha,delta,gamma,y,t):
    #initialize beta
    beta=1

    num_iter=100

    beta_draws=[]
    lambda_draws=[]

    for i in range(num_iter):
        #sample lambda given other lambdas and beta
        lambdas=lambda_update(alpha,beta,y,t)

        #record sample
        lambda_draws.append(lambdas)

        #sample beta given lambda samples
        beta=beta_update(alpha,gamma,delta,lambdas,y)

        #record sample
        beta_draws.append(beta)


    pl.plot(array(beta_draws))
    pl.show()

def lambda_update(alpha,beta,y,t):
    new_alpha=[(x+alpha) for x in y]
    new_beta=[(a+beta) for a in t]

    #sample from this distribution 10 times
    samples=random.gamma(new_alpha,new_beta)
    return samples


def beta_update(alpha,gamma,delta,lambdas,y):
    #get sample
    sample=random.gamma(len(y)*alpha+gamma,delta+sum(lambdas))
    return sample



def main():
    y=[5,1,5,14,3,19,1,1,4,22]
    t=[94,16,63,126,5,31,1,1,2,10]


    alpha=1.8
    gamma=0.01 …
Run Code Online (Sandbox Code Playgroud)

python scipy sampling

2
推荐指数
1
解决办法
4492
查看次数

如何在Java中以给定的采样率播放声音?

我想知道是否有一个库或某些东西在给定的采样率(20-20,000 Hz)下播放声音.实际上,我发现了一些东西,但我不明白我是如何让它发挥作用的!

java audio sampling

2
推荐指数
1
解决办法
3002
查看次数

增加Beaglebone Black ADC采样率?

我正在开发一个需要使用微控制器的项目,因此我决定使用Beaglebone Black.我还是Beaglebone世界的新手,我面临一些问题,希望你们能帮助我.

在我的项目中,我将不得不连续读取所有7个模拟读取引脚并进行相应的处理.我的问题是,最快的编程语言是什么(我必须在很短的时间内尽可能多地读取样本!)以及如何将采样率从KHz提高到MHz?

我尝试了以下代码:

Javascript代码:

var b = require('bonescript');//this variable is to refer to my beaglebone
time = new Date();
b.analogRead("P9_39");
console.log(new Date() - time);
Run Code Online (Sandbox Code Playgroud)

此代码将只执行一次模拟读取,并将打印出执行读取所需的时间.令人惊讶的是,结果是111ms !! 这意味着如果我没错,我的采样率是10.

另一种方法是使用pyhton:

import Adafruit_BBIO.ADC as ADC
import time

ADC.setup()
millis = int(round(time.time() * 1000))
ADC.read_raw("P9_39")
millis = millis = int(round(time.time() * 1000)) - millis
print millis
Run Code Online (Sandbox Code Playgroud)

这段代码花费的时间较少(4ms)但是,如果我想从7个模拟输入引脚读取,我将只能读取每个35个样本.

使用终端:

echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
time cat /sys/devices/ocp.3/helper.15/AIN0
############OR############
time cat /sys/devices/ocp.3/44e0d000.tscadc/tiadc/iio\:device0/in_voltage0_raw 
Run Code Online (Sandbox Code Playgroud)

这耗时50ms.

我希望我的采样率是MHz.我怎么能这样做?我知道Beaglebone Black能够做到这一点,但我找不到明确的方法.任何帮助表示赞赏.提前致谢.

sampling adc cloud9-ide beagleboneblack

2
推荐指数
1
解决办法
1万
查看次数

以恒定速率循环以高精度进行信号采样

我正在尝试在 Python 中以 10Khz 采样信号。尝试运行此代码时没有问题(1KHz):

import sched, time

i = 0
def f(): # sampling function
    s.enter(0.001, 1, f, ())
    global i
    i += 1
    if i == 1000:
        i = 0
        print "one second"

s = sched.scheduler(time.time, time.sleep)

s.enter(0.001, 1, f, ())
s.run()
Run Code Online (Sandbox Code Playgroud)

当我尝试缩短时间时,它开始超过一秒(在我的计算机中,10e-6 时为 1.66s)。是否可以在 Python 中以特定频率运行采样函数?

python sampling

2
推荐指数
1
解决办法
1585
查看次数

R 编程:sample() 函数返回重复的实体甚至 replace=TRUE

我正在使用 sample() 函数从骰子对象中获取随机样本。

> die
[1] 1 2 3 4 5 6
> sample(x=die , size=1 , replace=TRUE)
[1] 1
> sample(x=die , size=1 , replace=TRUE)
[1] 1
> sample(x=die , size=1 , replace=TRUE)
[1] 5
> sample(x=die , size=1 , replace=TRUE)
[1] 5
> sample(x=die , size=1 , replace=TRUE)
[1] 1
> sample(x=die , size=1 , replace=TRUE)
[1] 2
> sample(x=die , size=1 , replace=TRUE)
[1] 4
Run Code Online (Sandbox Code Playgroud)

如果您观察上述输出 1 重复 3 次和 5 重复 2 次。但是从上面的输出甚至替换 TRUE 我可以看到频繁的多次重复。

参考:我正在阅读一本名为 …

r sampling

2
推荐指数
1
解决办法
1805
查看次数

Java中如何根据概率生成随机数

我想在 10% 的时间内随机选择“1”,在 30% 的时间内随机选择“2”,在其他 60% 的时间内随机选择“3”。我想知道是否有一种方法可以让我根据 Java 中的这些概率随机抽样。

谢谢

java sampling

2
推荐指数
1
解决办法
6852
查看次数

在 SKLearn Logistic Regression 中,class = Balanced 有助于运行具有不平衡数据的模型?此选项使用什么方法

在阅读了随机欠采样、随机过采样和SMOTE 之后,我试图了解 SKlearn 包中用于逻辑回归或随机森林的默认实现使用什么方法。我在这里检查了文档

所述均衡模式使用y的值来自动调节权重成反比的输入数据作为类频率N_SAMPLES次/(n_classes * np.bincount(Y))

我无法在样本多数类或样本少数类下理解它来创建平衡集

python sampling random-forest scikit-learn logistic-regression

2
推荐指数
1
解决办法
3103
查看次数