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

 
 
> белый шум в матлабе
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
 
Start new topic
Ответов
vadimuzzz
сообщение Jul 1 2010, 22:36
Сообщение #2


Гуру
******

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



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


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

Группа: Свой
Сообщений: 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
vadimuzzz
сообщение Jul 5 2010, 04:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #5


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

Группа: Свой
Сообщений: 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
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- vadimuzzz   белый шум в матлабе   Jun 30 2010, 08:21
- - EUrry   Цитата(vadimuzzz @ Jun 30 2010, 12:21) сг...   Jul 1 2010, 16:19
|- - EUrry   Цитата(vadimuzzz @ Jul 2 2010, 02:36) пон...   Jul 2 2010, 18:06
||- - vadimuzzz   ЦитатаВ белом шуме компоненты на всех частотах име...   Jul 2 2010, 22:47
||- - EUrry   Цитата(vadimuzzz @ Jul 3 2010, 02:47) к р...   Jul 3 2010, 05:51
||- - sergeeff   Цитата(vadimuzzz @ Jul 3 2010, 02:47) спе...   Jul 3 2010, 09:36
||- - dxp   Цитата(sergeeff @ Jul 3 2010, 16:36) Если...   Jul 3 2010, 10:29
|||- - shf_05   Цитата(dxp @ Jul 3 2010, 16:29) Насколько...   Jul 5 2010, 03:31
||- - vadimuzzz   Цитата(sergeeff @ Jul 3 2010, 16:36) Если...   Jul 3 2010, 11:26
|- - samurad   Цитата(vadimuzzz @ Jul 5 2010, 14:25) тог...   Jul 6 2010, 09:25
- - sergeeff   Правильнее, наверное говорить, о распределении амп...   Jul 3 2010, 10:44
|- - EUrry   Цитата(sergeeff @ Jul 3 2010, 14:44) Прав...   Jul 3 2010, 11:00
- - sergeeff   Модель - она и в Африке модель. Лишь некоторое при...   Jul 3 2010, 23:23
|- - vadimuzzz   Цитата(sergeeff @ Jul 4 2010, 06:23) Моде...   Jul 4 2010, 01:47
- - Muscat   Есть такой вопрос Моделирую декодер Витерби, есть...   Jul 6 2010, 10:25
- - samurad   Цитата(Muscat @ Jul 6 2010, 14:25) Есть т...   Jul 8 2010, 07:04


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

 


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


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