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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> белый шум в матлабе
vadimuzzz
сообщение Jun 30 2010, 08:21
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



есть такая функция y=awgn(x,SNR_dB), вроде все с ней понятно: взял BPSK сигнал x, подмешал шум, декодировал, посчитал коэфф. ошибок. повторил на нескольких SNR по многу раз, результат усреднил, получил кривую ошибок. а теперь строю ту же кривую с пом. функции berawgn(snr_axis,'psk',2,'nondiff') - результат совершенно другой.
сгенерил шум по-другому:
Код
SNR=10.^(SNRdB/10);
No=Eb/SNR;
N=sqrt(No/2)*randn(n);

добавил к сигналу, построил кривую - результат совпал с berawgn. посмотрел по справочникам - графики совпадают с тем, что выдает berawgn. что же
Go to the top of the page
 
+Quote Post
EUrry
сообщение Jul 1 2010, 16:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312



Цитата(vadimuzzz @ Jun 30 2010, 12:21) *
сгенерил шум по-другому:
N=sqrt(No/2)*randn(n);[/code]

Функция randn(n) дает последовательность с гауссовым распределением, последовательность с равномерным распределением генерируется функцией rand(n).


--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать!
Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 1 2010, 22:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



понятно, но мне и нужен белый шум, отсюда и randn. кажется понял в чем дело - awgn первым параметром принимает отсчеты мощности, а я давал амплитуды. видимо, в этом причина
Go to the top of the page
 
+Quote Post
EUrry
сообщение Jul 2 2010, 18:06
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312



Цитата(vadimuzzz @ Jul 2 2010, 02:36) *
понятно, но мне и нужен белый шум, отсюда и randn.

В белом шуме компоненты на всех частотах имеют одинаковую амплитуду, т. е. распределены равномерно, а гауссово распределение, оно же нормальное, это уже совсем другое.
P. S. Не первый раз сталкиваюсь с тем, что некоторые отождествляют белый шум с гауссовым. Откуда это? Может в книге какой опечатка? laughing.gif


--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать!
Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 2 2010, 22:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата
В белом шуме компоненты на всех частотах имеют одинаковую амплитуду, т. е. распределены равномерно, а гауссово распределение, оно же нормальное, это уже совсем другое.

спектр белого шума плоский, т.к. его автокорреляционная функция - дельта-функция. к распределению по амплитуде это не имеет никакого отношения, оно может быть разным (в частности гауссовским). вариант с равномерным распределением по амплитуде - совсем не вариант, где он в природе встречается?
Цитата(EUrry @ Jul 3 2010, 01:06) *
P. S. Не первый раз сталкиваюсь с тем, что некоторые отождествляют белый шум с гауссовым. Откуда это? Может в книге какой опечатка? laughing.gif

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

http://en.wikipedia.org/wiki/Additive_white_Gaussian_noise
Go to the top of the page
 
+Quote Post
EUrry
сообщение Jul 3 2010, 05:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312



Цитата(vadimuzzz @ Jul 3 2010, 02:47) *
к распределению по амплитуде это не имеет никакого отношения, оно может быть разным (в частности гауссовским).

Да? Значит, что-то я уже позабыл. laughing.gif Надо бы заняться восстановлением упущенного. cranky.gif


--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать!
Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2010, 09:36
Сообщение #7


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(vadimuzzz @ Jul 3 2010, 02:47) *
спектр белого шума плоский, т.к. его автокорреляционная функция - дельта-функция. к распределению по амплитуде это не имеет никакого отношения, оно может быть разным (в частности гауссовским). вариант с равномерным распределением по амплитуде - совсем не вариант, где он в природе встречается?

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

http://en.wikipedia.org/wiki/Additive_white_Gaussian_noise


Если шум белый, т.е. имеет плоский бесконечный спектр, то никакого другого распределения по амплитуде кроме как равномерного он иметь не может. А к природе он (белый шум) никакого отношения не имеет - удобная математическая модель, и не более того.

Кстати, если генерится приличный белый шум, то из него достаточно просто можно получить шум с любыми другими распределениями, пропустив его через соответствующий фильтр. На кафедре (правда это было лет 30 тому) народ это активно использовал при моделировании чего угодно. Можно погуглить на эту тему.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jul 3 2010, 10:29
Сообщение #8


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(sergeeff @ Jul 3 2010, 16:36) *
Если шум белый, т.е. имеет плоский бесконечный спектр, то никакого другого распределения по амплитуде кроме как равномерного он иметь не может.

Почему? Плоский бесконечный спектр означает, что сигнал состоит из бесконечного количества гармоник с равными амплитудами - т.е. куда бы не ткнули по оси частот, получим те же самые по величине составляющие. А распределение задает вероятность появления амплитуды той или иной величины. Т.е., например, если мат. ожидание, скажем, 1 вольт, то это наиболее часто встречающаяся амплитуда в любой части спектра (раз у нас спектр плоский бесконечный), а остальные амплитуды отличаются от нее с вероятностью, заданной законом распределения. И не обязательно это распределение равномерно.

Насколько понимаю, спектр и распределение по амплитуде - достаточно ортогональные вещи. Поправьте, если ошибаюсь.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2010, 10:44
Сообщение #9


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Правильнее, наверное говорить, о распределении амплитуд шума на конкретной частоте.
Go to the top of the page
 
+Quote Post
EUrry
сообщение Jul 3 2010, 11:00
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 218
Регистрация: 14-11-06
Из: Н. Новгород
Пользователь №: 22 312



Цитата(sergeeff @ Jul 3 2010, 14:44) *
Правильнее, наверное говорить, о распределении амплитуд шума на конкретной частоте.

Наверное да, распределение (только чего?) на конкретное частоте, т. к. согласно Баскакову (см. рисунок) равномерно в диапазоне частот распределена плотность мощности.
С другой стороны, как быть, если на каждой последующей частоте распределение будет меняться? cranky.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Все не могут только сеять разумное, доброе, вечное: кому-то надо и пахать!
Природа не терпит пустоты: там, где люди не знают правды, они заполняют пробелы домыслом. © Бернард Шоу
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 3 2010, 11:26
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(sergeeff @ Jul 3 2010, 16:36) *
Если шум белый, т.е. имеет плоский бесконечный спектр, то никакого другого распределения по амплитуде кроме как равномерного он иметь не может.

и из чего сие следует? как вы увязываете распределение по амплитуде и распределение по частоте?
Цитата
А к природе он (белый шум) никакого отношения не имеет - удобная математическая модель, и не более того.

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

Цитата(dxp @ Jul 3 2010, 17:29) *
Насколько понимаю, спектр и распределение по амплитуде - достаточно ортогональные вещи.

вот-вот.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2010, 23:23
Сообщение #12


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Модель - она и в Африке модель. Лишь некоторое приблизительное описание реально существующих процессов и явлений. Вы же сами сначала говорили про белый шум, потом про белый гауссовский шум.

Про генераторы шумов на компьютере лучше всего написано у Кнута в каком-то из томов.

Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 4 2010, 01:47
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(sergeeff @ Jul 4 2010, 06:23) *
Модель - она и в Африке модель. Лишь некоторое приблизительное описание реально существующих процессов и явлений. Вы же сами сначала говорили про белый шум, потом про белый гауссовский шум.

эта модель применяется связистами по всему миру, это хорошая модель, прекрасно подходит для расчета теплового шума приемника. что название для темы было выбрано неудачно, я уже писал. вопрос-то состоял в различии результатов на одной модели в одном пакете моделирования, тут вроде все разъяснилось.
Go to the top of the page
 
+Quote Post
samurad
сообщение Jul 5 2010, 03:05
Сообщение #14


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

Группа: Свой
Сообщений: 121
Регистрация: 9-05-08
Из: Япония
Пользователь №: 37 385



Цитата(vadimuzzz @ Jul 2 2010, 01:36) *
понятно, но мне и нужен белый шум, отсюда и randn. кажется понял в чем дело - awgn первым параметром принимает отсчеты мощности, а я давал амплитуды. видимо, в этом причина

Судя по хелпу, y=awgn(x,SNRdB) принимает в х амплитуды отчетов сигнала-вектора, и по умолчанию считает, что амплитуды нормированы, так что мощность вектора х есть 0 дБВт; иначе вызов этой функции другой: y=awgn(x,SNRdB,XPowdBW). Кроме того, eсли у вас несколько отчетов на бит, то их амплитуда должна быть в соответственное число раз меньше, чем амплитуда принятого бита, т.к. awgn() не понимает время.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 5 2010, 03:31
Сообщение #15


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

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



Цитата(dxp @ Jul 3 2010, 16:29) *
Насколько понимаю, спектр и распределение по амплитуде - достаточно ортогональные вещи. Поправьте, если ошибаюсь.

у шума есть характеристика- спектральная плотность мощности и с функцией распределения мгн. значений она не связана.
например пропуская шум с норм. распред. амплитуд. и равной спм (белый шум) через фильтр ФНЧ получим шум в некой полосе но опять же с гауссовым распределением мгнов. значений.
получить гауссово распред можно сложив несколько "шумов" с равном. распред, СПМ при этом однако не изменится

а вот получить шум с неравномерным или негауссовым распред. мнгн. амплитуд дело уже не столь тривиальное.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 5 2010, 04:54
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(samurad @ Jul 5 2010, 10:05) *
Судя по хелпу, y=awgn(x,SNRdB) принимает в х амплитуды отчетов сигнала-вектора, и по умолчанию считает, что амплитуды нормированы, так что мощность вектора х есть 0 дБВт; иначе вызов этой функции другой: y=awgn(x,SNRdB,XPowdBW).

я тоже сначала так подумал, но там есть еще вариант y=awgn(x,SNRdB,'measured'), который сам меряет вх. мощность. результаты тоже не сошлись, тогда я проверил "в лоб":
Код
SNRdB=3;
SNR=10.^(SNRdB/10);
Eb=1;
No=Eb/SNR;
n=1000000;
N1=sqrt(No/2)*randn(n,1);
BPSK_sig=-2*randint(n,1)+1;
s1=BPSK_sig+N1;
s2=awgn(BPSK_sig,SNRdB,'measured');
N2=s2-BPSK_sig;

и, что характерно, std(N1)~0.5; std(N2)~0.707. 0.707 подозрительно похож на sqrt(2)/2, из чего я и сделал вывод, что awgn работает с мощностями, в то время как я давал амплитуды.
Go to the top of the page
 
+Quote Post
samurad
сообщение Jul 5 2010, 10:54
Сообщение #17


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

Группа: Свой
Сообщений: 121
Регистрация: 9-05-08
Из: Япония
Пользователь №: 37 385



Цитата(vadimuzzz @ Jul 5 2010, 07:54) *
я тоже сначала так подумал, но там есть еще вариант y=awgn(x,SNRdB,'measured'), который сам меряет вх. мощность. результаты тоже не сошлись, тогда я проверил "в лоб":
Код
SNRdB=3;
SNR=10.^(SNRdB/10);
Eb=1;
No=Eb/SNR;
n=1000000;
N1=sqrt(No/2)*randn(n,1);
BPSK_sig=-2*randint(n,1)+1;
s1=BPSK_sig+N1;
s2=awgn(BPSK_sig,SNRdB,'measured');
N2=s2-BPSK_sig;

и, что характерно, std(N1)~0.5; std(N2)~0.707. 0.707 подозрительно похож на sqrt(2)/2, из чего я и сделал вывод, что awgn работает с мощностями, в то время как я давал амплитуды.

Если отбросить подозрительность и рассмотреть факты (продолжая ваш код), то получается:
Код
BPSK_sig_pow = sum(abs(BPSK_sig.^2))./n   % измеренная мощность BPSK_sig
BPSK_sig_pow =
   1.0
% Для заданного SNR = 3dB, мощность шума должна быть в 2 раза меньше, т.е. 1/2
% Проверяем:
N1_pow = sum(abs(N1.^2))./n   % измеренная мощность шума N1
N1_pow =
   0.25  % ошибка
N2_pow = sum(abs(N2.^2))./n   % измеренная мощность шума N2
N2_pow =
   0.5  % верно

% Для проверки awgn(BPSK_sig,SNRdB):
s21 = awgn(BPSK_sig,SNRdB);  % можно, т.к. Eb = 1 W
N21 = s21 - BPSK_sig;
N21_pow = sum(abs(N21.^2))./n   % измеренная мощность шума N21
N21_pow =
   0.5  % опять верно

Вы ошиблись в моделировании шума N1: для реального сигнала BPSK весь шум так же реальный, поэтому правильно моделировать N1 так
Код
N11 = sqrt(No)*randn(n,1);
N11_pow = sum(abs(N11.^2))./n   % измеренная мощность шума N11
N11_pow =
   0.5 % верно
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 5 2010, 11:25
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(samurad @ Jul 5 2010, 17:54) *
Вы ошиблись в моделировании шума N1: для реального сигнала BPSK весь шум так же реальный, поэтому правильно моделировать N1 так
Код
N11 = sqrt(No)*randn(n,1);

тогда не сходятся результаты с berawgn(snr_axis,'psk',2,'nondiff')
обратите внимание, везде берется No/2
http://www.dsplog.com/2007/08/05/bit-error...psk-modulation/

http://www.dsplog.com/db-install/wp-conten...criptbpsk_ber.m

http://gaussianwaves.blogspot.com/2010/04/...ation-over.html
Go to the top of the page
 
+Quote Post
samurad
сообщение Jul 6 2010, 09:25
Сообщение #19


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

Группа: Свой
Сообщений: 121
Регистрация: 9-05-08
Из: Япония
Пользователь №: 37 385



Цитата(vadimuzzz @ Jul 5 2010, 14:25) *
тогда не сходятся результаты с berawgn(snr_axis,'psk',2,'nondiff')
обратите внимание, везде берется No/2
http://www.dsplog.com/2007/08/05/bit-error...psk-modulation/

http://www.dsplog.com/db-install/wp-conten...criptbpsk_ber.m

http://gaussianwaves.blogspot.com/2010/04/...ation-over.html

А они и не должны сходиться. Аргументом berawgn() является не SNR, a Es/No, который для комплексных сигналов на 3 дБ больше чем для действительных в Матлабе. См. раздел AWGN Channel в хелпе Communications Toolbox.
Вообще-то, различие смысла аргументов родственных функций создает некоторую неопределенность. Цена универсальности Матлаба.

Брать No/2 или No при генерации шума - это условность. Важно соблюсти соответствие между SNR, Es/No и Eb/No на протяжении всей цепи генерации и обработки сигнала в рамках той библиотеки функций, которую вы используете.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jul 6 2010, 10:25
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Есть такой вопрос

Моделирую декодер Витерби, есть необходимость оценить, при каком уровне ошибок на входе он исправляет ошибки, а при каком размножает. До этого делал все функцией awgn, после чего квантовал и смотрел число ошибочных бит.
Есть ли функция вида Исказить Х бит в последовательности А,чтобы ошибки были распределены равновероятны


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
samurad
сообщение Jul 8 2010, 07:04
Сообщение #21


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

Группа: Свой
Сообщений: 121
Регистрация: 9-05-08
Из: Япония
Пользователь №: 37 385



Цитата(Muscat @ Jul 6 2010, 14:25) *
Есть такой вопрос

Моделирую декодер Витерби, есть необходимость оценить, при каком уровне ошибок на входе он исправляет ошибки, а при каком размножает. До этого делал все функцией awgn, после чего квантовал и смотрел число ошибочных бит.
Есть ли функция вида Исказить Х бит в последовательности А,чтобы ошибки были распределены равновероятны

Смысл вопроса неясен.
Уровень ошибок = количество ошибок?
Квантовали для получения мягких решений? Тогда равновероятные ошибки на входе (в канале) аннулируют преимущество мягких решений декодера Витерби.
Макс. количество исправляемых ошибок - величина зависящая в большей степени от использованного кода (сверточного для Витерби декодера), а именно от его минимального евклидова расстояния. Для минимизации размножения ошибок (burst errors) используют интерливер на входе и "накрывают" сверточный код блоковым, напр. Рида-Соломона.

Функции генерации векторов случайных величин в Communications Toolbox (обратите внимание на первые две):
- randerr() to generate random bit error patterns, as in a model of channel errors
- randint() to generate uniformly distributed random integers
- randsrc() to generate random symbols
- awgn() to generate additive white Gaussian noise
- wgn() to generate white Gaussian noise across a load
Так же в основном Матлабе есть функции так сказать более низкого уровня:
- rand() to generate uniformly distributed pseudorandom numbers
- randn() to generate normally distributed pseudorandom numbers
- randperm() to generate uniform random permutation
Go to the top of the page
 
+Quote Post

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

 


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


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