Diyfactory Forum

Основные форумы => Технологии => Тема начата: Medved от Апреля 29, 2007, 06:25:18 pm

Название: Dsp алгоритмы
Отправлено: Medved от Апреля 29, 2007, 06:25:18 pm
Собственно хочется потрещать на тему... Есть некоторые мысли на этот счет, и пока я их думаю, предлагаю обсудить будущее цифры в гитарной обработке)  
Название: Dsp алгоритмы
Отправлено: Gunpowder от Апреля 29, 2007, 06:49:48 pm
Артем, помоги, плиз. Твою формулу я посмотрел. Заоптимизировано конечно круто.

Есть ФВЧ. http://slil.ru/24311232 (http://slil.ru/24311232)

Едс и вх. сопротивление Rin заменяем нортоновским эквивалентом - источником тока Is и сопротивлением. Чтобы было меньше узлов.
Емкость С заменяется эквивалентом - источником Ic и проводимостью G.  Это позволяет интегрировать во времени. Для обратного Эйлера: I[n] = G*(V[n] - V[n-1]). G = C/dt, в момент времени эквивалентный ток Ic[n] = G*V2[n-1].

Сопротивление R для сокращения схемы включает и нагрузку схемы.

Для узлов записываем равенство токов.  
1) Is + Ic = Irin + Ig;
2) Ic = Ig - Ir;
Irin = V1/Rin; Ir = V2/R; Ig = (V1-V2)G;

подставляем 2 в 1
Is+Ig-Ir = Irin+Ig;
Ic = Ig - Ir;

Is=Irin+Ir;
Ic=Ig-Ir;

Получаем систему

Is = V1/Rin + V2/R;
Ic = V1*G - V2*(G+1/R)

Решая которую Гаусом

Is = G11*V1+G12*V2
Ic = C21*V1+C22*V2

получаем формулу

V2 = (Ic-Is*G21/G11)/(G22-G21*G12/G11),
где Is = E/Rin, Ic = G*V2[n-1], G=C/dt.

Которая в реальном примении ВСТ дает чушь.
Звучит конечно как "Я написал программу, а она не работает. Где у меня ошибка?...". Но вопрос, что не так с системой...

Для ФНЧ этот подход работает. Но для незаземленной емкости похоже нет.
Название: Dsp алгоритмы
Отправлено: Gunpowder от Апреля 29, 2007, 07:35:42 pm
Насчет модульности.
Мое имхо, ценность и интерес к ВСТ плугину будет гораздо выше, если будет возможность изменять номиналы (как минимум), а лучше схему. В противном случае это будет похоже на кучу уже имеющихся прог, даже если моделирование точнее.

Идеальный вариант - полное редактирование (как в САD и спайс программах). С точки зрения действий нужно автоматом составить систему, ее линеализировать и решить. Все действия типа составления и расчета кусков матриц можно делать до. Реально сделать быстрее спайса, но похоже не реально в риал-тайме.
+ пользователь может сгородить почти любую схему (ограничено моделями лампы, bjt,  jfet) и получить ее звук.
- подсчет кол-ва операций на решение только линейной системы 30х30 (30 узлов в хорошем преде) показывает что это только мечты. Для LU-факторизации это n^2 (900 операций за отсчет), для Гауса 1/3*n^3 (9000 операций).

Второй вариант. Составление схемы из модулей: каскад такой, RC-цепь, каскад сякой и т.д.
+ решить 10 матриц по 3Х3 быстрее чем 1 30х30. А еще лучше вывести формулы на каждый модуль(по этому пути ты и пошел, как я понял).
- нельзя сформировать схему с цепью, которая не смоделирована разработчиками. Прощайте винтажные фузы с обратными связями.

Третий вариант. Обсчитать схему целиком заранее. Все коэффициенты заоптимизить.
+ Самый быстрый вариант для риал-тайм.
- Интересен только разработчикам. Следующую схему могут сделать только они, а так как записать уравнения для всей схемы непросто - то и будет это нечасто. Юзеры могут максимум крутить крутилки.

Имхо, пока предпочтителен вариант 2.
 
Название: Dsp алгоритмы
Отправлено: Gunpowder от Апреля 29, 2007, 07:51:28 pm
И еще на счет интерполяции сплайнами. Судя по твоим подсчетам операций расчет выйдет из реального времени.

Тогда есть смысл использовать аналитические модели, типа Корена или Райдла. Плюс можно записать аналитический вид производной.

Хотя надо делать и так и так.

Правда я не понял, почему ты считаешь модульную архитектуру в 5-10 раз тормознутее полного обсчета схемы. Да кол-во узлов больше - больше совокупное кол-во уравнений. Однако счиатать маленькие схемки всегда дешевле: для LU факторизации (кол-во операций не точно - порядок, для 5 узлов) 2 матрицы по 3х3 это 18 операций, 1 5х5 это 25.
Не говоря уже про то что для малой схемы можно вывести прямое уравнение.
Название: Dsp алгоритмы
Отправлено: Medved от Апреля 29, 2007, 09:22:59 pm
Привет. Я честно скажу, что ничерта не понимаю в подходе спайса, в его узлах и проч)
I)Про ФВЧ. Мы говорим на разных языках и используем разные подходы)
Я применял первый и второй з-н Кирхгофа к такой цепи: источник, конденсатор, резистор. Дальше, не переходи к производным, считай все через интегралы, т.к. в численных вычислениях интегрирование гораздо предпочтительнее дифференцирования. Получишь простенькую системку. Попробуй, не получится- напишу... Просто формулы в комп сложно загонять)
II) Смотря кому что надо. Мне нужен риалтайм алгоритм, который бы давал результат, близкий к оригиналу.
Приведенные тобой цифры я все-равно не понимаю (смотри вступление). По моим подсчетам (3) вариант сводится к одной системе из 2*N уравнений, где N - количество триодов. Т.е. в общем случае отдельного двухбалонного преампа к восьми уравнениям.
(2) вариант итерационный. Он считает немного по другим принципам, в итоге  получается N систем из двух уравнений, но еще накручена внешняя итерация, которая избавляет математика от объемных вычислений и позволяет создать модульную структуру.
III) Аналитические модели - тупик. Их лишь можно попробовать прикрутить в качестве источника производных. Тут надо еще думать. Свести к 25-30 операциям вполне реально при соответсующем подходе.
Название: Dsp алгоритмы
Отправлено: Gunpowder от Мая 02, 2007, 02:31:38 pm
Спасибо! Выразил емкость через интеграл. Пассивные схемы (ФВЧ, ФНЧ и пр.)заработали.

Для меня все-таки загадка, как ты получил такое малое кол-во уравнений для обоих вариантов. 8 уравнений на преамп!!!  Межкаскадку тоже учитываешь?
Стандартными методами из Кирхгофа должна быть система 20-30 уравнений.

И про второй вариант - 2 уравнения на каскад. Ты также используешь эквивалентную схему лампы из 2-х источников тока? На один каскад у меня выходит 3 уравнения с 3-мя неизвестными напряжениями сетка, катод, анод. У Серафини тоже 3, правда неизвестные - токи.

 
Название: Dsp алгоритмы
Отправлено: Medved от Мая 02, 2007, 06:02:37 pm
Цитировать
Спасибо! Выразил емкость через интеграл. Пассивные схемы (ФВЧ, ФНЧ и пр.)заработали.
Ну вот видишь. Все просто)
Цитировать
Для меня все-таки загадка, как ты получил такое малое кол-во уравнений для обоих вариантов. 8 уравнений на преамп!!! Межкаскадку тоже учитываешь?
Если ты измарал достаточно бумаги, то понял, что межкаскадка- константы в уравнениях до тех пор, пока они не начинают проявляют зависимость своих характеристик от сигнала)))
Цитировать
И про второй вариант - 2 уравнения на каскад. Ты также используешь эквивалентную схему лампы из 2-х источников тока? На один каскад у меня выходит 3 уравнения с 3-мя неизвестными напряжениями сетка, катод, анод. У Серафини тоже 3, правда неизвестные - токи.
Два источника тока. Две неизвестных функции тока, зависящие от (Va-Vk),(Vg-Vk). Какие у тебя это вызывает ассоциации? :P  
Название: Dsp алгоритмы
Отправлено: Medved от Июля 13, 2007, 11:41:23 pm
Валентин, ты куда пропал? В отпуске что ли?
У меня вести с полей, очень хорошие на мой взгляд. Я думаю, ты им обрадуешься) До меня неожиданно дошло, что начальный участок ВАХ триодов в реальной жизни не используется! В гитарных каскадах напряжение анод-катод не опускается ниже 60-70в из-за открытия входного диода. Я думаю, не надо объяснять какие выгоды это нам дает в вычислительном плане :lol:
Название: Dsp алгоритмы
Отправлено: Gunpowder от Июля 31, 2008, 05:18:35 pm
Привет! Не прошло и года:)
Как дела? Давно забросил уравнения?
Название: Dsp алгоритмы
Отправлено: Medved от Июля 31, 2008, 08:23:44 pm
Да, забросил. Разочаровавшись в том, что мощности цпу не хватает на посчитать весь преамп в риалтайме) Ты куда пропал?
Название: Dsp алгоритмы
Отправлено: Gunpowder от Июля 31, 2008, 08:36:33 pm
Была смена работы и защита кандидатской.  Вобщем, было не до интернета. Зато щас - свобода и легкость в теле:)
Название: Dsp алгоритмы
Отправлено: Gunpowder от Июля 31, 2008, 08:38:54 pm
Кстати на форуме forum.rmmedia.ru один чел сотворил в VST богнер шарп. Довольно неплохо. В алгоритмах естественно не признаётся.
Название: Dsp алгоритмы
Отправлено: Medved от Июля 31, 2008, 10:16:24 pm
У меня доступа нет к тому разделу, а регистрироваться лениво. Выползи уже в аську, поболтаем... В оффлайне-то даром соорудить все, что до динамика, включая выходной транс. С кабинетом и динамиком же серьезные проблемы. В любом случае, все упирается во время счета :P
Название: Dsp алгоритмы
Отправлено: GrafOsciLL от Августа 01, 2008, 09:52:30 am

   хм......   ну  отмечу что   реально   можно добится  средненького звучания

если использовать   железный пред  => софтовый каб


но!  один чел сказал что есть два секрета лампового звучания

1) низкое выходное сопротивление
2) скорость нарастания

по 1ому  ,я поставил в дешёвый комбик последовательно с динамиком
резистер в 20 ом ,  заметил разницу средение дествительно стали
детальнее чтоли=), ну  громкость немного упала, но не критично для дома хватит с запасом,    проблема резонанса ГГ  обсуждаемая на форумах
 оказалась   ПРИУВЕЛИЧЕНОЙ , так што можно и ИТУН с нулевым сопротивлением   делать в качестве выходника
 ** кстати 1ое объясняет что динамик на большой громкости начинает звучать
изза того что начинает свободно болтаться и применяя ИТУН ,ВОЗЖМОЖНО
МОЖНО  снизить громкость нормального звучания комбика.............

хотя у меня есть ещё  мысль что на большой громкости  соотношение  эха
к сигналу из ГГ становится другим(увеличивается), (эха становится больше при увеличении громкости),  вот  даже миком пишешь   и звучание конкретно!
изменяется  особенно если мик, метра на два или далее от комбика отнести,
похоже он просто лучше эхо(со всех сторон) помещения слышит нежели УХО

2) теперь по второму(надо же ещё динамику игры объяснить=)..),

 ну даже для обычной аппаратуры имеет значение нарастание,
на вегалабе обсуждали сверх ось , даже есть сторонники  ,что звучит лучше лампы

//дисторшен это обруб сигнала, остаётся только то что
около нуля , А в нуле-то сигнал имеет максимальное нарастание,

которое то как раз не может пропустить
 транзистор или микросхема(то есть быстрее они открыться уже немогут)
ну или цифра  у неё вобще диапазон значений невелик.

нарастание f*u*k=(В/мкс)

f=частота в герцах
u=амплитуда синуса
k=0,0000066

 оно тоже поддаётся умножению даже если сигнал обрублен
, и поэтому нада учитывать усиление всех каскадов.....

из этого кстати можно сделать вывод,, почему!! подключая педаль дисторшена из дрянных  деталей  в усилитель с хорошим оконечником
выходит приличный звук , потому что для первых каскадов  нарастание не
достигает критического для транзисторов ,
можно вспомнить,как пример, предел для драйва в педальках или в комбиках,
на а если есть предел для драйва ТО и динамика тоже ОТПАДЁТ=)

ну и наконец  , цифра не решит проблему влоб (последовательно модулируя
каждый каскад),здесь можно заметить ЧТО исходный и КОНЕЧНЫЙ звуки(то есть с датчиков и концерт на диске)  хорошо передаются ,,,,,,,,,,,
этим можно воспользоваться ,  нужно перескакивать
моделирование усилителя и ограничение сигнала вобще , и забирая
со входа(аудиокарты) сигнал датчиков моделировать его влияние сразу на
динамик,,, вот почему щас в симуляторах  такие не понятные на слух
алгоритмы      ,,, ТИПА "ОТКЛИК кабинетов" ,, скорее  они только получив сигнал на вход   в виде амплитудных выборок   переводят его  в более
удобный вид типа  наклонных выборок и т. д. и т. п.  
Название: Dsp алгоритмы
Отправлено: Gunpowder от Августа 01, 2008, 12:50:32 pm
Medved - ну с кабинетом проблем, имхо, меньше всего. Решение: динамический FIR, который интерполирует по откликам (импульсам), снятым с реального устройства на разной громкости. Плугин такой я уже как-то написал. Жрет ~300Мгц проца (уже с небольшой ассемблерной оптимизацией). А вот нормальных импульсов с посредсвенной аппаратурой не снял.

А вот то, что кажется тебе простым (пред и паверамп), у меня так и не заработало:( Метод интерполяций Ньютона при обсчете лампового каскада срывается на горизонтальном участке сигнала. На том я на это и забил...
Название: Dsp алгоритмы
Отправлено: Medved от Августа 01, 2008, 03:00:55 pm
Насколько я помню, при использовании соответствующей модели, получалась линейная система... :huh:  
Название: Dsp алгоритмы
Отправлено: Gunpowder от Августа 01, 2008, 05:14:50 pm
Линейная? У меня была нелинейная :(
Если так, то ты молодец! А почему ж тогда не хватает мощи обсчитать...
Название: Dsp алгоритмы
Отправлено: GrafOsciLL от Августа 02, 2008, 06:13:21 am
а  оптимизацию по времени делали ,,

я говорю об  том что шаги  дальше от нуля сигнала могут быть

реже  
Название: Dsp алгоритмы
Отправлено: Thehm от Ноября 22, 2008, 09:13:04 pm
Никто случайно нормальный ревер писать не собирается? :) Могу помочь с интерфейсом.
Название: Dsp алгоритмы
Отправлено: zztim от Ноября 24, 2008, 11:37:09 am
я собираюсь, можно списаться и обсудить