SilverEye:
Фазу что ли?
Не, - я конечно понимаю, что ты хочешь сказать... МОжет и я туплю.. А может если на бумажке расписывать Фурье для случ. функций - то сдвигом фазы замучаешься минус получать... А ладно, не суть... На минус домножить всех проще...SilverEye:
То, что применимо к простейшим тригонометрическим функциям, то применимо и к рядам из них, а вся современная обработка звука в принципе на рядах Фурье и строится
moi:
На минус домножить всех проще...
Само собой! Но, если подойти к вопросу чисто теоретически... :biglaugh:igorrr:
Ну, вряд ли кто-то будет делать такую примитивную операцию как \"invert\" через разложение в ряд Фурье, обойдутся умножением каждого отсчета на \"-1\".
igorrr:
Ну, вряд ли кто-то будет делать такую примитивную операцию как \"invert\" через разложение в ряд Фурье, обойдутся умножением каждого отсчета на \"-1\".
Для инвертирования нужен сдвиг на Pi для каждой компоненты.SilverEye:
Т.е. сдвиг равен Pi/2 для любой компоненты.
Это в смысле два раза отнять самого себя? А есть данные на сколько такая замена на писишных процах быстрее?если уж вообще оптимизировать, то и умножением не обойдуцца. обойдуцца двумя операторами сложения, ибо скорость превыше всего!
Да. Лично мне захотелось увидеть действие лимитера. Сложи инвертированный сигнал волны с ней же (неиневертированной), но обработанной лимитером (без поднятия уровня). Увидишь, как утверждают мустор вносимый лимитером, но я с определением мусора несогласен... Смотрел в общем ради баловства...SilverEye:
Иногда это становится полезным, например, при сравнении сигналов.
Я полностью согласен. Тем более то, что останется после вычитания, это как раз то чего в обработанной лимитером волне нет!Alexey Lukin:
Оценивать искажения на слух в отрыве от маскирующего их сигнала - пустая затея. Тест с вычитанием помогает оценить объективные параметры \"искажений\", но не их заметность
В системе команд x86 для целочисленных данных существует специальная команда - смена знака. Эквивалентна булевой инверсии (то есть замены всех нулей на единицу и обратно) с последующим инкрементом (увеличению на единицу). Выполняется очень быстро.Это в смысле два раза отнять самого себя? А есть данные на сколько такая замена на писишных процах быстрее?
igorrr:
Это в смысле два раза отнять самого себя? А есть данные на сколько такая замена на писишных процах быстрее?
Не стоить судить о том, о чём не имеешь никакого понятия. :smile:pse:
Ну да. Отнять два раза. Насколько точно не скажу, но одну прописную истину я для себя усвоил раз и навсегда: умножение, деление и пр. выпоняются МЕДЛЕННЕЕ чем сложение и вычитание.
Да блин ясен фиг. :smile: Я про то, что операция сдвига эквивалентна умножению на степень двойки, вот и всё.Serg196:
Умножение или деление на степень двойки - это одно, а эквивалентные им операции сдвига - это другое, хотя приводят они к одним и тем же результатам. Тем не менее, если использовать команду умножения (или деления), процессор будет именно умножать, а не проводить операцию сдвига.
Ну я тут подзабыл всё это, т.к. не писал на ассемблере давно, поэтому что в памяти осталось - то и несу. :smile:Serg196:
Для целочисленных данных смена знака - это не смена старшего бита, а именно инверсия числа с последующим инкрементом (старший бит при этом, разумеется, меняется, если число не равно нулю), поскольку для знаковых чисел используется так называемый формат \"с дополнением до нуля\".