小编Aun*_*ung的帖子

在java中使用FFT创建.wav的谱图

经过研究和大量的试验和错误,我已经到了一个点,我可以构建一个谱图,我认为它具有正确和错误的元素.

1.首先,我将.wav文件读入字节数组并仅提取数据部分.

2.我将字节数组转换为双数组,取左右声道的平均值.我还注意到1个通道的1个样本由2个字节组成.所以,4个字节变为1个双精度.

3.对于某个窗口大小为2的功率,我从这里应用FFT 并得到频域的幅度.这是谱图图像的垂直条带.

4.我使用相同的窗口大小重复执行此操作并重叠整个数据并获得频谱图.

以下是将.wav读入双数组的代码

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;

public class readWAV2Array {

    private byte[] entireFileData;

    //SR = sampling rate
    public double getSR(){
        ByteBuffer wrapped = ByteBuffer.wrap(Arrays.copyOfRange(entireFileData, 24, 28)); // big-endian by default
        double SR = wrapped.order(java.nio.ByteOrder.LITTLE_ENDIAN).getInt();
        return SR;
    }

    public readWAV2Array(String filepath, boolean print_info) throws IOException{
        Path path = Paths.get(filepath);
        this.entireFileData = Files.readAllBytes(path);

        if (print_info){

        //extract format
        String format = new …
Run Code Online (Sandbox Code Playgroud)

java signal-processing fft spectrogram

10
推荐指数
1
解决办法
3275
查看次数

android studio中.xml文件前面的勾号是什么

什么是对勾符号以及如何删除它?

我不小心设置了什么?

如问题所述

android-studio

4
推荐指数
1
解决办法
1000
查看次数

不使用库函数在字符串中查找子字符串

下面是代码模板,在/*下面写你的代码*/是我自己的代码.模板应该是正确的但我的代码有问题.

我的算法是迭代str直到找到空字符.然后比较每个字符,如果它们相同则迭代str和sub,否则设置继续迭代str并重置为substr的第一个字符.

#include <stdio.h>
int findSubstring(char *str, char *substring);
int main()
{
    char str[40], substr[40];
    printf("Enter the string: ");
    gets(str);
    printf("Enter the substring: ");
    gets(substr);
    printf("findSubstring(): %d\n", findSubstring(str, substr));
    return 0;
}
int findSubstring(char *str, char *substr)
{
    /* write your code here */
    int i = 0, j = 0;
    while ((str[j] != '\0')||(substr[i] != '\0')) {
        if (substr[i] != str[j]) {
            j++;
            i = 0;
        }
        else {
            i++;
            j++;
        }
    }
    if (substr[i] == '\0')
        return 1; …
Run Code Online (Sandbox Code Playgroud)

c

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

标签 统计

android-studio ×1

c ×1

fft ×1

java ×1

signal-processing ×1

spectrogram ×1