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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> есть ли методы дизеринга (dithering) для линейной интерполяции при повышении тактовой частоты (upsampling), хочется что-то аналогичное дизерингу при генерации синуса
Krys
сообщение Apr 18 2015, 04:22
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Всем спасибо за подсказки.

ЗЫ: это не курсовая и не дипломная, стар я для них уже ))) так... желание изобрести велосипед с минимумом ресурсов и с приемлемыми характеристиками.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Apr 20 2015, 05:31
Сообщение #62


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



простая последовательность рассуждений приведет вас к пониманию, что идея с добавлением шума не годится:
если ваша система линейна и шум аддитивный, то сумма сигнал + помеха не размажет спектра сигнала

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

в DDS пики в спектре совсем по другой причине, чем у вас.
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 20 2015, 08:10
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(shf_05 @ Apr 20 2015, 12:31) *
простая последовательность рассуждений приведет вас к пониманию, что идея с добавлением шума не годится:
если ваша система линейна и шум аддитивный, то сумма сигнал + помеха не размажет спектра сигнала
Это то я понимал с самого начала, поэтому отмёл эту идею сразу, даже без попыток отмоделировать. Это ув. ViKo предлагал добавлять шум ко входу и выходу.


Цитата(shf_05 @ Apr 20 2015, 12:31) *
если вам надо размазать спектр, то вводите мультипликативную помеху, но ваш сигнал будет искажен.
либо делайте нелинейную систему. опять же сигнал будет искажен.
Спасибо, вот это мысль в нужном направлении. То, что сигнал будет искажён - нестрашно, он и так даже от линейной интерполяции нехило искажается ))


Цитата(shf_05 @ Apr 20 2015, 12:31) *
в DDS пики в спектре совсем по другой причине, чем у вас.
Это тоже понятно. Мне просто понравился общий подход: чтобы палка не мешала, её надо размазать. Общая мощность ошибки увеличится, но её плотность будет мала, SFDR будет лучше.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 20 2015, 09:39
Сообщение #64


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Krys, в вашем скрипте используются функции plot_real, plot_spec, которых нет в моем Matlab R2014b.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 20 2015, 11:51
Сообщение #65


Гуру
******

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



Цитата(Krys @ Apr 20 2015, 11:10) *
Спасибо, вот это мысль в нужном направлении. То, что сигнал будет искажён - нестрашно, он и так даже от линейной интерполяции нехило искажается ))

Кстати, по поводу линейной интерполяции.. И если нет ресурсов для правильных фильтров..

Из теории рядов Фурье вроде как следует, что синусоиду лучше аппроксимировать трапецеидальным сигналом,
причем длительность каждого из фронтов трапеции должна равняться в точности: Tпериода/3,
а длительность каждой из "полок" должна равняться в точности: Tпериода/6.

При этом 3-я гармоника спектра должна получиться тождественно равной нулю.
То есть, отличными от нуля гармониками будут: 1-ая, 5-ая, 7-ая, 11-ая, и т.д.

Учитывая же, что амплитуды гармоник спадают как: 1/k2,
получим выигрыш по гармоникам примерно: (5/3)2 = 2,78 или 8,9[dB].

Как-то так..
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 21 2015, 02:05
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(blackfin @ Apr 20 2015, 18:51) *
Из теории рядов Фурье вроде как следует, что синусоиду лучше аппроксимировать трапецеидальным сигналом,
причем длительность каждого из фронтов трапеции должна равняться в точности: Tпериод/3,
а длительность каждой из "полок" должна равняться в точности: Tпериод/6.
Спасибо, надо будет попробовать на досуге, сейчас времени маловато. Это же мой личный интерес, не курсовая и не основное задание по работе ))
К стати: при линейной интерполяции в полосе полезного сигнала вообще нет нелинейных искажений, правильно? Т.е. линейная интерполяция ничего в полосе не портит, только за полосой. А вот трапеция видимо наделает компонентов внутри полосы, их оттуда потом ничем не уберёшь, разве что заранее внести соответствующие предыскажения в генерируемый сигнал по типу DPD, это возможно.


Цитата(ViKo @ Apr 20 2015, 16:39) *
Krys, в вашем скрипте используются функции plot_real, plot_spec, которых нет в моем Matlab R2014b.
Да это просто удобное отображение. Можете их заменить просто обычным плотом, ничего не поменяется.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 21 2015, 07:00
Сообщение #67


Знающий
****

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



Цитата
Т.е. линейная интерполяция ничего в полосе не портит, только за полосой.

Смотря что вы имеете в виду под словом "портить". Завал в полосе, как вы уже убедились, она обеспечивает. У вас путаница по поводу природы и видов вносимых искажений.
Цитата
при линейной интерполяции в полосе полезного сигнала вообще нет нелинейных искажений, правильно?

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

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

Видно, что медианный фильтр внёс искажения вне полосы сигнала (спектр исходного сигнала приведен для сравнения). Медианный фильтр нелинейная система, он даёт нелинейные (внеполосные) искажения. С точки зрения математики, любая система для которой y = f([x_i]) не является линейной комбинацией элементов вектора x_i (или в общем случае матрицы), нелинейная. Однако не у каждой нелинейной системы будут выраженные нелинейные искажения.
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 21 2015, 07:32
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(serjj @ Apr 21 2015, 14:00) *
Смотря что вы имеете в виду под словом "портить". Завал в полосе, как вы уже убедились, она обеспечивает
Да завал - это линейные искажения, я их даже за искажения не считаю ))
Я имел в виду под портить наличие интермодуляционных компонентов прямо в полосе сигнала. Т.е. берём для чистоты эксперимента чистую синусоиду, а лучше несколько рядом, пропускаем их через хорошо нелинейный интерполятор, получаем кучу лишних палок прямо внутри полосы сигнала (не говоря уж о палках за полосой). При этом при линейной интерполяции лишних палок нет внутри полосы сигнала, только за полосой.

Цитата(serjj @ Apr 21 2015, 14:00) *
Подумайте, как можно записать линейную интерполяцию
...
Вот пример
...
Большое спасибо, что разъясняете.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 21 2015, 08:04
Сообщение #69


Знающий
****

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



Цитата
Я имел в виду под портить наличие интермодуляционных компонентов прямо в полосе сигнала. Т.е. берём для чистоты эксперимента чистую синусоиду, а лучше несколько рядом, пропускаем их через хорошо нелинейный интерполятор, получаем кучу лишних палок прямо внутри полосы сигнала (не говоря уж о палках за полосой). При этом при линейной интерполяции лишних палок нет внутри полосы сигнала, только за полосой.

Когда я говорил о полосе я имел в виду не условную полосу (например полосу обработки), а полосу сигнала. Для синуса полоса сигнала это палка в частотном спектре. Интермодуляция порождает гармоники за полосой синуса. Тоже применимо и к полосовому сигналу. Другое дело, что для полосового сигнала, пропущенного через нелинейную систему, имеются помимо нелинейных искажений искажения в полосе. Если завал линейного фильтра типа скользящего среднего вносит искажения только в АЧХ, то в нелинейной системе могут возникнуть искажения и в ФЧХ. Но вот вам пример линейной системы, которая вызывает искажения АЧХ и ФЧХ в полосе сигнала - модель канала связи, аппроксимированная комплексным FIR фильтром. Нелинейные искажения при этом не появляются но в полосе полный треш. Как следствие - потребность в комплексном эквалайзере.
Так что если мы говорим о нелинейных искажениях, то их критерием являются именно внеполосные искажения.

Сообщение отредактировал serjj - Apr 21 2015, 08:05
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 21 2015, 08:36
Сообщение #70


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(serjj @ Apr 21 2015, 15:04) *
Тоже применимо и к полосовому сигналу. Другое дело, что для полосового сигнала, пропущенного через нелинейную систему, имеются помимо нелинейных искажений искажения в полосе.
Вот это я имел в виду. Если конкретно по картинке из первого поста, то допустим полосовой сигнал занимает половину всей возможной полосы, т.е. четверть частоты дискретизации. Так вот хорошо нелинейный интерполятор даст интермодуляционные компоненты, залезшие прямо в эту полосу полосового сигнала. А линейный интерполятор даст компоненты, лежащие в других зонах Найквиста (зоны до интерполяции), но не в полосе полосового сигнала.


Цитата(serjj @ Apr 21 2015, 15:04) *
Так что если мы говорим о нелинейных искажениях, то их критерием являются именно внеполосные искажения.
Тут я либо что-то недопонял, либо несогласен )) Согласно моего абзаца выше нелинейные искажения могут дать интермодуляции прямо в полосе полосового сигнала.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
petrov
сообщение Apr 21 2015, 09:56
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Krys @ Apr 21 2015, 11:36) *
Вот это я имел в виду. Если конкретно по картинке из первого поста, то допустим полосовой сигнал занимает половину всей возможной полосы, т.е. четверть частоты дискретизации. Так вот хорошо нелинейный интерполятор даст интермодуляционные компоненты, залезшие прямо в эту полосу полосового сигнала. А линейный интерполятор даст компоненты, лежащие в других зонах Найквиста (зоны до интерполяции), но не в полосе полосового сигнала.


В общем случае линейный интерполятор тоже может дать компоненты в полосе вашего сигнала(смотреть увеличение частоты дискретизации в нецелое количество раз), хоть эти искажения и линейные.
Go to the top of the page
 
+Quote Post
Krys
сообщение Apr 21 2015, 11:00
Сообщение #72


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Ой, нецелое число раз - это уже совсем высший пилотаж ))


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
mihalevski
сообщение May 9 2015, 14:00
Сообщение #73


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

Группа: Участник
Сообщений: 100
Регистрация: 20-05-10
Из: Omsk
Пользователь №: 57 391



Если Вы реализовали частотный детектор, используя линейную интерполяцию
f(t)=FD(t), где t - непрерывное время, а f(t) соответствующая этому времени
мгновенная частота в спектре сигнала то попробуйте вычислить f(t) так

f(t) = ( FD( t ) + FD( t + 0.5 ) ) / 2.

В формуле число 0.5 "создает" сдвиг на половину такта перед линейным интерполятором.

Вроде полный бред да еще количество вычислений увеличивает в 2 раза но у меня результат
стал приемлемым и все пошло в работу.


Go to the top of the page
 
+Quote Post
Krys
сообщение May 18 2015, 06:18
Сообщение #74


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



да нет, у меня не частотный детектор. У меня просто повышение тактовой


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 06:47
Рейтинг@Mail.ru


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