我有8k16bit pcm音频,我想将其上采样到16k16bit.我必须手动完成此操作.
有人能告诉我线性插值的算法吗?我应该在每两个字节之间进行插值吗?
此外,当我进行上采样时,我必须对wav标题进行更改 - 我应该更改什么?
我将如何快速和安全*确定范围内的随机数0(含)至r(独家)?
换句话说,拒绝采样的优化版本:
u32 myrand(u32 x)
{
u32 ret = rand();
while(ret >= x)
ret = rand();
return(ret);
}
Run Code Online (Sandbox Code Playgroud)
*安全地,我的意思是统一分布.
我有一系列项目,我想从中抽样.
我的印象是,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) 我正在尝试创建第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) 我想知道是否有一个库或某些东西在给定的采样率(20-20,000 Hz)下播放声音.实际上,我发现了一些东西,但我不明白我是如何让它发挥作用的!
我正在开发一个需要使用微控制器的项目,因此我决定使用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能够做到这一点,但我找不到明确的方法.任何帮助表示赞赏.提前致谢.
我正在尝试在 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 中以特定频率运行采样函数?
我正在使用 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 我可以看到频繁的多次重复。
参考:我正在阅读一本名为 …
我想在 10% 的时间内随机选择“1”,在 30% 的时间内随机选择“2”,在其他 60% 的时间内随机选择“3”。我想知道是否有一种方法可以让我根据 Java 中的这些概率随机抽样。
谢谢
在阅读了随机欠采样、随机过采样和SMOTE 之后,我试图了解 SKlearn 包中用于逻辑回归或随机森林的默认实现使用什么方法。我在这里检查了文档
所述均衡模式使用y的值来自动调节权重成反比的输入数据作为类频率N_SAMPLES次/(n_classes * np.bincount(Y))
我无法在样本多数类或样本少数类下理解它来创建平衡集
python sampling random-forest scikit-learn logistic-regression