Игорь 2

Трансиверы, передатчики, РПУ => Software Defined Radio (SDR) => Тема начата: ra0ahc от Сентябрь 23, 2020, 02:55:40 pm

Название: Weaver (математика)
Отправлено: ra0ahc от Сентябрь 23, 2020, 02:55:40 pm
База
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Сентябрь 23, 2020, 03:01:17 pm
формулы
Название: Re: Weaver (математика)
Отправлено: Relayer от Сентябрь 23, 2020, 07:08:35 pm
Так это еще у Полякова 35 лет тому назад было расписано. Или я что-то пропустил? :)
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Сентябрь 23, 2020, 07:18:30 pm
Может быть. Я за Поляковым не следил.
Просто, вроде все понятно и все очевидно, но вот "так" нашел только это.
Название: Re: Weaver (математика)
Отправлено: Игорь 2 от Сентябрь 23, 2020, 07:29:00 pm
 
но вот "так" нашел только это.

Да это бред сивой кобылы. Без фазовращателя не делается. Даже искать не интересно, где там ошибка, формулы тригонометрии очевидны, кто забыл, могу скинуть... lllol

Так это еще у Полякова 35 лет тому назад было расписано.

Не, не путайте - у Полякова НЧ фазовращатель стоит. Без него схема работать не может... 123123 lol22
Название: Re: Weaver (математика)
Отправлено: Relayer от Сентябрь 23, 2020, 07:40:01 pm
Да это бред сивой кобылы. Без фазовращателя не делается.
Игорь, я вас огорчу. Эти сивые кобылы вполне ничего так себе работают. Как в аналоге так и в цифре. Вот я пару месяцев назад на ADAU1761 делал Уивера (http://dspview.com/viewtopic.php?f=9&t=263) - нет фазовращателей по НЧ. Совсем. И работает зараза.
Не, не путайте - у Полякова НЧ фазовращатель стоит. Без него схема работать не может.
Это в классическом фазовом методе нужен фазовращатель как по ВЧ так и по НЧ. А Уивер - это фазо-фильтровый метод. Тут нужен крутой фильтр, а фазовращатель не нужен
Качайте Полякова http://publ.lib.ru/ARCHIVES/P/POLYAKOV_Vladimir_Timofeevich/Polyakov_V.T._Transivery_pryamogo_preobrazovaniya.(1984).[doc-ocr].zip и читайте 5ю главу с 13й страницы: "5. ФАЗОФИЛЬТРОВЫЙ ТРАНСИВЕР ПРЯМОГО ПРЕОБРАЗОВАНИЯ"
Название: Re: Weaver (математика)
Отправлено: r1tx от Сентябрь 23, 2020, 07:41:47 pm
где бред ? на первом рисунке уивер классический вроде.
Название: Re: Weaver (математика)
Отправлено: r1tx от Сентябрь 23, 2020, 07:43:00 pm
в поляковской книжке был.
Название: Re: Weaver (математика)
Отправлено: Игорь 2 от Сентябрь 23, 2020, 09:24:33 pm
Тут нужен крутой фильтр

Возможно, на фильтры я внимание и не обратил, у меня вся арифметика под смесители написана с отсечкой верхней боковушки - см. картинку.
Гляну на досуге... dontt44 1yep
Название: Re: Weaver (математика)
Отправлено: Игорь 2 от Сентябрь 23, 2020, 09:45:31 pm
Блин, да там гетеродин в середине частотного диапазона сигнала ставится, вспомнил теперь.  id99 id99 id99
Всерьёз почему-то никогда подобное не воспринимал, почему - уже и не вспомню, но, наверное, неспроста.
Везде чисто фазовый метод был, у меня в том же маскираторе куча однополосных формирователей/деформирователей стояла... lol22
Название: Re: Weaver (математика)
Отправлено: r1tx от Сентябрь 23, 2020, 09:49:00 pm
да потому что так тон по середине стоит не избавиться от него проклятого. Тот вивер с заворотом частотного спектра без переноса.
А этот на любом ультразвуке конфета. как всегда аналог дает идеи а цифра дает возможность реализовать с качеством.
Название: Re: Weaver (математика)
Отправлено: Relayer от Сентябрь 23, 2020, 09:57:31 pm
там гетеродин в середине частотного диапазона сигнала ставится
Это он в аналоговом Уивере ставится. Потому что фильтр с крутым скатом проще сделать. А в цифре нет таких ограничений и второй гетеродин работает в области ультразвука - за пределами полосы пропускания. Но даже если делать гетеродин в полосе пропускания то в цифре он легко задавливается в ноль гребенкой режекторных IIR фильтров, что собственно я у себя и сделал. Провал в середине речевого спектра на разборчивость не влияет.
Название: Re: Weaver (математика)
Отправлено: Игорь 2 от Сентябрь 23, 2020, 10:13:16 pm
Провал в середине речевого спектра на разборчивость не влияет.

Во-во-во, вот Вы мне и напомнили, почему я эту идею сразу же отмёл - портить звук я не хотел категорически - у меня же в тракте маскирования оказывалось этих преобразователей боковушек 4 штуки последовательно... 1yep
Название: Re: Weaver (математика)
Отправлено: GenaSPB от Сентябрь 24, 2020, 01:43:55 pm
В цифровом тракте этот тон сильно за сотню децибел подавлен. И не режекторами а просто за счет идентичности трактов квадратур. Кстати целочисленка даже было бы лучше.... но теоретически. На практике правучка одинарной точности вполне.
Название: Re: Weaver (математика)
Отправлено: Relayer от Сентябрь 24, 2020, 03:04:28 pm
В цифровом тракте этот тон сильно за сотню децибел подавлен. И не режекторами а просто за счет идентичности трактов квадратур.
Если первый гетеродин цифровой на фпга то да. А если он аналоговый? Тогда без режекторов никак.
Название: Re: Weaver (математика)
Отправлено: GenaSPB от Сентябрь 24, 2020, 03:17:47 pm
Да понятно. Я про fpga.
Название: Re: Weaver (математика)
Отправлено: GenaSPB от Сентябрь 24, 2020, 04:14:35 pm
Кстати, маскиратор с полностью цифровой обработкой тоже не должен свистеть.
Название: Re: Weaver (математика)
Отправлено: Игорь 2 от Сентябрь 24, 2020, 05:11:03 pm
Кстати, маскиратор с полностью цифровой обработкой тоже не должен свистеть.

У меня он был полностью аналоговый. Сто лет назад дело было... cr123
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 05:39:06 pm
ЛАБА
Смеситель

freq = 400;//сигнал герц
freqOpora = 2000;// несушка

Заполнение буферов выглядит так:

        float32_t amp = 600;//амплитуда, макс 2048 для 12бит

        for (int i = 0; i < FRAME_SIZE; i++) {
            float32_t opora = arm_sin_f32(phaseOpora);
            float32_t signal = arm_sin_f32(phase);


            pOutDac[dacTxBankNawNumber][i ] = ((uint32_t) (amp + signal*opora * amp));

            phase += delta;
            if (phase >= pp) phase -= pp;

            phaseOpora += deltaOpora;
            if (phaseOpora >= pp) phaseOpora -= pp;

            opora = arm_sin_f32(phaseOpora);
            signal = arm_sin_f32(phase);

            pOutDac[dacTxBankNawNumber][i ] |= (((uint32_t) (amp + signal*opora *amp))) << 16;
            phase += delta;
            if (phase >= pp) phase -= pp;

            phaseOpora += deltaOpora;
            if (phaseOpora >= pp) phaseOpora -= pp;

        }
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 05:42:16 pm
а вот тоже самое, но для сигнала 645Гц
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 08:28:18 pm
После запуска FIR фильтра на 3кГц + шум
Получился на выходе цап такой сигнал
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 09:08:43 pm
Интересный феномен я нашел. Не знаю что это за глюк в математике. Но вот смотрите (вопрос к математикам)

амплитуду умножаю на 10. (все числа float)
 float32_t amp = 199*10;
.
.
дальше перемножаю сигналы (они тоже float) и делю на теже 10.  цифра от -1 до +1

arrDac[i ] = (signal* opora)/10;  //цифра от -1 до +1

дальше формирую амплитуду для цап от 0...4000
умножаю на амплитуду и смещаю на эту же амплитуду, убираю отрицательный значения.

 pOutDac[dacTxBankNawNumber][y] = (uint32_t) (amp + firOutDac[i ] * amp);

И получается вот такая красивая картинка....
(все дальше 3кГц это перегруз звуковой платы, в программе работает фир фильтр со срезом 3кГц)
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 09:10:56 pm
А теперь убираю умножения 10 и деление на 10
и получается вот такая картинка
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 03, 2020, 09:55:51 pm
ачх FIR
Название: Re: Weaver (математика)
Отправлено: ra0ahc от Октябрь 04, 2020, 01:14:22 pm
Нашел причину  lol22
Программер фигов. А всего то надо было выспаться.
Смещение амплитуды надо делать константой.

pOutDac[dacTxBankNawNumber][y ] = (uint32_t) (2048 + firOutDac[i-1] * amp);