реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Квадратурный смеситель и постоянная составляющая
serjj
сообщение Jul 6 2015, 10:28
Сообщение #16


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Почему косинус и синус у Вас выбирается со значительно большей точностью, чем входные данные? Я бы взял те же 16 бит. А вот после умножения бы оставил все 32 бита и все их пользовал бы в фильтре, и только после фильтра округлял бы. При умножении 16 бит на 26 бит и последующем округлении до 18 бит Вы ни при каких обстоятельствах не будете использовать значения синусов больше 18+2 бит. В то же время, выбрасывать что-то после умножения на осциллирующую функцию, а потом усреднять (Ваш фильтр) то у Вас будут накапливаться ошибки от того, что большие и маленькие числа с разным знаком складываются.


Про точность представления синуса вы тут совершенно правы, 26 бит действительно перебор. Большая разрядность скорее важна на шине управления частотой для задания очень маленького и точного шага перестройки частоты (делал 24 бита на управление и 16 бит на собственно сами синус/косинус, шаг был доли Гц). После умножения нет никакой надобности оставлять полную разрядность, т.к. динамический диапазон гармонического сигнала задаёте вы, нужно поставить соответственно в полную шкалу, тогда можно все 16 бит после перемножения отбросить. В случае комплексного смесителя там ещё дальше будет сложение, это ещё +1 бит. Тогда у такого смесителя на входе 16 бит, на выходе - 17 бит. И вот их уже скармливать фильтру. Никаких потерь и ошибок, о которых вы говорите, в данном случае не будет.
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 6 2015, 10:35
Сообщение #17


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(serjj @ Jul 6 2015, 15:28) *
После умножения нет никакой надобности оставлять полную разрядность, т.к. динамический диапазон гармонического сигнала задаёте вы

да, но фильтром Вы интегрируете осциллирующую функцию, среднее значение которой близко к 0, и отбрасывать после умножения биты очень опасно.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jul 6 2015, 10:46
Сообщение #18


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



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

Пример дизайна NCO для гетеродина:

фазовый аккумулятор: 32 бита
LUT: 4096x18
на выходе: 22 бита

макс уровень внеполосных составляющих: ~-116-117 dBc

Цитата(iiv @ Jul 6 2015, 11:25) *
Почему косинус и синус у Вас выбирается со значительно большей точностью, чем входные данные?
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 6 2015, 10:57
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
да, но фильтром Вы интегрируете осциллирующую функцию, среднее значение которой близко к 0, и отбрасывать после умножения биты очень опасно.

Вы можете объяснить в чём тут опасность с точки зрения арифметических ошибок и сигнал-шума? Всякий рост разрядности должен быть обоснован, а брать с запасом "на всякий случай" не очень хороший подход. Почему растёт разрядность на фильтрах, я понимаю. А зачем её ростить здесь? Если есть опасения после окргуления получить постоянку, которую фильтр низких частот конечно раздует (за счёт интегрирования), то достаточно сделать арифметическое округление и проблемы не будет.

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

Вы имеете в виду в случае передатчика? В приёмнике же избирательность определяется фильтрами.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jul 6 2015, 11:01
Сообщение #20


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Я имею в виду приемник. Соседний или блокирующий канал "снесется" spur'oм гетеродина прямо в рабочий на BB. И никакие фильры вам уже не помогут.

Цитата(serjj @ Jul 6 2015, 11:57) *
Вы имеете в виду в случае передатчика? В приёмнике же избирательность определяется фильтрами.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 6 2015, 11:06
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Я имею в виду приемник. Соседний или блокирующий канал снесется spur'oм прямо в рабочий на BB.

А ведь и правда, не сообразил сразу.. )
Go to the top of the page
 
+Quote Post
qwa
сообщение Jul 6 2015, 11:18
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 8-02-15
Из: Санкт-Петербург
Пользователь №: 85 020



Цитата(serjj @ Jul 6 2015, 13:28) *
Большая разрядность скорее важна на шине управления частотой для задания очень маленького и точного шага перестройки частоты

Именно по этому она и выбрана такой большой.

Цитата(serjj @ Jul 6 2015, 13:28) *
Тогда у такого смесителя на входе 16 бит, на выходе - 17 бит. И вот их уже скармливать фильтру. Никаких потерь и ошибок, о которых вы говорите, в данном случае не будет.

В текущей версии прошивки я именно так и сделал.
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 6 2015, 11:21
Сообщение #23


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(serjj @ Jul 6 2015, 16:57) *
Вы можете объяснить в чём тут опасность с точки зрения арифметических ошибок и сигнал-шума?

я в гетеродинах не разбираюсь, но, давайте рассмотрим такой пример.

Возьмите несколько периодов синуса на равномерной сетке. Умножьте их на целое и округлите. Посчитайте сумму. Она будет или 0, или кратна числу периодов. Умножьте на большую целую константу, результат не изменится. Итого, имеем, что ошибка интегрирования будет обратной от этой целой константы (то бишь нашей точности после умножения), умноженной на число периодов, которые влезли в окно интегрирования. Соответственно и битность всех операций надо бы выбирать исходя из этих соображений.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 6 2015, 11:32
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Возьмите несколько периодов синуса на равномерной сетке. Умножьте их на целое и округлите. Посчитайте сумму. Она будет или 0, или кратна числу периодов. Умножьте на большую целую константу, результат не изменится.


Вы говорите об ошибке округления видимо. Во первых её можно избежать, если в NCO предусмотреть правильное арифметическое округление. Но даже если его нет, то прибегнем к математике:
с постоянной составляющей сигнал с гетеродина (квадратура re например) есть c + cos(wt), где c - 1 бит (ошибка окргуления это 1 бит, если не было интегирования этой самой ошибки, случай NCO), cos(wt) - N бит. Теперь умножим сигнал s на наш гетеродин x = s*(c + cos(wt)) = s*c + s*cos(wt). А теперь отбросим N бит. Что получится? Первый компонент "уйдёт" в случае, если N >= WIDTH_IN. Вот вам и критерий )

Сообщение отредактировал serjj - Jul 6 2015, 11:33
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 6 2015, 11:40
Сообщение #25


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(Fat Robot @ Jul 6 2015, 16:46) *
Точность описания сигнала гетеродина определяется требованиями к избирательности по соседнему каналу и/или к блокированию

с точностью задания самой частоты - я полностью согласен. А вот с битностью синуса - не понимаю.

Давайте рассмотрим такой пример, пусть исходная функция - суть синус с частотой омега, + случайный шум s порядка -16 бит (точность входных). Пусть мы имеем сгенеренный гетеродинный синус с той же частотой и некоторой новой заданной точностью r.

Результат точного интегрирования будет

\int (sin(omega*t)+s)*(sin(omega*t)+r) dt =
\int sin(omega*t)^2 dt + \int sin(omega*t)*(s+r) dt + \int s+r dt

тогда ошибка интегрирования будет определяться нормой шума s или r, причем то, что больше, то и будет эту ошибку определять. Посему я продолжаю не понимать зачем брать больше 16 бит при генерации синуса, и, если кто доступно и математически меня сможет переубедить, буду очень благодарен.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 6 2015, 11:53
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
тогда ошибка интегрирования будет определяться нормой шума s или r, причем то, что больше, то и будет эту ошибку определять. Посему я продолжаю не понимать зачем брать больше 16 бит при генерации синуса, и, если кто доступно и математически меня сможет переубедить, буду очень благодарен.

Пожалуйста, другой пример.
После гетеродина со смещением сигнал x = s*c + s*cos(w*t). Допустим мы не делаем усечение разрядности и тащим такой сигнал на наш фильтр-интегратор. s*c << s*cos(w*t) с одной стороны (думаю в доказательстве это не нуждается) и s*c - ВЧ компонент, тогда как s*cos(w*t) - НЧ -- с другой стороны. Тоже думаю логично т.к. s - сигнал на несущей, а c - константа (это некоторое постоянное смещение, т.к. другому шуму там просто неоткуда взяться, шум фазы модулирует синус и имеет совершенно другое воздействие на сигнал, если вдоваться в подробности). Отсюда видно, что наш фильтр-интегратор, являющийся ФНЧ просто отфильтрует эту ВЧ компоненту, которая добавляется к НЧ сигналу после гетеродинирования.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jul 6 2015, 11:58
Сообщение #27


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Желаем принимать полезный сигнал на частоте
На частоте присутствует сигнал помехи, превышающий по мощности полезный

принимаемый сигнал



сигнал идеального гетеродина



Сигнал "шумного" гетеродина. Шум упрощенный - единственная спектральная составляющая на частоте .





Цитата(iiv @ Jul 6 2015, 12:40) *
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 6 2015, 12:04
Сообщение #28


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(Fat Robot @ Jul 6 2015, 16:58) *
Сигнал "шумного" гетеродина

как точность-битность вычисления синуса влияет на ???
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jul 6 2015, 12:09
Сообщение #29


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



В реальности шум квантования NCO (для фазы, LUT addr и sin/cos) будет причудливо распределен во всей полосе.

Здесь и например здесь подробнее

Точность-битность влияет на в этом упрощенном описании с единственной "вредной" гармоникой. И, как следствие, на то минимальное отношение , которое не будет приводить к существенному ухудшению харакетристик приемной системы.
Опять же упрощенно это и будет избирательностью по соседнему каналу и/или по блокированию. Т.е. есть сигнал в рабочем канале, а есть гораздо более сильный на отстройке . В идеальном случае сигнал вне рабочей полосы не должен влиять на чувствительность. Но он, негодяй, влияет, в том числе и из-за собственных шумов гетеродина, т.е. из-за значения .

Если в ваших задачах отсутствуют сосредоточенные по полосе помехи, то ваши рассуждения верны.

Цитата(iiv @ Jul 6 2015, 13:04) *
как точность-битность вычисления синуса влияет на ???
Go to the top of the page
 
+Quote Post
qwa
сообщение Jul 6 2015, 12:20
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 8-02-15
Из: Санкт-Петербург
Пользователь №: 85 020



Попробую написать блок работы с файлами,чтобы в симуляторе посмотреть спектр белого шума (сгенерирую в Матлабе).
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016