标签: sampling

低频声音采样

我之前已经发布过这个问题,但还没有得到答复.也许我不够清楚,所以让我改写一下:

如您所知,当您以特定采样率对信号进行采样时,任何高于采样率一半的频率都会出现锯齿.为了避免这种情况,您需要通过适当的低通滤波器传递信号(以模拟形式或以更高速率采样的数字形式).

现在,就我而言,我正在使用Windows的waveIn函数以一定的速率收集麦克风输入.由于waveIn函数似乎以我提供给它的任何采样率工作,而不是按照任意的预定速率工作,我真的不知道声卡是否实际以该速率采样,或者它是否以预定义的速率采样并且系统"转换" "这是我要求的费率.我也不在乎,实际上......

我所关注的是,当我在8kHz采样时,声卡或系统是否执行低通滤波器(声卡上的模拟卡或数字卡,然后限制为某些最大采样率)声卡)所以我不会在输入上得到混叠频率.

或者,我应该以尽可能高的采样率进行采样并自行过滤掉频率?

audio filtering signal-processing sampling pointer-aliasing

3
推荐指数
1
解决办法
458
查看次数

PHP从列表中随机选择

我目前正在使用随机选择颜色的PHP代码:

<div onclick="location.href='<?php the_permalink() ?>';" 
    style="cursor:pointer;background:#<?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?><?php 
        echo rand(0, 9); ?>;" 
    class="post bg thickbox" 
    id="thickbox post-<?php the_ID(); ?>">
Run Code Online (Sandbox Code Playgroud)

我更喜欢做的是在一个PHP文件中定义一个首选颜色列表,然后在上面的代码中从该列表中随机抽取一个元素.

用于随机抽样这样的颜色列表的正确PHP代码是什么?你会如何定义颜色列表?

php random sampling

3
推荐指数
1
解决办法
7010
查看次数

线性量化和非线性量化有什么区别?

线性量化和非线性量化有什么区别?我正在谈论PCM样本. http://www.blurtit.com/q927781.html有一篇关于它的文章,但我正在寻找更详细的答案.

signal-processing quantization pcm sampling

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

从高斯分布中抽样随机值的最快方法是什么?

所述盒-缪勒变换,是从高斯分布随机采样值的优雅和合理高性能方法.

我正在寻找一种更清晰的C#编写方法.

作为参考,这里是Box-Muller实现的一个实现,作为性能比较的基准......

public class GaussianGenerator
{
    FastRandom _rng = new FastRandom();
    double? _spareValue = null;

    /// <summary>
    /// Get the next sample point from the gaussian distribution.
    /// </summary>
    public double NextDouble()
    {
        if(null != _spareValue)
        {
            double tmp = _spareValue.Value;
            _spareValue = null;
            return tmp;
        }

        // Generate two new gaussian values.
        double x, y, sqr;

        // We need a non-zero random point inside the unit circle.
        do
        {
            x = 2.0 * _rng.NextDouble() - 1.0; …
Run Code Online (Sandbox Code Playgroud)

c# math performance gaussian sampling

3
推荐指数
1
解决办法
4318
查看次数

从大数据帧中采样小数据帧

我试图从给定的数据帧中采样数据帧,以便从变量的每个级别获得足够的样本.这可以通过将数据帧与每个级别和样本分开来实现.我认为ddply(数据帧到数据帧)会为我做.举一个最小的例子:

set.seed(1)
data1 <-data.frame(a=sample(c('B0','B1','B2'),100,replace=TRUE),b=rnorm(100),c=runif(100))
> summary(data1$a)
B0 B1 B2 
30 32 38
Run Code Online (Sandbox Code Playgroud)

以下命令执行采样...

当我进入...

data2 <- ddply(data1,c('a'),function(x) sample(x,20,replace=FALSE))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

   Error in `[.data.frame`(x, .Internal(sample(length(x), size, replace,  : 
  cannot take a sample larger than the population when 'replace = FALSE'
Run Code Online (Sandbox Code Playgroud)

此错误是因为函数x内部ddply不是向量而是数据帧.

有没有人知道如何实现这种抽样?我知道一种方法是不使用ddply而只是做(1)隔离,(2)采样,和(3)三步校对.但我想知道必须通过某种方式...基地或plyr功能......

谢谢您的帮助...

r sampling plyr

3
推荐指数
1
解决办法
2587
查看次数

没有VTK的python中的3D数据的插值/子采样

我想要做的是相当简单,但到目前为止我还没有找到一个简单的方法:

我有一个带有浮点值的3D直线网格(因此3个坐标轴-1D numpy数组 - 用于网格单元的中心,3D numpy数组具有相应的形状,每个单元格中心都有一个值),我想插值(或您可以将其整个数组称为子样本数据(例如,尺寸因子为5),并使用线性插值.我见过的所有方法都涉及2D,然后是1D插值或VTK技巧,而不是使用(可移植性).

有人会建议一种方法,相当于在3D阵列中同时取5x5x5单元,平均并返回每个方向5倍的阵列吗?

提前感谢您的任何建议

编辑: 这是数据的样子,'d'是表示3D网格细胞的3D数组.每个单元格都有一个标量浮点值(在我的情况下是压力),'x','y'和'z'是三个1D数组,包含每个单元格的单元格的空间坐标(参见形状以及'x'数组的方式)好像)

In [42]: x.shape
Out[42]: (181L,)

In [43]: y.shape
Out[43]: (181L,)

In [44]: z.shape
Out[44]: (421L,)

In [45]: d.shape
Out[45]: (181L, 181L, 421L)

In [46]: x
Out[46]: 
array([-0.410607  , -0.3927568 , -0.37780656, -0.36527296, -0.35475321,
       -0.34591168, -0.33846866, -0.33219107, -0.32688467, -0.3223876 ,
        ...
        0.34591168,  0.35475321,  0.36527296,  0.37780656,  0.3927568 ,
        0.410607  ])
Run Code Online (Sandbox Code Playgroud)

我想做的是创建一个3D数组,让我们说一个90x90x210的形状(大约缩小2倍),首先从具有上述尺寸的阵列上的轴上对坐标进行二次采样,然后将3D数据"插值"到那个阵列.我不确定'插值'是否是正确的术语.下采样?平均?这是数据的2D切片:密度图

python 3d interpolation sampling

3
推荐指数
1
解决办法
8006
查看次数

Audacity如何混合音频样本?

所以我想说我想混合这两个音轨:

纯

在Audacity中,我可以使用"混合和渲染"选项将它们混合在一起,我会得到这个:

Audacity Mix

但是,当我尝试编写自己的代码混合时,我得到了这个:

我的混合

这基本上就是我如何混合样本:

private function mixSamples(sample1:UInt, sample2:UInt):UInt
{
    return (sample1 + sample2) & 0xFF;
}
Run Code Online (Sandbox Code Playgroud)

(语法是Haxe但如果你不知道它应该很容易理解.)

这些是8位样本音频文件,我希望产品也是8位,因此& 0xFF.

我明白通过简单地添加样本,我应该期待削减.我的问题是混合使用Audacity不会导致剪辑(至少没有达到我的代码所做的程度),并且通过查看第二个(更长)轨道的"尾部",它似乎不会减小幅度.听起来也不软.

所以基本上,我的问题是:Audacity在做什么,我不是?我想把音轨混合起来,就好像它们是在彼此之上播放一样,但我(显然)不想要这种可怕的剪辑.

编辑:

如果我在添加之前对值进行签名,然后根据Radiodef的建议取消签署和值,这就是我得到的:

我的签名组合

你可以看到它比以前好多了,但与Audacity产生的结果相比,它仍然非常扭曲和嘈杂.所以我的问题仍然存在,Audacity必须采取不同的做法.

EDIT2:

我将第一首曲目与我的代码和Audacity混合在一起,并比较了发生失真的点.这是Audacity的结果:

缩放Audacity

这是我的结果:

在此输入图像描述

audio mixing audacity sampling

3
推荐指数
1
解决办法
1421
查看次数

在Matlab中以正好奈奎斯特速率进行采样

今天我在matlab中偶然发现了一个奇怪的结果.让我们说我有一个正弦波

f = 1;
Fs = 2*f;
t = linspace(0,1,Fs);    
x = sin(2*pi*f*t);
plot(x)
Run Code Online (Sandbox Code Playgroud)

结果如图所示.

http://i.imgur.com/eUse3MO.jpg

我订的时候

f = 100
Run Code Online (Sandbox Code Playgroud)

结果如下图所示,

http://i.imgur.com/d5s5G0U.jpg

这是什么原因?这是奈奎斯特采样定理,因此它应该正确地产生正弦.当然,当我采用Fs >> f时,我会得到更好的结果和非常好的正弦形状.我对自己的解释是,Matlab在浮动数字方面遇到了困难,但我不确定这是否属实.有人有什么建议吗?

matlab signal-processing sampling

3
推荐指数
1
解决办法
2543
查看次数

'dimnames'[2]的SMOTE长度不等于数组范围

我试图使用SMOTE对数据集进行超采样,但我一直遇到此错误。

trainSM <- SMOTE(conversion ~ ., train,perc.over = 1000,perc.under = 200)
Run Code Online (Sandbox Code Playgroud)

矩阵中的错误(unlist(值,递归= FALSE,use.names = FALSE),nrow = nr ,:'dimnames'[2]的长度不等于数组范围

我的数据集如下:

          conversion horizon length_of_stay guests rooms price comp_price
            (dbl)   (int)          (int)  (int) (int) (int)      (int)
  1           1     193              2      2     1   199        210
  2           1     263              2      2     1   171         88
  3           1     300              3      2     1   164        164
  4           1      70              4      2     1    76         80
  5           1      65              6      2     2   260        260
  6           1      50              3      2     1   171 …
Run Code Online (Sandbox Code Playgroud)

r sampling

3
推荐指数
1
解决办法
2370
查看次数

在OpenGL中采样16位高度图的正确方法是什么

我有一个由16位带符号值组成的高度图,我只是想知道从着色器采样它们的正确方法是什么。到目前为止,我使用的是GL_R16格式,我认为该格式将图像存储为无符号整数,但是在采样时返回一个浮点数,我认为该浮点数已归一化为0-1。存储在纹理中而不是作为浮动?

当我上传纹理时,我会做:

glTexImage2D(GL_TEXTURE_2D, 0, GL_R16, 10800, 10800, 0, GL_R16, GL_SHORT, buffer.data());
Run Code Online (Sandbox Code Playgroud)

在我的着色器中,我将其采样为:

float colour = texture2D(heightmap, texCoords).r;
outFragColour = vec4(colour, colour, colour, 1);
Run Code Online (Sandbox Code Playgroud)

似乎只采样了黑色(即0)。

此外,这是否会保留高度图的负值?这一切都很令人困惑。

编辑:我刚刚意识到我在调用时从OpenGL中收到INVALID_ENUM错误:

glTexImage2D(GL_TEXTURE_2D, 0, GL_R16, 10800, 10800, 0, GL_R16, GL_SHORT, buffer.data());
Run Code Online (Sandbox Code Playgroud)

谢谢。

opengl graphics shader glsl sampling

3
推荐指数
1
解决办法
631
查看次数