Как фильтровать звук нижних и верхних частот в Java, используя массив double[]JAVA

Программисты JAVA общаются здесь
Anonymous
Как фильтровать звук нижних и верхних частот в Java, используя массив double[]

Сообщение Anonymous »

Я искал на страницах, как это сделать, и нашел код на C, но не на Java.
Пример для C: https://kiritchatterjee.wordpress.com/2014/11 /10/a-simple-digital-low-pass-filter-in-c/
В этой ссылке выше не упоминаются массивы, потому что они, вероятно, делают это как нечто, где происходит потоковая передача звука. например, через микрофон, чего я не собираюсь делать, я хочу обработать низкочастотный или высокочастотный фрагмент звука, а затем сохранить результат прохождения низко/высокочастотного сигнала.
ПРИМЕЧАНИЕ: я просто добавляю [] рядом с массивом, чтобы сделать объяснение более понятным для читающих.
По сути, я хотел бы сделать следующее:
  • Чтение файла .wav с использованием кода Java
  • Преобразуйте данные .wav в массив double [] (путем преобразования массива byte [] в массив double [] с помощью библиотеки StdAudio)
  • Оттуда я хотел бы обработать аудиоданные высокими/низкими частотами, применив их к массиву double []
  • Как только к массиву double [] будет применен верхний или нижний проход, я получу совершенно новый массив double []
Ошибка, которую я получаю для кода в цикле for:

Оператор '-' не может быть применен к 'double', 'double []'

Другая проблема:
Я на самом деле не знаю, мой код в цикле for будет пропускать низкочастотный звук, даже если я не получу ошибок.
Код:
import StdAudio.*;

public class PassAudio
{

public static int RawData;
public static double SmoothData;
public static double LPF_Beta = 0.025; // 0

Подробнее здесь: https://stackoverflow.com/questions/790 ... uble-array

Вернуться в «JAVA»