Страница 2 из 13 Первая 123412 ... Последняя
Показано с 21 по 40 из 250

Тема: Генератор синуса с гармониками

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,365

    По умолчанию Генератор синуса с гармониками

    Существует концепция измерения, при которой к синусу подмешиваются его гармоники с небольшой амплитудой в противофазе. Такую задачу и решает эта программа. Помимо гармоник (которые можно выборочно отключать) есть ещё три дополнительные частоты для вспомогательных задач. Также можно округлять частоту синусоиды к значению, нацело укладывающуюся в стандартные размеры FFT (2048/4096/etc), чтобы избежать влияния оконных функций.
    Нажмите на изображение для увеличения. 

Название:	HarmonicSineGeneratorPro.png 
Просмотров:	634 
Размер:	18.5 Кб 
ID:	397868
    Все значения громкости относительно Master`а, режим auto дополнительно подгоняет уровень сигнала под 0 дБ, ориентируясь на измерения пиковых значений при воспроизведении.

    Драйвер вывода звука пока только WASAPI, shared/exclusive режимы и выбор частоты дискретизации присутствуют. В режиме shared может происходить неявная передискретизация, если частота дискретизации не поддерживается устройством. В режиме exclusive поддерживаются только частоты от драйвера, в остальных случаях появится сообщение об ошибке.

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

    Сама программа: HarmonicSineGeneratorPro.v.2.1.zip, для работы может потребоваться установка .NET Framework 4.
    Последний раз редактировалось E.Sokol; 24.05.2021 в 21:15.

  2. #21
    Завсегдатай Аватар для Meta|_
    Регистрация
    08.03.2005
    Адрес
    Северная Голландия
    Возраст
    41
    Сообщений
    2,038

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от maxssau Посмотреть сообщение
    А есть результаты в железе? Идея хорошая
    Если это про компенсацию гармоник АЦП, то там вопрос не в железе, а в сложной методике и ограниченной применимости.
    Фактически нужно АЦПом подключиться к ЦАПу, с которого идёт синус, скомпенсировать программно гармоники. Потом между ЦАП и АЦП вставить тестируемое устройство.
    Список геморроев примерно такой:
    - Если входной импеданс устройства отличается от входного импеданса АЦП - могут измениться гармоники ЦАПа.
    - Если выходной импеданс устройства отличается от выходного импеданса ЦАПа, могут измениться гармоники АЦП.
    - Если уровень на выходе устройства отличается от уровня на его входе, точно изменятся гармоники АЦП (а если поставить делитель - см. выше про импедансы).
    - Поскольку мы не различаем, что именно компенсируем, гармоники ЦАП или гармоники АЦП, сигнал с ЦАПа в действительности будет содержать лишние гармоники (предыскажения), которые теоретически могут повлиять на гармоники исследуемого устройства. Но в случае очень линейных устройств это не актуально.
    - Если учесть, что на измерения очень малых искажений зачастую влияют наводки на кабели и подобные нюансы, становится ещё грустнее...

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Ещё он также предлагал округлять их к простым числам, но тут уже возникают неоднозначности.
    Так это принципиально важно - чтобы комбинационные составляющие не попадали на частоты исходного сигнала.
    ∇·D = ρ
    ∇·B = 0
    ∇xE = – ∂B/∂t
    ∇xH = j + ∂D/∂t
    © J. C. Maxwell, O. Heaviside

  3. #22
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,365

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от Meta|_ Посмотреть сообщение
    Так это принципиально важно - чтобы комбинационные составляющие не попадали на частоты исходного сигнала.
    Так для этого не обязательно именно целые значения частот. Например, n*E и m*PI не пересекутся по определению (n и m целые поскольку номера гармоник).

  4. #23
    Завсегдатай
    Регистрация
    03.05.2010
    Сообщений
    3,532

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Забыл написать - кнопками ←↑↓→, Pg Up, Pg Dn с клавиатуры тоже крутить можно, дискретно. И непосредственное значение вбивать тоже можно. Мышкой - это для скорости, а крутилка заодно ещё и роль стрелочного индикатора выполняет.
    Отлично!


    Цитата Сообщение от E.Sokol Посмотреть сообщение
    "
    а) количество гармоник
    б) шаг приращения при нажатии мышкой для амплитуды
    в) шаг приращения при нажатии мышкой для фазы
    г) нужны ли ещё частоты и сколько
    д) нужно ли округление для FFT
    е) нужна ли автоматическая подстройка уровня
    ж) количество знаков после запятой
    а) Хотя-бы штук 7-9, но при этом, чтоб было можно было выбирать номер гармоники. Например если схема симметрична, бывает, что четных нет совсем или есть только вторая;
    б) 0.1 дБ (мышкой или клавишей-стрелкой);
    в) 1 градус;
    г) думаю достаточно имеющейся пары референсных тонов. Иногда бывают приколы вроде неуемного желания измерить ИМД, но это чуть отдельная тема;
    д) да. понятное дело, что оно нужно только для специфического случая одного мастерклока для ЦАП и АЦП, но такое тоже случается и кроме того, наличие опции никому ничем не мешает;
    е) в принципе, она никому не мешает, а если заниматься акустикой (или чем-то, где гармоник много), может даже оказаться в тему;
    ж) для амплитуды и фазы я бы накинул по разряду к тому, что выставляется мышкой - два знака после запятой для амплитуды и один разряд после запятой для фазы.
    Для частоты - даже не знаю

    з) тут есть такой прикольный момент. Иногда доводится слышать сомнения в том, что определение Кг посредством ФФТ работает корректно. А тут автоматом получается определить Кг, причем с неплохой точностью.
    Т.е. я бы поставил еще и окошко, в котором высвечивался бы актуальный уровень гармоник

    и) еще есть момент с нижним уровнем в -150 дБ. Не могу сказать, что я использовал компенсацию на таком уровне, но не исключено, что только по причине трудоемкости (когда делаешь это в звуковом редакторе). Но вот уровни по -140 - -145 дБ - это реальная повседневность. И когда понимаешь, что граница в -150 дБ совсем рядом, это немного напрягает.
    Думаю, что уже порог в -160 дБ выглядел бы как-то спокойнее.

  5. #24
    Старый знакомый Аватар для minimalman
    Регистрация
    27.02.2021
    Сообщений
    838

    По умолчанию Re: Генератор синуса с гармониками


    Offтопик:
    Ещё мона взять что-то типа лайв24б (8каналов, 0,001%, 25 баксов, можно предварительно ещё и через RC пассив 4..8го порядка пропустить) и получить 8-тональный сигнал без интермод и почти без гармоник.

  6. #25
    Завсегдатай
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,446

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от Alex Посмотреть сообщение
    Ну если на компе, то АРТА умеет генерить мультитон.
    В WaveGene 8 волн, 7 гармоник т.е.

  7. #26
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    40
    Сообщений
    2,624

    По умолчанию Re: Генератор синуса с гармониками

    нужна пояснительная бригада

    генератор спекты и генератор из первого поста, откуда забор?

    Нажмите на изображение для увеличения. 

Название:	1.png 
Просмотров:	213 
Размер:	210.8 Кб 
ID:	397720

    Нажмите на изображение для увеличения. 

Название:	2.png 
Просмотров:	214 
Размер:	205.0 Кб 
ID:	397721

    или генерируется в 16 бит?
    _________________
    Евгений

  8. #27
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    37,502

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от mellowman Посмотреть сообщение
    В WaveGene 8 волн, 7 гармоник т.е.
    Да, и в СпектраПлюсе - 10, т.е. 9 гармоник. (правда, в отличие от WaveGene, SPPlus не умеет работать с числом канадлов больше двух).
    Но там надо их все руками прописывать (что конечно, иногда и полезно), а в Арте (и у меня в Генераторе) - "нажатием одной кнопки" генерируется несколько наборов частот, аж до 40-ка частот.

    ---------- Сообщение добавлено 19:26 ---------- Предыдущее сообщение было 19:22 ----------

    Цитата Сообщение от maxssau Посмотреть сообщение
    генератор спекты и генератор из первого поста, откуда забор?
    Может я ошибаюсь, но похоже на недостаточную точность вычисления синуса в DDS.


    Хотя, даже с int32 или SP float я такого не видел, а E.Sokol скорее всего считает в int64 или DP float.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  9. #28
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,365

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от maxssau Посмотреть сообщение
    генератор спекты и генератор из первого поста, откуда забор? или генерируется в 16 бит?
    Считаю в double (64 бит), вывод во float (32 бит). Может, имеет место небольшой перегруз - у меня при 0 дБ был (при замере через loopback), убавлял до -0.15 дБ.

    ---------- Сообщение добавлено 22:26 ---------- Предыдущее сообщение было 22:13 ----------

    Нажмите на изображение для увеличения. 

Название:	wasapi loopback-distort.png 
Просмотров:	196 
Размер:	190.2 Кб 
ID:	397731
    Нажмите на изображение для увеличения. 

Название:	wasapi loopback.png 
Просмотров:	193 
Размер:	161.3 Кб 
ID:	397732

  10. #29
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    40
    Сообщений
    2,624

    По умолчанию Re: Генератор синуса с гармониками

    да, дело в уровнях.

    В целом всё отлично

    Нажмите на изображение для увеличения. 

Название:	7.png 
Просмотров:	224 
Размер:	214.9 Кб 
ID:	397750

    Т.е. обычный дак (4490) превращается по сути дело в перестраиваемый генератор Виктора.

    ИМХО: Что хотелось бы добавить/изменить:

    - крутилки, они явно на любителя
    - больше частот, как минимум до 10 гармоники
    - отельную коррекцию для ПК/ЛК

    ну и совсем наглось: петля с FFT (1М) и авто подгон уровней
    Последний раз редактировалось maxssau; 21.05.2021 в 21:56.
    _________________
    Евгений

  11. #30
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,365

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от maxssau Посмотреть сообщение
    - отдельную коррекцию для ПК/ЛК
    - петля с FFT (1М) и авто подгон уровней
    Не совсем понятно, что имеется ввиду. А авто подгон уровней вроде уже есть - кнопка auto.

  12. #31
    Завсегдатай Аватар для maxssau
    Регистрация
    15.08.2015
    Адрес
    Самара
    Возраст
    40
    Сообщений
    2,624

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    А авто подгон уровней вроде уже есть - кнопка auto.
    а что это кнопка делает? после установки галочки уровень и фаза гармоник не меняется, да и выбрать нужный АЦП нет возможности.

    Округление FFT в 65к наверное тоже мало. В SpectraPlus при 65к гармошек и так не видно, максимум 2/3, остальное хорошо видно только при 512к-1М.
    Последний раз редактировалось maxssau; 22.05.2021 в 08:35.
    _________________
    Евгений

  13. #32
    Частый гость Аватар для s_valentin
    Регистрация
    14.12.2006
    Адрес
    Магнитогорск
    Возраст
    44
    Сообщений
    141

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    Это значит, что нажав один раз на стрелочку, значение изменится только на одну тысячную: 1000.000 -> 1000.001. Это именно то, что требуется?
    Лучше наверно сотые оставить. Для попадания в режектор будет достаточно.

  14. #33
    Завсегдатай
    Регистрация
    03.05.2010
    Сообщений
    3,532

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от maxssau Посмотреть сообщение
    Округление FFT в 65к наверное тоже мало. В SpectraPlus при 65к гармошек и так не видно, максимум 2/3, остальное хорошо видно только при 512к-1М.
    65 k вполне достаточно. В больших ффт используются те-же самые значения + дополнительные. Так что в бин все равно получится попасть.

    Более плотная сетка (совпадающая с размером ффт в АЦП) имеет смысл, если клоки не совпадают, а есть желание оказаться недалеко от бина АЦП (а не ЦАП). Вот тогда стоит выставить актуальную сетку, а потом попросить о дополнительной опции вроде "выставить частоту на бин ффт/посредине между двумя бинами/на 1/4- / 3/4- расстояния между бинами" (ну или просто прогнать частоту с шагом 10% от частоты бина, до частоты посредине между бинами).

    ---------- Сообщение добавлено 14:28 ---------- Предыдущее сообщение было 14:24 ----------

    Цитата Сообщение от s_valentin Посмотреть сообщение
    Лучше наверно сотые оставить. Для попадания в режектор будет достаточно.
    Да даже 0.1 Гц хватит.

    Тем более, что иногда удобно как раз чуть отстроится от частоты режектора.
    Около точной частоты режектора подавления нередко "плавает" - до пары дБ легко (и частота кварцев и температура и еще невесть что). И если строить спектр с помощью калибровочной кривой обратной АЧХ режектора, то высота основного пика обычно "промазывает" относительно 0 дБ (если калиброваться но дополнительным негармониковым пикам)

    А если сделать калибровочную кривую по меньшему подавлению (там где АЧХ режектора более стабильна), скажем -50 дБ (режектор обычно давит лучше), то можно будет частоту генератора подгонять именно так, чтоб (после калибровки по дополнительным пикам) высота основного пика составляла искомый 0 дБFS (или сколько там будет реально).
    Последний раз редактировалось ViktKors; 22.05.2021 в 15:43.

  15. #34
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    37,502

    По умолчанию Re: Генератор синуса с гармониками

    Да, кстати, а почему эта тема в разделе "Акустика"?
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  16. #35
    Частый гость Аватар для s_valentin
    Регистрация
    14.12.2006
    Адрес
    Магнитогорск
    Возраст
    44
    Сообщений
    141

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    В разделе измерений. Мне это показалось более подходящим местом, чем "звук и компьютер". Но если Слон перенесёт, возмущаться не буду.
    Не обратил внимания. Тема явно в "звук и компьютер" или "FAQ, технологии, электронные компоненты и измерения". Для измерений в акустике такие сложности ни к чему, там -60дБ искажений получить - за счастье...

  17. #36
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    37,502

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от E.Sokol Посмотреть сообщение
    В разделе измерений.
    Так тут про акустические
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  18. #37

    По умолчанию Re: Генератор синуса с гармониками

    можно и так, но почему бы не LUT, как это сделано в ESS утвари?
    Кстати говоря, я делал попытку поправить так же генераторами антигармоник искажения ADAU1700, но получилось очень нестабильно и вообще снижало слабо.
    Импульсно всё, в этом мире бушующем..

  19. #38
    Завсегдатай
    Регистрация
    03.05.2010
    Сообщений
    3,532

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от IVX Посмотреть сообщение
    Но получилось очень нестабильно и вообще снижало слабо.
    У меня такой "антиискажатор" был лет 10 назад сделан для ЦАП на 1955 (использовал Никовский генератор под WinXP, который он писал когда отлаживал zd50).

    Недавно понадобилось опять, аналогичный ЦАП нашелся, но на другой плате, другой компелктухе и с чуть другим выхлопом.
    Так файл, сгенерированный по тогдашним корректирующим амплитудам/фазам, сходу дал улучшение THD на ~10 дБ (т.е. заметно ниже -130 дБ).
    Чтоб отдельные гармоники увести за -140 дБ потребовалась только небольшая подстройка.

    А именно оперативная подстройка - это и есть одна из важнейших приятных особенностей сабжа.

  20. #39

    По умолчанию Re: Генератор синуса с гармониками

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

  21. #40
    Завсегдатай
    Регистрация
    03.05.2010
    Сообщений
    3,532

    По умолчанию Re: Генератор синуса с гармониками

    Цитата Сообщение от IVX Посмотреть сообщение
    я не выяснил причину такой слабой компенсации на ADAU1701, может дело в том, что исходные искажения там довольно велики, но подгонял и амплитуду и фазу гармоник, на сколько я помню, не больше 3дб выкружил крутя все настройки онлайн прямо с сигма-студио.
    Понятно. Т.е. особо разгоняться не стоит, не факт, что сработает.


    Цитата Сообщение от IVX Посмотреть сообщение
    можно и так, но почему бы не LUT, как это сделано в ESS утвари.
    Я правильно понимаю, что это коррекция именно амплитудной характеристики?
    Тогда это работает пока фазовыми делами можно пренебречь.
    Для самой микросхемы-ЦАП это, насколько я понимаю, относительно нормально работает в звуковом диапазоне, но там же обычно еще и выхлоп, и если смотреть характеристику "выходная амплитуда от входной", то она будет выглядеть замысловатой петлей. И как тогда это можно провернуть взад с помощью "look up table"?
    Если пытаться довести это до ума - имхо, это выйдет на порядок сложнее чем просто сложить гармоники.

    Но понятно, что когда речь не о синтезе тестового сигнала, а о коррекции самой микросхемы-ЦАП, тогда LUT - это здорово.

    **
    С другой стороны, когда я для прикола смотрел сумму всех корректирующих "анти"-гармоник (без второй - больше четных не было и без основного тона), то получалась типичная картина обычного плавного ограничения верхушек сигнала.
    Т.е. на искомом 1 кГц LUT сработал бы очень неплохо.

Страница 2 из 13 Первая 123412 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •