假设我们在C++中有一个向量/数组,我们希望计算这N个元素中哪一个具有最大重复次数并输出最高计数.哪种算法最适合这项工作.
例:
int a = { 2, 456, 34, 3456, 2, 435, 2, 456, 2}
Run Code Online (Sandbox Code Playgroud)
输出为4,因为2次出现4次.这是2次发生的最大次数.
我正试图找到一种方法来检测iPhone的麦克风录制的声音频率.我想检测声音频率是上升还是下降.
我在下面有一个简单的表BIRDCOUNT,显示在任何一天计算了多少只鸟:
+----------+
| NUMBIRDS |
+----------+
| 123 |
| 573 |
| 3 |
| 234 |
+----------+
Run Code Online (Sandbox Code Playgroud)
我想创建一个频率分布图,显示计算一些鸟的次数.所以我需要MySQL来创建类似的东西:
+------------+-------------+
| BIRD_COUNT | TIMES_SEEN |
+------------+-------------+
| 0-99 | 17 |
| 100-299 | 23 |
| 200-399 | 12 |
| 300-499 | 122 |
| 400-599 | 3 |
+------------+-------------+
Run Code Online (Sandbox Code Playgroud)
如果鸟类数量范围固定,这将很容易.但是,我从来不知道看到多少只鸟的最小值/最大值.所以我需要一个select语句:
我不知道#2是否可以在一个选择中,但是任何人都可以解决#1?
基本上如果给出一个列表:
data = ["apple", "pear", "cherry", "apple", "pear", "apple", "banana"]
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个返回如下列表的函数:
["apple", "pear", "banana", "cherry"]
Run Code Online (Sandbox Code Playgroud)
我试图通过最常出现的单词排序返回列表,同时通过按字母顺序排序来断开连接.我也试图消除重复.
我已经列出了每个元素的计数和数据中每个元素的索引.
x = [n.count() for n in data]
z = [n.index() for n in data]
Run Code Online (Sandbox Code Playgroud)
我不知道从哪里开始.
它被问了很多,但我仍然坚持在Android上实现FFT类我需要使用FFT处理我的音频数据...
我已经在这里阅读了几乎相同的问题如何使用FFT获取PCM的频率数据 ,这里如何从fft结果获得频率? 还有更多的问题,但即使在我尝试了答案后仍然没有找到答案......
我正在使用的FFT类:http: //www.cs.princeton.edu/introcs/97data/FFT.java
与它一起使用的复杂类:http://introcs.cs.princeton.edu/java/97data/Complex.java.html
这是我的代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
public class Latihan extends Activity{
private static final int RECORDER_BPP = 16;
private static final String AUDIO_RECORDER_FILE_EXT_WAV = ".wav";
private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";
private static final String AUDIO_RECORDER_TEMP_FILE = "record_temp.raw";
private static …Run Code Online (Sandbox Code Playgroud) 我有一个采样率为16e3的信号,其频率范围为125到1000 Hz.因此,如果我绘制一个规格,我会得到一个非常小的颜色范围,因为所有未使用的频率.
香港专业教育学院试图通过设置斧头限制修复它,但这不起作用.
有没有办法切断未使用的频率或用NaN替换它们?
将数据重新采样到2e3将不起作用,因为仍有一些未使用的频率低于125 Hz.
谢谢你的帮助.
我正在考虑编写一个程序来收集大量文本中最常用的短语.如果问题被简化为仅仅找到单词而不是将每个新单词存储在散列映射中然后在每次出现时增加计数那么简单.但是对于短语,将句子的每个排列存储为关键似乎是不可行的.
基本上,问题被缩小到找出如何从足够大的文本中提取每个可能的短语.计算短语然后按出现次数排序变得微不足道.
algorithm frequency frequency-analysis data-structures word-frequency
我有一个data.frameR列表因子级别的数据频率表以及成功和失败的计数.我想将它从频率表转换为事件列表 - 即"表"命令的反面.具体来说,我想转此:
factor.A factor.B success.count fail.count
-------- -------- ------------- ----------
0 1 0 2
1 1 2 1
Run Code Online (Sandbox Code Playgroud)
进入这个:
factor.A factor.B result
-------- -------- -------
0 1 0
0 1 0
1 1 1
1 1 1
1 1 0
Run Code Online (Sandbox Code Playgroud)
在我看来,reshape应该这样做,甚至是一些我没有听说过的模糊的基础功能,但我没有运气.即使重复a的各行也data.frame很棘手 - 你如何传递可变数量的参数rbind?
提示?
背景:为什么?因为它比汇总的二项式数据更容易交叉验证这种数据集的逻辑拟合.
我正在用一个广义线性模型分析我作为R中的二项式回归,并希望交叉验证以控制我数据的正则化,因为我的目的是预测性的.
但是,据我所知,R中的默认交叉验证例程对于二项式数据来说并不是很好,只是跳过频率表的整行,而不是单独进行试验.这意味着轻度和重度采样因子组合在我的成本函数中具有相同的权重,这对我的数据是不合适的.
我正在使用FFT从音频文件中提取每个频率分量的幅度.实际上,Audacity中已经有一个名为Plot Spectrum的函数可以帮助解决问题.以3kHz正弦和6kHz正弦组成的音频文件为例,频谱结果如下图所示.你可以看到峰值在3KHz和6kHz,没有额外的频率.
现在我需要实现相同的功能并在Python中绘制类似的结果.我在帮助下接近Audacity结果,rfft但在得到这个结果后仍然有问题需要解决.
相关代码:
import numpy as np
from pylab import plot, show
from scipy.io import wavfile
sample_rate, x = wavfile.read('sine3k6k.wav')
fs = 44100.0
rfft = np.abs(np.fft.rfft(x))
p = 20*np.log10(rfft)
f = np.linspace(0, fs/2, len(p))
plot(f, p)
show()
Run Code Online (Sandbox Code Playgroud)
更新
我将Hanning窗口与整个长度信号相乘(这是正确的吗?)并得到它.裙子的大部分幅度都低于40.
并按照@Mateen Ulhaq的说法将y轴缩放为分贝.结果更接近Audacity one.我可以将低于-90dB的幅度处理得如此之低以至于可以忽略吗?
更新的代码:
fs, x = wavfile.read('input/sine3k6k.wav')
x = x * np.hanning(len(x))
rfft = np.abs(np.fft.rfft(x))
rfft_max = max(rfft)
p = 20*np.log10(rfft/rfft_max)
f = np.linspace(0, fs/2, len(p))
Run Code Online (Sandbox Code Playgroud)
关于赏金
通过上面更新中的代码,我可以用分贝测量频率分量.最高可能值为0dB.但该方法仅适用于特定的音频文件,因为它使用rfft_max此音频.我想像Audacity那样在一个标准规则中测量多个音频文件的频率成分. …