07-13-2019, 11:30 PM
Какое-то оно не людски крутое вьіходит
FFT и прочее - как правильно?
|
07-13-2019, 11:30 PM
Какое-то оно не людски крутое вьіходит
Я никуда не делся, все это время пилю чтоб работало))
Работают - асио - васапи эксклюзив - васапи лупбэк (чтение потока до выхода на звуковушку, можно мерять всякие звукопроизводящие програмки) - демо (разные режимы - с/без шумом, искажениями, и 2 синуса 19+20). С симуляцией битности и ЧД :) Полезно для понимания всего всея, т.к. параметры сигналов заведомо известны, считай калибровочные - 0дб синус, -120дб шум, -100дб гармошки). Прикручиваю мат функции между каналами, - сумма - аверейдж - разница (можно делать псевдо-дифф) - чередование LRLR (RLRL) каналов с удваиванием ЧД - для PCM4222 режима 384кГц через 192кГц спдиф (оно один и тот-же канал чередует между L и R) - кросс-корреляшки, наконец-то. Хотя до конца не понял куда их прикручивать)) (upd: опять печалька, нужно делать после ффт, https://www.edn.com/design/test-and-meas...ical-guide ) кстати, про режим ФШ. я его всегда делал через одно место, брал частоту пика, помечал как "0 Гц" и рисовал все, что правее. Такой себе SSB. Но во всех девайсах используют digital downconversion, т.е. перемножают сигнал с частотой "конверсии", и уже из него естественным образом получают SSB. фигня та-же и оставить деревенский способ, или все-же мучаться с даунконвертером? :) и нужно, наконец-то, прикрутить компенсатор оконных функций, не каким-то чудо-циферкой, а все-же высчитывать из самой функции, т.к. их у меня много и странных)) Аминь.
07-17-2019, 10:16 PM
s3t Написал:АминьАллелуйа
07-18-2019, 12:49 AM
(Сообщение последний раз редактировалось: 07-18-2019, 12:53 AM Black_Jack.)
Пока шлялся по инетам и искал что такое HFT95 наткнулся вот на такой софт
https://www.hpw-works.com Может, конечно баян, а может что интересное там увидится для S3T`s FFT. Это мануал к нему. http://download.hpw-works.com/HpW-Works32_3_7_2.zip
07-18-2019, 02:30 AM
Black_Jack Написал:Пока шлялся по инетам и искал что такое HFT95 наткнулся вот на такой софт Дык, это штука давно известная. Я пробовал когда-то, оно смогла даже 768 переварить. Но триал у меня давно закончился,уже не запускается. Была на diyaudio кроме HpW еще одна программка, забыл название, тоже весьма дорогая. Ее продавали там с большой скидкой, в составе RTX ADC/DAC от Дженса. Говорят неплохая, я не пробовал.
07-18-2019, 07:12 AM
s3t Написал:прикрутить компенсатор оконных функций, не каким-то чудо-циферкой, а все-же высчитывать из самой функции, т.к. их у меня много и странныхТо то я смотрю ты их так быстро прикрутил :) Там часть точно не нужна, например Кайзеры мелких порядков (бетта меньше 5) не интересны, они похожи на другие не очень высокоизбирательные окна, которые у тебя уже есть. Кайзер с бетта 7-11 в принципе может быть интересен. Можешь ввести задание бетты или оставить парочку высоких порядков.
Nobody Is Perfect
07-21-2019, 07:49 PM
Вопрос про фазу луныгарошек, относительно несущей.
Может ли быть гармошка с фазой, отличной от 0 и 180 относительно несущей? Мои методы синтеза чот дают только 0 и 180 И... как считать нечетные гармошки, они по стандарту перевернуты (180) или таки "0"? Как-то криво обьясняю... Допустим есть ряд гармошек sin(x) sin(2x) sin(3x) sin(4x) ^^ это правильный ряд, или должно быть sin(x) cos(2x) sin(3x) cos(4x) ? :) наверное опять непонятно. видимо я до конца не понял чего сделал, но оно научилось рисовать фазу гармошек, зачастую 0 и 180 :) Аминь.
07-21-2019, 11:00 PM
s3t Написал:видимо я до конца не понял чего сделалСделай тестовый сигнал, пару гармошек сдвинутых по фазе. И посмотри.
Nobody Is Perfect
07-22-2019, 03:28 PM
Не, с фазой все печально.
Беру ее из максимальных бинов, в 360-градусном виде, p1 = 180 * atan2(im,re) / pi; затем для каждой гармошки, h1 = p1 - p1; //0 h2 = p2 - 2 * p1 - 1*90; h3 = p3 - 3 * p1 - 2*90; приходится заворачивать фазу в 0..180 для стабильного результата, иначе - если заворачивать в 0..360, то она иногда прыгает между +0 и +180 градусов на тех-же сигналах. почему все эти манипуляции с циферками при вычитании? - ффт на выходе всегда крутит фазу +90 градусов, так уж оно работает - почему-то обычное вычитание фазы несущей из гармошек не работало (вернее работало в одном только случае, когда частота сигнала кратна сэмплрейту). а в таком виде - работает, почему-то, всегда :) решить проблему с 360-градусной фазой я не осилил. В интернетах пишут про пост-коррекцию результатов ФФТ, находя из трех максимальных бинов настоящий максимум по всяким аппроксимизациям формы оконной функции - с правильными значениями частоты и прочего. Реализовал для Ханна, частота на лишних 3-4 знака стала точней, но все всеравно криво - плюс это для каждого окна нужно придумывать коррекцию. ну и все эти алгоритмы разваливаются, стоит добавить немножко шума ( https://indico.cern.ch/event/132526/cont...ements.pdf ) Аминь.
Пишет 90 :) хотя на самом деле может быть и 270.
гы, сначала обломался т.к. нету куда вавки засовывать в проге... а потом просто сграбил вывод звуковушки (цифро-лупбек васапи, удобно), правда в 48к но не страшно :) * 96к тоже работает, но нужно ручками выставлять в звуковушке. хм... Аминь.
07-22-2019, 05:02 PM
07-22-2019, 05:20 PM
А, хотя нет, 90 :) Это у меня 1к на 45 сдвинут, т.е. относительно него 2к как раз 90 :) Тогда вот так надо, тут 45
07-22-2019, 05:34 PM
Ну значит должно быть правильно :)
07-24-2019, 07:43 PM
Вместо того, чтоб завернуть и отправить, я прикручиваю фичи
С другой стороны - в процессе вылавливаются и баги... Встречайте, автоопределялка сигнал-шум. Т.е. спуры отдельно, шум отдельно. Теперь для ТХД можно считать HD, HD+Spurs, HD+Spurs+Noise, и все составляющие поотельности :) Получив только шум (без сигнала), теоретически можно высчитать вклад каждого шума - розовый, белый, и частота пересечения) хз зачем)) А, вспомнил. Если хочется посмотреть одновременно и на шум и на сигнал, то это в обычном виде невозможно ввиду различных скэйлингов для шума с сигнала. Отделив их, и прифотошопив обратно после скэйлинга - можно получить правильное отображение всего всея :) Аминь.
The following 3 users say Thank You to s3t for this post:
• wired (07-24-2019), Black_Jack (07-25-2019), vd-two (07-25-2019)
07-25-2019, 01:14 AM
Осталось прикрутить нетворк аналайзер и всё :)
Оказалось, что HD считалка в корне не верна. И, кажется, у всех))
Сигнал, торчащий на 6дб из шумовой полки, на самом деле находится в ровень с полкой. Вернее торчащий на 3дБ в мощности) т.к. сумма мощностей двух равных сигналов (полка + сигнал) дают +3дб мощи :) Благодаря определению шумовой полки, получилось сделать и этот "компенсатор". Эталонный "-100дБ" искажений с шумовой полкой "-100дб макс" ранее мерялся как -96дб, а сейчас - -99--103дБ. Заодно отдельный скейлинг полки и сигналов в зависимости от окна. Результат - смена окна не влияет на шумовую полку, и она всегда правильна. Блин, теперь это все в UI прикручивать каким-то логическим образом. И это, расчет уровня гармошек "селективным микровольтметром" не самая хорошая затея, ловит много мусора рядом, если реальный шум уровнем с сами гармошки, и результат от длинного ФФТ не улучшается. При высоком шуме следует брать максимумы, они получше, хотя страдают от scalloping-а (попадания частоты между бинами и потери уровня). Последнее фиг скомпенсируешь. Вернее можно, но нужно знать поведение оконной функции на пиках. И пик ли это воще... Хотя... раз уж я считаю ENBW из множителей окна, почему бы его не пропустить через ффт... хм) чорт. компенсация уровня гармошек из https://www.edn.com/design/test-and-meas...ical-guide описание глюков ФФТ https://kluedo.ub.uni-kl.de/frontdoor/de...ements.pdf Аминь.
07-25-2019, 12:14 PM
S3t... пора тебе диссертацию писать.
Хотя, не исключаю, что у тебя уже есть :)
07-25-2019, 02:39 PM
не, меня из школы выгнали, не будет дессиртации) развишто ввиде кода))
я математику ваще не понимаю)) вот есть программирование, в нем все просто. Что написал - то и работает) Аминь.
|
« Предыдущая | Следующая »
|