Я искал на страницах, как это сделать, и нашел код на 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