Size: a a a

2021 January 11

AD

Alexey Dergunov in pro.algorithms
ну ты можешь там 50 максимумов хранить к примеру
источник

AD

Alexey Dergunov in pro.algorithms
в узле ДО
источник

T

Tomas Shelbi in pro.algorithms
А дальше они получаются уже не будут влиять на ответ
источник

T

Tomas Shelbi in pro.algorithms
Из за ограничений
источник

AD

Alexey Dergunov in pro.algorithms
ага
источник

T

Tomas Shelbi in pro.algorithms
Гениально
источник

T

Tomas Shelbi in pro.algorithms
Спасибо
источник
2021 January 13

N

Nataliya in pro.algorithms
Всем привет) Может кто-то знает как решать такую задачу. Есть родительский граф G0, из него путем удаления рёбер или вершин делают две новые версии графа G01 и G02. В дальнейшем необходимо провести слияние этих версий, если не возможно, то произвести слияние на сколько возможно и выдать конфликты. Я нашла способ, но он работает только если граф это список. Может у кого-то есть идеи как это сделать если в графе могут быть циклы и граф может быть мультиграфом. Или же есть какой-то общеизвестный алгоритм?
источник

DT

Dmitry Teh in pro.algorithms
доброго времени

пытаюсь разобраться с ФФТ для шумоподавления

я беру массив с семплом из wav файла
делаю из него массив комплексных чисел с нулевой im частью и реальной, равной семплу
делаю ффт
беру оттуда магнитуду и с ней работаю (уменьшаю на магнитуду шума)

магнитуда несколько нормализованная
// Scale the magnitude of FFT by window and factor of 2,
// because we are using half of FFT spectrum
double s_mag = complexBuffer[i].Magnitude * 2.0 / sum_win;  

а после хочу из полученных бинов собрать обратно сигнал, перейдя в freq. domain, но не понимаю как. мне же нужно из полученной магнитуды получить ещё один массив комплексных чисел?

что-то вроде

complexBuffer[i].Re = Math.Sqrt(fft[i] * sum_win / 2.0);
complexBuffer[i].Im = 0;

и загнать его в библиотеку?
я нашёл формулу с преобразованием через экспоненту, но почему-то во всех бинах одинаковая сумма.

если совсем оффтоп — подскажите более тематический чатик по DSP

благодарю
источник

@N

@urandon Nikita Khom... in pro.algorithms
Dmitry Teh
доброго времени

пытаюсь разобраться с ФФТ для шумоподавления

я беру массив с семплом из wav файла
делаю из него массив комплексных чисел с нулевой im частью и реальной, равной семплу
делаю ффт
беру оттуда магнитуду и с ней работаю (уменьшаю на магнитуду шума)

магнитуда несколько нормализованная
// Scale the magnitude of FFT by window and factor of 2,
// because we are using half of FFT spectrum
double s_mag = complexBuffer[i].Magnitude * 2.0 / sum_win;  

а после хочу из полученных бинов собрать обратно сигнал, перейдя в freq. domain, но не понимаю как. мне же нужно из полученной магнитуды получить ещё один массив комплексных чисел?

что-то вроде

complexBuffer[i].Re = Math.Sqrt(fft[i] * sum_win / 2.0);
complexBuffer[i].Im = 0;

и загнать его в библиотеку?
я нашёл формулу с преобразованием через экспоненту, но почему-то во всех бинах одинаковая сумма.

если совсем оффтоп — подскажите более тематический чатик по DSP

благодарю
В общем схема такая:

сигнал —(прямое FFT)—> спектрограмма —(фильтры)—> спектрограмма с подавленными шумами —> (обратное FFT) —> сигнал с подавленными шумами
источник

@N

@urandon Nikita Khom... in pro.algorithms
обратное fft при этом очень похоже на прямое, только у предпосчитанных экспонент надо поменять знаки
источник

DT

Dmitry Teh in pro.algorithms
вот насчёт прямое обратное. у меня получилась вот такая картина. первое — прямое преобразование, второе — обратное. Без окна. Сигнал — 440Гц синус нормализованный в ноль. Нормально ли, что сигнал «правильно» раскладывается в спектр только на обратном преобразовании? (правильно — пик примерно в -3дб)
источник

DT

Dmitry Teh in pro.algorithms
источник

DT

Dmitry Teh in pro.algorithms
делал через
AForge.Math.FourierTransform.DFT(complexBuffer, AForge.Math.FourierTransform.Direction.Backward);
и
AForge.Math.FourierTransform.FFT(complexBuffer, AForge.Math.FourierTransform.Direction.Backward);
источник

mq

m q in pro.algorithms
Переслано от m q
написал функцию calc_f_vectorized, которая берет numpy array a и возвращает массив того же размера b[i]:= f(a[i])
Как теперь проинтегрировать f, если есть только calc_f_vectorized? Не изобретая велосипед
источник

CD

Constantine Drozdov in pro.algorithms
Dmitry Teh
вот насчёт прямое обратное. у меня получилась вот такая картина. первое — прямое преобразование, второе — обратное. Без окна. Сигнал — 440Гц синус нормализованный в ноль. Нормально ли, что сигнал «правильно» раскладывается в спектр только на обратном преобразовании? (правильно — пик примерно в -3дб)
общий множитель в преобразовании это вопрос соглашения и не более
источник
2021 January 14

DT

Dmitry Teh in pro.algorithms
даже если не рассматривать множитель
я делаю на данных N два преобразования.
1 - прямое(N)
2 - обратное(N)

и получаю такие результаты
источник

DT

Dmitry Teh in pro.algorithms
источник

DT

Dmitry Teh in pro.algorithms
и я не понимаю, какое преобразование правильно использовать в моём случае, когда я хочу из данных получить разложение по частотам
т.е. перейти из тайм-домена в частотный

(а потом обратно)
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Dmitry Teh
и я не понимаю, какое преобразование правильно использовать в моём случае, когда я хочу из данных получить разложение по частотам
т.е. перейти из тайм-домена в частотный

(а потом обратно)
Принято прямую но это не важно
источник