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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> ограничение амплитуды, для квадр. с-ла
shf_05
сообщение Nov 10 2008, 11:16
Сообщение #1


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

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



необходимо ограничить по амплитуде синус(затем и произвольный сигнал) (например по уровню X), далее он фильтруется и проч., в итоге получаем его огибающую.
- это предельно прозрачно, если сигнал один, скажем sin(1000Гц) или случ. сигнал, как быть для квадратурного с-ла?
можно для sin ограничить отдельно Re и Im, вроде в этом случае все будет корректно, будет ли все корректно для произвольного сигнала?
можно конечно повыводить формулы, помоделить, надеюсь кто-нить скажет "с ходу", поделитесь опытом.
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 10 2008, 11:30
Сообщение #2


Гуру
******

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



Цитата(shf_05 @ Nov 10 2008, 14:16) *
необходимо ограничить по амплитуде синус(затем и произвольный сигнал) (например по уровню X), далее он фильтруется и проч., в итоге получаем его огибающую.
- это предельно прозрачно, если сигнал один, скажем sin(1000Гц) или случ. сигнал, как быть для квадратурного с-ла?
можно для sin ограничить отдельно Re и Im, вроде в этом случае все будет корректно, будет ли все корректно для произвольного сигнала?
можно конечно повыводить формулы, помоделить, надеюсь кто-нить скажет "с ходу", поделитесь опытом.


Нет не корректно ограничивать квадратуры отдельно, надо переводить в полярные координаты, заменять амплитуду на константу, затем обратно в декартовы.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 10 2008, 11:39
Сообщение #3


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

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



т.е. сделать sat(Ampl)*(cos(phi)+i*sin(phi))?
можн как нибудь попроще- ведь на дсп вычислять tan, atan, sin, cos оччень нехочется.
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 10 2008, 11:49
Сообщение #4


Гуру
******

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



Цитата(shf_05 @ Nov 10 2008, 14:39) *
т.е. сделать sat(Ampl)*(cos(phi)+i*sin(phi))?
можн как нибудь попроще- ведь на дсп вычислять tan, atan, sin, cos оччень нехочется.


Не вижу никаких сложностей в вычислении аргумента комплексного числа, кстати для каких вам целей, может и нет нужды обратно в квадратуры переходить?
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 10 2008, 11:58
Сообщение #5


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

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



соложность в том, что вычислять аргумент надо в режиме РВ, на медленном проце.
далее квадратуры фильтруются, и вычисляется их огибающая.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 10 2008, 12:08
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(shf_05 @ Nov 10 2008, 14:58) *
соложность в том, что вычислять аргумент надо в режиме РВ, на медленном проце.
далее квадратуры фильтруются, и вычисляется их огибающая.

Если фазу считать не хочется можно так :
Код
s = x+1j*y; // входной сигнал
tmp = x^2 + y^2;
if( tmp>A^2 ) // A - порог ограничения
{
    y = s * A/sqrt(tmp)  // Ограниченный выходной сигнал
}
else
{
   y = s;
}


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 10 2008, 12:14
Сообщение #7


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

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



+1 )))
это эквивалентно ограничению амплитуды и умножению на фазу

зы: раньше я и делить не хотел теперь все-таки видимо придется
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 10 2008, 12:17
Сообщение #8


Гуру
******

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



Цитата(shf_05 @ Nov 10 2008, 14:58) *
соложность в том, что вычислять аргумент надо в режиме РВ, на медленном проце.
далее квадратуры фильтруются, и вычисляется их огибающая.


А смысл ограничения в чём?
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 10 2008, 12:46
Сообщение #9


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

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



Цитата(petrov @ Nov 10 2008, 17:17) *
А смысл ограничения в чём?


очень приблизительно- система ШОУ
важна эквивалентность ограничения квадратурного с-ла неквадратурному в спектральной области.

вот протестил:

clear

a= 3;
s= 2*hilbert(randn(1,100));
t= 1:length(s);

s1= s;
s1(abs(s)>3)= s(abs(s)>3)./(abs(s(abs(s)>3)))*a;

s2_a= (abs(s));
s2_a(s2_a>a)= a;
s2_r= s2_a.*cos(angle(s));
s2_im= s2_a.*sin(angle(s));
s2= s2_r+i*s2_im;

figure(1)
plot(t,real(s1),'r',...,
t,abs(s1),'m',...
t,real(s2),'b',...
t,abs(s2),'k'),
plotbrowser('on')

figure(2)
plot(t,abs(s1)-abs(s2),'b')


вроде все чисто
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 11 2008, 12:06
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(shf_05 @ Nov 10 2008, 15:14) *
+1 )))
это эквивалентно ограничению амплитуды и умножению на фазу

зы: раньше я и делить не хотел теперь все-таки видимо придется

Лучше не делить а сделать 1/sqrt(x), вроде есть куча алгоритмов которые это довольно быстро считают...


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 12 2008, 05:39
Сообщение #11


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

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



Цитата(alex_os @ Nov 11 2008, 17:06) *
Лучше не делить а сделать 1/sqrt(x), вроде есть куча алгоритмов которые это довольно быстро считают...

с этого и начиналась тема, подскажите направление поиска хоть
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 12 2008, 07:20
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(shf_05 @ Nov 12 2008, 08:39) *
с этого и начиналась тема, подскажите направление поиска хоть

Например вот


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 12 2008, 07:33
Сообщение #13


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

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



понятно, в моем варианте sqrt находится по ф-ле тейлора (6 коэф-в) тактов 20, далее деление, занимающее 16 тактов.
а можно сразу придумать ряд, аппроксимирующий 1/sqrt.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Nov 12 2008, 07:48
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(shf_05 @ Nov 12 2008, 10:33) *
понятно, в моем варианте sqrt находится по ф-ле тейлора (6 коэф-в) тактов 20, далее деление, занимающее 16 тактов.
а можно сразу придумать ряд, аппроксимирующий 1/sqrt.

А что за процессор который так удачно делить умеет (за 16 тактов) ?


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Nov 12 2008, 07:52
Сообщение #15


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

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



Цитата(alex_os @ Nov 12 2008, 12:48) *
А что за процессор который так удачно делить умеет (за 16 тактов) ?

adsp2191 16 тактов на одно деление, дак вроде и тмс тоже за 16 делит, а впоследнем до кучи есть встроенная инструкция sqrt.

вот пример, на самом деле чуть больше 16
//sr1- divider
//ay0- result
ay0= 0; // 16 LSB of numerator
ay1= mx0; // 16 MSB of numerator- I data
DIVS AY1, sr1;
DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
DIVQ sr1; DIVQ sr1;
mx0= ay0; // I/abs(I+i*Q)

Сообщение отредактировал shf_05 - Nov 12 2008, 07:55
Go to the top of the page
 
+Quote Post

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

 


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


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