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

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Определение постоянной составляющей синусоиды...
RadioJunior
сообщение Nov 26 2008, 09:11
Сообщение #46


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

Группа: Участник
Сообщений: 117
Регистрация: 28-01-08
Пользователь №: 34 498



пост не в тему...

Stanislav, не обижайтесь, но это правда.

Вот какую ветку ни открою, везде Stanislav пытается всем утереть нос под видом большого знатока всего и вся. Это кризис возраста или врожденный комплекс Наполеона?...

Со мной кто-нибудь согласен по этому поводу?

Сообщение отредактировал RadioJunior - Nov 26 2008, 09:11
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 26 2008, 10:43
Сообщение #47


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(RadioJunior)
Со мной кто-нибудь согласен по этому поводу?
Молчание - знак согласия smile.gif

Цитата(alex_os)
И чтобы посчитать туже корреляцию разве не нужно накопить достаточный блок данных?
Достаточно двух периодов сигнала. То есть реальных, а не предположительно максимального периода для постоянной времени фильтра.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 26 2008, 16:34
Сообщение #48


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(fontp @ Nov 21 2008, 18:07) *
Фильтр НЧ с постоянной времени заведомо во много периодов синусоиды поможет.

Простейший рекурсивный y(n) = (1-e)* y(n-1) + e*x(n) , если всё равно какой в смысле времени реакции, е очень мало

Но если это слишком медленно, то нужно сшивать буфера, оценивать период синусоиды и суммировать по периоду


Может несколько запоздало, но мне тоже кажется, что это наиболее подходящий вариант. У меня по такому принципу построены системы АРУ и тактовой синхронизации в демодуляторе. Вхождение в синхронизм осуществляется достаточно быстро и реализовано просто. Энергетические потери демодулятора при этом составляют Eb/No<0,4 дБ при Pb=10^-6 (для QPSK).
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 26 2008, 21:29
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(RadioJunior @ Nov 26 2008, 12:11) *
пост не в тему...
Зачем? 01.gif

Цитата(RadioJunior @ Nov 26 2008, 12:11) *
Stanislav, не обижайтесь, но это правда.

Вот какую ветку ни открою, везде Stanislav пытается всем утереть нос под видом большого знатока всего и вся.
Во-первых, не всем.
На электрониксе тусуется табунок неучей, охарактеризованных мной в теме, на которую здесь есть ссылка. Отличительная особенность - неистребимое желание писать ерунду во всех ветках, которые Вам довелось открывать, и не только, а также паталогическая неспособность признавать свои ошибки или неправоту и вести конструктивный диалог. Вот он-то и является предметом моего особенного внимания, о чём я объявлял каждой особи открыто и доходчиво.
Во-вторых, пытаюсь утереть сопли, или всё-таки утираю? РадиоЮноша, пора бы научится отличать эти понятия. Докажите, что я неправ в чём-либо, и у нас с Вами будет полное взаимопонимание. А флудить здесь не надо - тема вполне конкретная, а Вам-то я хорошо знаю цену - сосунок, вздумавший, что ему можно хамить дяде (письма личные привести, чтобы все полюбовались?).
В-третьих, кто-то получил по заслугам за излишнее высокомерие и вальяжность. От маклауда через тяжеловеса. В дальнейшем будет придерживать язык, я думаю.
С вашей командой у меня разговор короткий. Давил, и буду давить, пока уму-разуму не научитесь, не начнёте признавать свои ошибки и говорить по существу вопроса.
Вы также являетесь ярким представителем данного сообщества, и на снисхождение не надейтесь. Жаль, времени на вас всех мало...
На месте модераторов я бы уделил вашей стайке самое пристальное внимание. Толку от ваших постов чуть, а словесного мусора - выше крыши.

Цитата(RadioJunior @ Nov 26 2008, 12:11) *
Это кризис возраста или врожденный комплекс Наполеона?...
Отнюдь. Элементарное желание сделать воздух на форуме чище. Можете считать меня ассенизатором.smile.gif


Цитата(RadioJunior @ Nov 26 2008, 12:11) *
...Со мной кто-нибудь согласен по этому поводу?
Конечно, есть такие! biggrin.gif

Цитата(blackfin @ Nov 26 2008, 08:23) *
Предлагаю на поставленную задачу посмотреть под другим углом.
Для выделения полезного сигнала на фоне шума ничего лучше согласованного фильтра, насколько мне известно, ещё не придумали. В данной задаче полезным сигналом является постоянная составляющая. Согласованным фильтром для неё будет ФНЧ с бесконечно узкой полосой пропускания. Ч.Т.Д.
Это верно.
Только ФНЧ с бесконечно узкой полосой пропускания будет иметь и бесконечно большое время отклика. Ждать придётся не до посинения, а до самых белых слонов. biggrin.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mvb
сообщение Nov 27 2008, 00:07
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-06-08
Пользователь №: 38 128



Господа, сразу прошу прощения за то, что вмешиваюсь в вашу интеллектуальную беседу.
Я студент, проблема мне показалась интересной, поэтому я захотел разобраться, но к сожалению умные люди не пришли к единому мнению, поэтому я полез в матлаб, попробовать озвученные методы.

Сначала сформулирую проблему, которую решал: есть N отсчетов, в которых присутствует синусоида + постоянная составляющая + шум. Период синусоиды заведомо в разы больше N, начальная фаза случайная. Шум -- норм. распределенная случ. величина с нулевым мат. ожиданием.

Я попробовал два озвученных решения: ФНЧ и Станислава. ДПФ и АКФ не смотрел, потому что не понимаю как они здесь помогут.

ФНЧ брал 1й Чебышева. Варьировал все возможные параметры как мог, но не смог добиться того, чтобы на выходе как-то обозначилась искомая величина. Да, выход по времени рассматривал достаточно длинный.

Для реализации метода, предложенного Станиславом взял Curve Fitting toolbox из матлаба. При бесконечном ОСШ он точно выдает искомую величину. В присутствии шума решение начинает гулять. Только надо выставлять область ограничений для решения не бесконечную, иначе минимумов у целевой функции получается несколько.

На все это я потратил 1 час 7 минут.

Вопросы к знающим: 1. как именно вы предлагаете применять фнч?
2. Как здесь можно использовать дпф или акф?

Отдельная просьба: ваше мнение о моих способностях, оставьте при себе.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 27 2008, 00:23
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mvb @ Nov 27 2008, 03:07) *
Для реализации метода, предложенного Станиславом взял Curve Fitting toolbox из матлаба. При бесконечном ОСШ он точно выдает искомую величину. В присутствии шума решение начинает гулять. Только надо выставлять область ограничений для решения не бесконечную, иначе минимумов у целевой функции получается несколько.

На все это я потратил 1 час 7 минут.
Вероятно, Вы неплохо изучили Матлаб, потому, что у меня ушло бы времени больше, хотя работать с ним приходится. smile.gif
Если не трудно, выложите программу, интересно посмотреть. Постараюсь сделать и свою, если время будет.
Конечно, оценка в шумах будет гулять. Но она будет, и она будет оптимальной, в каком угодно смысле.
Кроме того, в условии о шумах ничего не говорилось. Есть сигнал, нужно определить постоянную составляющую. Формально поставленная задача, имеющая сугубо формальное решение. О ньюансах автор как-то не сообщал.
В условиях больших помех сильно может помочь априорное знание хотя бы одного из параметров - амплитуды или фазы гармонического сигнала, например.
Впрочем, это банальность. Знание вида функции уже даёт многое.

ЗЫ. Кстати, фитнуть можно и не гармонической функцией, а её разложением в ряд. Вероятно, будет менее напряжённо вычислительно.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 27 2008, 04:12
Сообщение #52


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(mvb)
2. Как здесь можно использовать дпф или акф?
ДПФ более-менее точно измеряет частоту/период, когда в блоке находится много периодов. АКФ достаточно два периода. Хотя имея гарантированно два периода частоты можно "ручками" отсканировать блок (свёртками sin/cos) на дробные частоты. 729 кажется знал ещё какой-то хороший метод определения дробных частот. Только он пропал куда-то.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
mvb
сообщение Nov 27 2008, 21:10
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-06-08
Пользователь №: 38 128



Вот мой код, без претензий на робастность и скорость:
Код

clc;

N = 100;        % кол-во отсчетов
n = 1:N;
d = .1;         % постоянная составляющая
p = rand()*pi;  % случайная фаза
f = 1/(4*N);    % частота (в N отсчетах 1/4 периода)
SNR = 40;       % ОСШ в дБ

% собсно анализируемые отсчеты
s = sin(2*pi*f*n+p) + d + randn(1, N)*(d+sqrt(2))*10^(-SNR/20);

st_ = [ .5 2*pi*f 0 0 ];
fo_ = fitoptions('method','NonlinearLeastSquares','Lower',[0 0 -1.7 -1],'Upper',[5 0.10000000000000001 1.7 0.10000000000000001]);
set(fo_,'Startpoint',st_);
ft_ = fittype('a*sin(b*x+c)+d',...
     'dependent',{'y'},'independent',{'x'},...
     'coefficients',{'a', 'b', 'c', 'd'});
cf_ = fit(n',s',ft_,fo_);

a = coeffvalues(cf_);

a(4)


Да, у меня тоже была мысль о разложении синуса в ряд, или как-то перейти к полиному Чебышева, но тогда постоянная составляющая будет спрятана в свободном члене полинома, и как ее оттуда вычленить я не знаю.

2GetSmart: ну если в распоряжении есть больше (м.б. больше равно) одного периода, то все становится понятно
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Nov 28 2008, 05:00
Сообщение #54


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(RadioJunior @ Nov 26 2008, 12:11) *
Это кризис возраста или врожденный комплекс Наполеона?...


Нет. Вы ошибаетесь. Нет никакого кризиса возраста и нет никакого Наполеона.
Все оказалось намного банальнее.

Цитата(Stanislav @ Nov 27 2008, 00:29) *
Можете считать меня ассенизатором.smile.gif


Если человек потратил жизнь на борьбу с гав..ом. Сами понимаете....
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 28 2008, 06:55
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mvb @ Nov 28 2008, 00:10) *
Вот мой код, без претензий на робастность и скорость:
Код
..................................
Понятно. Собственно, у меня вышло бы так же.
Попробую его "усовершенствовать", когда время будет.

Цитата(mvb @ Nov 28 2008, 00:10) *
Да, у меня тоже была мысль о разложении синуса в ряд, или как-то перейти к полиному Чебышева, но тогда постоянная составляющая будет спрятана в свободном члене полинома, и как ее оттуда вычленить я не знаю.
Тоже подумаю.

Цитата(mvb @ Nov 28 2008, 00:10) *
2GetSmart: ну если в распоряжении есть больше (м.б. больше равно) одного периода, то все становится понятно
А мне вот не совсем понятно, что собирается делать GetSmart, если в его распоряжении будет кусок, заведомо больший только одного периода.


Цитата(Михаил_K @ Nov 28 2008, 08:00) *
Нет. Вы ошибаетесь. Нет никакого кризиса возраста и нет никакого Наполеона.
Все оказалось намного банальнее.

Если человек потратил жизнь на борьбу с гав..ом. Сами понимаете....
Да не потратил ещё. А трачу.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mvb
сообщение Nov 28 2008, 10:03
Сообщение #56


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-06-08
Пользователь №: 38 128



Если бы у меня был бы фрейм с достаточным количеством отсчетов, я бы сначала попробовал такой способ:

1. Определил бы период синуса (в первом приближении с пом. автоковариационной функции, дальше покопал бы продвинутые методы вычисления спектра)

2. Далее скомпенсировал бы ошибку в ДПФ на 0 частоте от того, что частота синуса не кратна 2*Pi/N
Насколько я помню отклик гармонической функции при ДПФ пропорционален sinc, тогда получается что-то вроде этого:
модуль постоянной составляющей = ДПФ(0) - sinc(0 - fsin)*ДПФ(fsin)
(fsin -- измереная частота синуса)

Наверняка вы найдете здесь ошибки, укажите мне на них пожалуйста!
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 28 2008, 11:45
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mvb @ Nov 28 2008, 13:03) *
Если бы у меня был бы фрейм с достаточным количеством отсчетов, я бы сначала попробовал такой способ:

1. Определил бы период синуса (в первом приближении с пом. автоковариационной функции, дальше покопал бы продвинутые методы вычисления спектра)

2. Далее скомпенсировал бы ошибку в ДПФ на 0 частоте от того, что частота синуса не кратна 2*Pi/N
Насколько я помню отклик гармонической функции при ДПФ пропорционален sinc, тогда получается что-то вроде этого:
модуль постоянной составляющей = ДПФ(0) - sinc(0 - fsin)*ДПФ(fsin)
(fsin -- измереная частота синуса)

Наверняка вы найдете здесь ошибки, укажите мне на них пожалуйста!
Щас времени маловато. Вот некоторые соображения:
1. Автоковариационный метод даст большую ошибку в определении частоты, даже если в окне будет несколько периодов. Только по одному периоду, ПМСМ, работать не будет. Собственный простой способ предложу попозже.
2. Не учтена амплитуда гармонического сигнала и его фаза, поэтому ДПФ будет неоднозначной по отношению к этим параметрам. Правда, после оценивания частоты её найти их не так уж сложно. Или я не понял что-то?

Впрочем, способ интересный, есть в нём что-то эдакое... smile.gif

ЗЫ. А-а, понял, наконец. smile.gif Речь идёт, конечно, о модулях спектра сигнала. Что ж, посмотрю на досуге, действительно стало интересно. smile.gif
Только с фазой, по-моему, всё равно засада...


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


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 28 2008, 13:08
Сообщение #58


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(mvb)
2. Далее скомпенсировал бы ошибку в ДПФ на 0 частоте от того, что частота синуса не кратна 2*Pi/N
Насколько я помню отклик гармонической функции при ДПФ пропорционален sinc, тогда получается что-то вроде этого:
модуль постоянной составляющей = ДПФ(0) - sinc(0 - fsin)*ДПФ(fsin)
(fsin -- измереная частота синуса)
Я например многое из этого не понял.
ДПФ по какому блоку делается? По одному или по скольки буферам?

sinc(0 - fsin)*ДПФ(fsin) что из себя представляет? Это свёртка?

Кстати, ДПФ(0) - это простое среднее арифметическое блока. Как бы амплитуда постоянки (0 Гц), которая в отличие от остальных спектральных компонентов даже фазы не имеет. У меня сразу мысли возникают - почему такая дискриминация, ведь все частоты должны быть равноправные? Но это к этой теме отношения не имеет smile.gif

Да, и забыл совсем
Цитата(Stanislav)
...Надеюсь, что попрошайничество на сей раз Вам не поможет снять взыскание...
Бред сивой кобылы biggrin.gif

Сообщение отредактировал GetSmart - Nov 28 2008, 13:20


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 28 2008, 20:59
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(GetSmart @ Nov 28 2008, 16:08) *
Да, и забыл совсем
Бред сивой кобылы biggrin.gif
А вот почитайте, позорник. Память, видимо, короткая, да и достоинство на нуле...


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mvb
сообщение Nov 30 2008, 09:21
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-06-08
Пользователь №: 38 128



Попробовал на досуге определить период синуса в матлабе через автоковариацию. При вышеописаных условиях получается ошибка порядка 10-15%, чего явно не достаточно. Чем больше периодов умещается в окне, тем меньше относителльная погрешность.
Вобщем да, имея один период определить частоту получается плохо.

Станислав: да, под ДПФ(х) я подрузомевал модуль, извините, за то что так криво написал. На самом деле под ДПФ(fsin) я имел ввиду просто амплитуду синусоиды, из ДПФ ее вычленить наверное не получится...

GetSmart: sinc(0 - fsin)*ДПФ(fsin) -- нет, это просто sinc, умноженный на амплитуду синусоиды.
Модуль ДПФ(0) строго равен среднему арифметическому, аргумент же строго равен нулю. Все просто: вычисляется скалярное произведение сигнала с комплексной экспонентной от нуля --
ДПФ(0) = <s, exp(j*0)>/N
exp(j*0) = 1
Т.о. получается что действительная часть ДПФ(0) равна просто сумме сигнала деленного на N, а мнимая нулю.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:50
Рейтинг@Mail.ru


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