Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программная генерация белого шума
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Kris2007
Стоит подзадача измерить АЧХ аналогового тракта.

Что сделано:
Генерируем белый шум при помощи конгруэнтного генегатора случайных чисел + синус от этого случайного числа. Принимаем окном допустим по 256 значение , прерываем генерацию, считаем БПФ, включаем генерацию и.т.д. Так делаем 100 раз и усредняем спектр.
Проверяю результат на цифре (т.е. без аналога- замыкаю вход на выход), результат получается неравномерным. Оно и понятно, но для тестирования аналогового тракта такой выриант не очень хорош.

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

seed = a*seed mod m

static int seed = 999563;
double GoodRandom()
//int GoodRandom()
//
// m = 2*31-1
// a = 48271, q=44488, r=3399
// a = 69621, q=30845, r=23902
// a = 39373
// range a*seed 2*46-1
// period 2**31-1
{
int const a= 16807, // 7**5
m= 2147483647, // 2*31-1
q= 127773, // m/a
r= 2836; // m % a
int lo, hi, test;

hi = seed/q;
lo = seed - hi*q; // seed mod q
test = a*lo - r*hi;
if (test>0) seed = test;
else seed = test + m;
return (double)seed/(double) m;
}

Синус зачем?
Diz
Можно использовать сдвиговые регистры максимальной длины с отводами.
Разрядность подобрать исходя из тактовой частоты и периода повторения последовательности.
Должен быть хороший белый шум с плоским спектром до F/2. Скажем, для F=400 kHz,
31-битный регистр с отводами от 2 и 30-го битов, период повторения 1.5 часа.
bve
В разделе "Математика и физика" не раз поднимали эту тему, загляните....
Tanya
Цитата(Kris2007 @ Jan 9 2008, 17:39) *
Стоит подзадача измерить АЧХ аналогового тракта.

Что сделано:
Генерируем белый шум при помощи конгруэнтного генегатора случайных чисел + синус от этого случайного числа. Принимаем окном допустим по 256 значение , прерываем генерацию, считаем БПФ, включаем генерацию и.т.д. Так делаем 100 раз и усредняем спектр.
Проверяю результат на цифре (т.е. без аналога- замыкаю вход на выход), результат получается неравномерным. Оно и понятно, но для тестирования аналогового тракта такой выриант не очень хорош.

Так вот посоветуйте, существует ли возможность улучшить равномерность распределения белого шума?

А что, физический генератор не годиться? Попадалось когда-то...
АЦП на PIC'е измерял напряжение с высокоомного резистра. Потом еще какие-то математические перемешивания следовали - вроде хэширования по MD5... не помню точно. И ссылку не помню...
Kris2007
fontp, синус бы взят из следующих соображении- генерируем сигнал одной амплитуды но случайной частоты.

Аппаратные вырианты не подходят.

Вообще я решил попробовать АЧХ по точкам вычислить, а по спектру белого шума.
Сложно тут с белым шумом получается.
vadkudr
U Vas zada4a - izmerit' A4X tracta pribora.
Reshaetsja onasledujusim izvestnym obrazom.

Y(z)=A(z)X(z), gde X(z) zondirujusij signal, Y(z) - signal s vyhoda pribora.

A4X Vashego pribora
A(z)=Y(z)/X(z)=Y(z)T(z), gde T(z)X(z)=1, T(z) - obratnyj signal k zondirujusemu
Obratnyj signal obladaet tem svojstvom, 4to svertka ego s ishodnym daet delta funkciju.

To est' Vam nado ne tupo brat' FFT ot Y(z), a svertyvat' ego s obratnym signalom.

V vashem slu4ae, raz Vy uzhe vzjali FFT ot Y(z) - razdelite ego spectr na spectr X(z), etim Vy skorrectiruete Vash resultat.

Pary zondirujusij/obratnyj signal izvestny, ih pridumano mnogo.
Naprimer, sweep sinus, M-posledovanelnost',...
Mozhete sami vy4islit' periodi4eski obratnyj k vashemu pri pomosi FFT.

Izvinite esli nesolko sumburno izlozhil
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.