Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Сжать график.   Найти похожие ветки 

 
Inovet ©   (2012-10-11 07:53) [40]

> [38] Pavia ©   (11.10.12 06:34)
> как и ваш Adobe Audition

Оно Adobe

> [38] Pavia ©   (11.10.12 06:34)
> Единственное что я не согласен с тем что надо строить синусойду(такая
> возможность у меня имеется) при интерполяции. Это неверно.
> Между точками мы можем провести кривую любым способом.

На картинках синусоида, потому что там действительно синусоида, я же написал какая, было бы другое, и апроксиморовалось бы иначе. Картинку я привёл к пояснению [8]. Построй по точкам - получишь фигню.


 
Inovet ©   (2012-10-11 07:56) [41]

> [39] Павиа   (11.10.12 07:13)
> Вот тут и кроется заблуждение вы падаете на вход синусойду
> и ожидаете синусойду. А подайте не синусойду а к примеру
> меандер(п-образный сигна) или лучше экспоненту. В результате
> вы не получите желаемого у вас будут непонятные волны.

Не бывает прямоугольных сигналов, всегда волны и будут.


 
Inovet ©   (2012-10-11 08:02) [42]

На тебе прямоугольник 20000 Гц
http://s1.ipicture.ru/uploads/20121011/ueQVh5rr.jpg


 
Inovet ©   (2012-10-11 08:06) [43]

На тебе  две синусоиды 13333 и 20000
http://s2.ipicture.ru/uploads/20121011/9ADNuVH0.jpg


 
han_malign   (2012-10-11 08:43) [44]


> На тебе  две синусоиды

- уперся блин - нафиг не нужны никакие фильтры и интерполяции при отображении осциллограммы оцифрованного звука...
Нужно тупо красиво нарисовать огибающую не потеряв информативности при отображении большого куска сигнала в один пиксель полосу...

Как видно на рисунке это делается полутонами, и по сути напоминает закрашивание карандашом линии с амплитудой сигнала...

 1        1
111       3
1111  ==> 4
111       3
 11       2


 
Inovet ©   (2012-10-11 08:48) [45]

> [44] han_malign   (11.10.12 08:43)
> Нужно тупо красиво нарисовать огибающую

При масштабе меньше разрешения так и будет, выше обсуждали как, при достаточном разрешении надо апроксимировать иначе будеьт фигня,. Тут же пытаются доказать обратное.


 
Inovet ©   (2012-10-11 08:53) [46]

> [44] han_malign   (11.10.12 08:43)
> Как видно на рисунке это делается полутонами, и по сути
> напоминает закрашивание карандашом линии с амплитудой сигнала

Да хоть в цветочек с горошком, какая разница как он там разукрасит, важно что разукрашивать.


 
han_malign   (2012-10-11 09:11) [47]


> при достаточном разрешении надо апроксимировать

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

З.Ы. Частотную составляющую все-таки надо бы учитывать, т.к. ужимаем и по амплитуде тоже
- *        -
    *      2
-     *    -
           1/2
-          -
           1/2
-       *  -

- но тут линейной интерполяции - за глаза...


 
Pavia ©   (2012-10-11 09:16) [48]


> Inovet ©   (11.10.12 08:02) [42]

Я отвас больше экспоненту хотел видить.
но ладно вот вам табличка сигналы и их отоброжения в зависимости от интерполяци
http://postimage.org/image/ad4zw4hav/full/
Налучшей результат находится на диаганали.
Красными линиями показано значение в точке.


 
han_malign   (2012-10-11 09:36) [49]


> важно что разукрашивать

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


 
Jeer ©   (2012-10-11 12:10) [50]

Это обычная задача DSP и не наду тут "разводить кроликов" насчет "красивше".
Решать ее надо правильными методами, основанными на теории обработки сигналов, тогода будет и правильно и "красивше".

Интерполяция тут при чем ?

Стоит задача децимации, т.е. уменьшения частоты дискретизации.
Инженерным или научным ( как хотите ) методом является именно предварительная фильтрация, затем децимация или как показано мной выше совмещение операций фильтрации и децимации на CIC-фильтрах.

Пример 1.

http://s017.radikal.ru/i440/1210/5f/2ed7dac76240.jpg

Серый - исходный сигнал, полученный из белого шума формирующим фильтром ( ФНЧ первого порядка ), аналог звукового сигнала.
Черный - децимация 1:100 исходного ( серого ) сигнала.
Красный - фильтрация исходного сигнала скользящим усреднением, т.е. выделение НЧ-составляющей для обеспечения нормальной децимации.

Как видим, черный и близко не лег к основной НЧ составляющей.

Пример 2.

http://s47.radikal.ru/i117/1210/56/be776ec7d2cc.jpg

Серый и красный - тоже самое, а черный - децимация 1:100 отфильтрованного ( красного ) сигнала.
Совпадение более, чем удовлетворительное при столь высокой децимации.


 
Inovet ©   (2012-10-11 13:02) [51]

> [48] Pavia ©   (11.10.12 09:16)
> Налучшей результат находится на диаганали.

Да вот в трёх приведённыйх примерах наиболее близкий к реальности будет sine. Некрасивый, но правдивый.


 
Inovet ©   (2012-10-11 13:05) [52]

> [47] han_malign   (11.10.12 09:11)
> - но тут линейной интерполяции - за глаза...

Может быть, но мин макс лучше.


 
Inovet ©   (2012-10-11 13:14) [53]

> [50] Jeer ©   (11.10.12 12:10)
> и не наду тут "разводить кроликов" насчет "красивше"

Как раз задача и стоит красивше, а не правильнее. Ну типа - визуализировать звуковую дорожку, как сфотографировать канавку на грамластинке или осциллограмму, а потом понизить разрешение фотографии. Никто по ней не будет определять параметры сигнала, достаточно видеть где тише, где громче для навигации, а больше и не надо. С ФНЧ этого как раз не будет видно.


 
Inovet ©   (2012-10-11 13:16) [54]

> [47] han_malign   (11.10.12 09:11)
> - не будет там достаточного разрешения, потому что 20-ти
> минутный трек кусками по 10 миллисекунд никто разглядывать
> не будет

Не будет - и хрен с ним. А если будет, так надо сделать нормально.


 
Inovet ©   (2012-10-11 13:27) [55]

> [53] Inovet ©   (11.10.12 13:14)
> визуализировать звуковую дорожку

Кстати, на киноплёнке её и так видно.
http://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/35_mm_RUS.svg/2000px-35_mm_RUS.svg.png?uselang=ru


 
Pavia ©   (2012-10-11 13:28) [56]


> Да вот в трёх приведённыйх примерах наиболее близкий к реальности
> будет sine. Некрасивый, но правдивый.

Ошибаетесь.
Торт состоит из коржей хотя разрезается на дольки(куски).
вы просто привыкли видеть его разрезанным.
Также и с синусойдами. Отсюда  вас и неправильное представление о реальности.


 
Inovet ©   (2012-10-11 13:37) [57]

> [56] Pavia ©   (11.10.12 13:28)
> Также и с синусойдами. Отсюда  вас и неправильное представление о реальности.

Хорошо, смотрим диагональ.
Прамоугольник.
1. при такой частоте выборок невозможны столь крутые фронты и спады.
2. Лучше, но углы торчат, тоже не может быть.
3. Правдиво

Экспонента.
1. На краях не может быть так, ещё и прямоуггольная.
2. Края не реальные.
3. Правдиво

Синусоида.

1. Даоеко от реальности в квадрате.
2. Получше, но углы не бывают.
3. Правдиво


 
Inovet ©   (2012-10-11 14:04) [58]

> [53] Inovet ©   (11.10.12 13:14)
> визуализировать звуковую дорожку

Пример визуализации со спектром
Тхе Беатлес - Йестырдей
http://s2.ipicture.ru/uploads/20121011/vJjZBlEh.jpg
с этого mp3
http://muzyaka.com/song/851


 
Jeer ©   (2012-10-11 14:49) [59]

Фантазируем дальше.
Предположим у ТС не стоит задача децимации.
У него задача показать огибающую по уровню громкости.
В этом случае, все упрощается - достаточно использовать простейшую цифровую модель амплитудного детектора.
Как мы помним - это диод и конденсатор + цепь разрядки.
Значит, моделируем диод и разное время зарядки и разрядки.

Для "диода" достаточно abs()
Конденсатор с разными постоянными времени моделируется ФНЧ первого порядка с изменяемой, в зависимости от направления тока, постоянной времени.

http://s017.radikal.ru/i406/1210/a5/661c447bec6b.jpg

Т.е. мы произвели амплитудное детектирование AM-сигнала, где в качестве несущей частоты (частот)  выступает спектр звукового сигнала.

Модель чрезвычайно проста и физична, в отличии от геометрических построений, а главное - давно отработана в радиоприемниках.

Ее можно, улучшать вводя адаптивность постоянной времени от уровня рассогласования, использовать каскадное соединение ФНЧ первого порядка или фильтр втрого порядка.

// arY[] - массив входных данных
// arYF[] - отфильтрованный массив
// A - эквивалент постоянной времени

 Yi := 0;
 for i := 0 to High(arY) do begin
   Ya := abs(arY[i]); \\ "выпрямление"
   if Yi < Ya then A := 0.05 \\ моделирование времени заряда-разряда
   else A:= 0.003;
   Y := A*Ya + (1-A)*Yi; \\ фильтр
   Yi := Y; \\ фильтр
   arYF[i] := Y;
 end;

Децимация проходит на ура
http://s019.radikal.ru/i621/1210/b9/526a1022b928.jpg


 
Jeer ©   (2012-10-11 14:59) [60]

Наконец, после "амплитудного детектора" ставим такой же простейший ФНЧ и получаем вполне сносное и физически обоснованное видение процесса:

http://s017.radikal.ru/i412/1210/e2/2a8157e3f023.jpg

  A - const
  Y := A*Ya + (1-A)*Yi; \\ фильтр
  Yi := Y; \\ фильтр


 
Jeer ©   (2012-10-11 15:02) [61]

К огибающему сигналу после его децимации вообще претензий нет
http://s019.radikal.ru/i636/1210/b4/272450e61768.jpg


 
Jeer ©   (2012-10-11 15:06) [62]

Могу еще пофантазировать, что ТС, говоря о гистограмме ( а не тренде ), имел в виду визуализацию спектра сигнала :)

Тут все просто до безобразия (если не заморачиваться с вейвлетами):
- медленный и тупой DFT;
- быстрый и умный FFT;
- сверхбыстрый и хитрый Герцель ( Goertzel )

+ гистограмма, то бишь столбики.


 
Inovet ©   (2012-10-11 15:16) [63]

> [62] Jeer ©   (11.10.12 15:06)
> Могу еще пофантазировать, что ТС, говоря о гистограмме (
> а не тренде ), имел в виду визуализацию спектра сигнала :)

Это вряд ли.:)
С детектором похоже на то. Интересно как обычно делают в том же Аудишн, да и везде они похоже выглядят. Что-то мне думается, фильтр они не ставят - меставми выбросы видно.


 
Inovet ©   (2012-10-11 15:22) [64]

> [59] Jeer ©   (11.10.12 14:49)

Насчёт времён заряда и разряда. Это в аналоге так, а в цифре можно в ближайшее будущее подсмотреть, чтобы ровнее было. Нет?


 
Jeer ©   (2012-10-11 15:27) [65]

Вот вариант с адаптивной подстройкой времени заряда-разряда

var
 i: integer;
 Ya, Y, Yi, A, K: TFloat;
 function _Adaptive(const k, dX: TFloat): TFloat;
 begin
   Result := k * (0.01 + abs(dX));
 end;

begin
 Yi := 0;
 for i := 0 to High(arY) do begin
   Ya := abs(arY[i]);
   if Yi < Ya then K := 0.5
   else K := 0.01;
   A := _Adaptive(K, Yi - Ya);
   Y := A * Ya + (1 - A) * Yi;
   Yi := Y;
   arYF[i] := Y;
 end;
end;

Тут обошлись одним фильтром с подстраиваемой T

http://i053.radikal.ru/1210/c9/398e969f7a46.jpg


 
Jeer ©   (2012-10-11 15:39) [66]


> Это в аналоге так, а в цифре можно в ближайшее будущее


Это и в цифре и а аналоге одинаково, если онлайн обработка.
Тот алгоритм, что я привел как аналог AM - легко применяется для онлайн обработки.
Если данные уже получены в виде некоего массива - можно улучшать до бесконечности.


 
Pavia ©   (2012-10-11 15:40) [67]


> Хорошо, смотрим диагональ.Прамоугольник.1. при такой частоте
> выборок невозможны столь крутые фронты и спады.2. Лучше,
>  но углы торчат, тоже не может быть.3. ПравдивоЭкспонента.
> 1. На краях не может быть так, ещё и прямоуггольная.2. Края
> не реальные.3. Правдиво

Прямоугольной может быть и есть.  А то что АЦП выступает в роле фильтера это вопрос второй.
Да мы можем подогнать под АЦП скругив. Но гораздо наглдее и реальне прямоугольные.


 
Inovet ©   (2012-10-11 16:04) [68]

> [67] Pavia ©   (11.10.12 15:40)

Ну ты понял. Или абстракция с идеализацией и с бесконечно высокой скоростью выборок, или реальность - то, что будет на выходе. Даже без АЦП сгенерировали красивые прямоугольники, а на выходе ЦАП+ФНЧ от них может остаться, в зависимости от частоты, отдалённо похожее на идеал, а то и синусоида.


 
han_malign   (2012-10-11 16:17) [69]


> А если будет, так надо сделать нормально.

- нормальная визуализация - это максимально информативная с минимальным искажением входных данных...
Это вообще может быть не оцифровка аналогового сигнала, а любая дискретная выборка - например почасовой счетчик срабатываний турникета за последний год, или плотность сетевого трафика, или гистограмма распределения на большом динамическом диапазоне(тот же спектр) - и `тут не надо "разводить кроликов"` и резать или выдумывать промежуточные отсчеты...


> Это обычная задача DSP

- DrawLine(i, ...); - уга, ага - классическая задача обработки сигналов, может еще и преобразование Фурье для построения огибающей сделать?

И "красивше" там - насчет визуального выявления локальных артефактов на больших выборках, для быстрой навигации и последующей детализации...


 
Jeer ©   (2012-10-11 16:30) [70]


>  DrawLine(i, ...); - уга, ага - классическая задача обработки
> сигналов


Передергивать не надо. Drawline - это метод рисования, а не обработки.
Привыкли, панимаешь, к геометрии :)


> это максимально информативная с минимальным искажением входных
> данных.


Критерии информативности и минимальности - в студию.
А так - это просто треп.


 
Jeer ©   (2012-10-11 16:34) [71]


> А то что АЦП выступает в роле фильтера это вопрос второй.
>  


Это где Вам такое приснилось ? :)


 
Inovet ©   (2012-10-11 17:01) [72]

> [69] han_malign   (11.10.12 16:17)
> Это вообще может быть не оцифровка аналогового сигнала,
> а любая дискретная выборка

Автор, после несколько раз заданного наводящего вопроса, ответил, что там такое. Но и для физически иных данных не факт, что не надо. И турникет, и трафик тоже могут в обе стороны работать - методы годятся, либо, в особых случаях, в одну сторону - "всех впускать, никого не выпускать" - с постоянной составляющей, когда-то всё равной выпустят, но может уже в другом качестве - другие методы.


 
Pavia ©   (2012-10-11 18:59) [73]


> Это где Вам такое приснилось ? :)

Может я немного не правильно выразился.
Во-первых АЦП отсекает частоты которые ниже частоты дискретизации.
Во-вторых АЦП состоит из конденсатора и компараторов. Так вот конденсатор и выполняет роль фильтера.


 
Inovet ©   (2012-10-11 19:08) [74]

> [73] Pavia ©   (11.10.12 18:59)

Оба постулата неверны


 
Игорь Шевченко ©   (2012-10-11 19:51) [75]

В-третьих, у него внутре неонка


 
Jeer ©   (2012-10-11 20:29) [76]


> Во-первых АЦП отсекает частоты которые ниже частоты дискретизации.
>
> Во-вторых АЦП состоит из конденсатора и компараторов. Так
> вот конденсатор и выполняет роль фильтера.


Оба-на, а народ-то и не знал, откуда выдирать конденсаторы.
Пойду гляну на свои запасы АЦП - наверняка сотню кондеров из них щипчиками по-вытаскиваю.

По делу:
Правильным применением любого АЦП, как функционального узла, является применение его в совокупности с предварительным аналоговым фильтром НЧ, для удаления частот выше частоты Найквиста ( теорема Котельникова ).

Из чего конкретно состоит тот или иной АЦП - это второй вопрос, архитектурный и "кондеров" там может не быть вообще :)

Но, именно такая связка ФНЧ + АЦП будет работать технически грамотно.


> В-третьих, у него внутре неонка


+100500 :)


 
han_malign   (2012-10-12 09:15) [77]


> Критерии информативности и минимальности - в студию.

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

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

Информативность
Простой пример: чистая гармоника - на эскизе заведомо сливается в полосу, т.е. огибающая - прямая.
Но, если построить правильное полутоновое изображение - крутизна градиента цвета фактически соответствует крутизне фронта волны - можно прикинуть частоту, увидеть биение частот - фактически можно отобразить FM-радио "в оригинале"...

Еще проще: набор чистых цифровых стробов - по интенсивности цвета выкидышей на эскизе можно легко прикинуть наличие и ширину посылок...

Изначально стояла задача нарисовать эскиз осциллограммы сигнала, а не смоделировать какой либо тракт обработки этого сигнала...
А при построении эскизов - применяются алгоритмы обработки изображения, а не звука...


 
Inovet ©   (2012-10-12 09:23) [78]

> [77] han_malign   (12.10.12 09:15)
> даже по Вашим Высшим законам

Законы природы безличностны и действуют для всех одинаково, в отличие от личных фантазий. Не так давно была ветка на тему цифровых сигналов, там тоже разговоры шли о вымышленных красивостях. Другое дело, когда красивость нужна для красивости, пусть при этом как раз потеряется объективность и будут внесены искажения. Это уже художества, не плохо, нет, но надо понимать разницу и область применения.


 
Inovet ©   (2012-10-12 09:29) [79]

Вот в посте
> [58] Inovet ©   (11.10.12 14:04)

картинка - это же не для красивости в плеере сделана, а для работы. Например, можно из спектра взять прямоугольную область и применить затем в фильтре.


 
Inovet ©   (2012-10-12 09:37) [80]

> [79] Inovet ©   (12.10.12 09:29)

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



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.64 MB
Время: 0.071 c
15-1345197008
Painner777
2012-08-17 13:50
2013.03.22
Рисование, обводка в фотошопе?


15-1354038522
Дмитрий С
2012-11-27 21:48
2013.03.22
Менеджер паролей.


15-1343200140
boriskb
2012-07-25 11:09
2013.03.22
Программисты становятся дефицитом


8-1229064406
ezhik
2008-12-12 09:46
2013.03.22
получение каркасного изображения тел в ортогональной и центрально


2-1345111451
Дмитрий Белькевич
2012-08-16 14:04
2013.03.22
Найти вернее окно (форму) среди нескольких одинаковых





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский