Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генерация случайного сигнала с заданной спектральной плотностью
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
sysel
Здравствуйте!
Столкнулся с задачей генерации псевдослучайного сигнала с известной спектральной плотностью мощности (1684 спектральных линий).
С ходу попробовал следующее решение: формирую коэффициенты для БПФ таким образом, чтобы на заданной частоте была заданная мощность (re*re+im*im = Power*Power); При этом фазы формирую через Random.

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

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

Может быть кто-то сталкивался с чем-то подобным?

Добавлю:
На борту есть аппаратный генератор случайных чисел (внутри AMD Geode LX800) с равномерной плотностью распределения, который можно, впинципе, использовать как источник белого шума. Может быть его как-то задействовать ?
Dr.NoA
Попробуйте посмотреть в сторону метода отбора-отказа (acceptance-rejection method) генерации случайных чисел.
alex_os
Цитата(sysel @ Nov 8 2008, 13:44) *
...
1) из-за необходимости менять фазу от фрагмента к фрагменту возникла задача плавной стыковки. (для того, чтобы в моменты состыковки не было бы "щелчков" из-за разрывов во временной области. (решил путём плавного уменьшения сигнала на предыдущем фрагменте и плавного увеличения на следующем). Но решение мне не совсем нравиться, т.к. выходной спектр получается достсточно непредсказуемый на месте состыковки. Может быть посоветуете чего ?

По сути Вам нужно белый шум пропустить через формирующий фильтр требуемым АЧХ. Это можно сделать как во временной области так и в частотной ( что Вы и пытаетесь сделать ). Если устроит кусочно - линейная апроксимация АЧХ фильтр можно посчитать в матлабе функцией remes или pmfir. Как делать фильтрацию в частотной области чтобы не было разрывов на стыке блоков читать Рабинера с Голдом.


Цитата(sysel @ Nov 8 2008, 13:44) *
2) Кроме спектральной мощности задан пик-фактор сигнала (отношение пикового значения во временной области к среднеквадратичному). Когда я просто "обрезаю" выходящие за предел пики, такое "обрезание" приводит к появлению спектральных линий за пределами заданного спектра.
Поснему задача: генерация случайного сигнала с заданной спектральной плотностью и заданным пик-фактром.


Это уже интереснее. Если формирующий фильтр будет достаточно длинный и достаточной узкополосный, то какое бы не было распределения на выходе генератора шума - распределение на выходе формирующего фильтра будет стремится к нормальному ( в силу центральной предельной теоремы). У нормального распределения совершенно определенный пик фактор. Если Вы попытаетесь как-то ограничить сигнал на выходе фильтра чтобы уменьшить пик-фактор то исказится спектр.
Проблема похожа на OFDM PARP reduction если гуглом поискать то много чего находится.
Crusher
В памяти всплывает аппроксимация рядом Каца-Шинозуки...Вкратце, формируется как:

s(t)=sum(sin(w(i)*t+psi))
i=1..N

psi-равномерно распределенная фаза сигнала от 0 до 2*pi, w(i)-случайная величина с функцией распределения, соответствующей нужной форме спектра. Всего суммируется N гармоник для получения одного отсчета сигнала. Как-то так...Подробности могу дома поискать, если будет надо...
shf_05
можно получить нормальный шум- сложить 10-15 значений равномерного, а затем на форм. ф-р любой полосы и АЧХ, после к-го с-л все равно будет нормальный.

Цитата(Crusher @ Nov 10 2008, 20:10) *
В памяти всплывает аппроксимация рядом Каца-Шинозуки...Вкратце, формируется как:

s(t)=sum(sin(w(i)*t+psi))
i=1..N

psi-равномерно распределенная фаза сигнала от 0 до 2*pi, w(i)-случайная величина с функцией распределения, соответствующей нужной форме спектра. Всего суммируется N гармоник для получения одного отсчета сигнала. Как-то так...Подробности могу дома поискать, если будет надо...


вроде должно работать, тока наверное при малой девиации напр. 0,1*psi и если не считать вычисление синуса недостатком алг-ма

Цитата(Crusher @ Nov 10 2008, 20:10) *
В памяти всплывает аппроксимация рядом Каца-Шинозуки...Вкратце, формируется как:

s(t)=sum(sin(w(i)*t+psi))
i=1..N

psi-равномерно распределенная фаза сигнала от 0 до 2*pi, w(i)-случайная величина с функцией распределения, соответствующей нужной форме спектра. Всего суммируется N гармоник для получения одного отсчета сигнала. Как-то так...Подробности могу дома поискать, если будет надо...


вроде должно работать, тока наверное при малой девиации напр. 0,1*psi и если не считать вычисление синуса недостатком алг-ма
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.