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

 
 
 
Reply to this topicStart new topic
> Моделирование фазового шума во временной области, Как сгенерировать синус с фазовым шумом в MatLab/Octave/SciLab???
:-)
сообщение Jan 7 2013, 16:19
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006



Стало интересно как можно сгенерировать неущее колебание с наложенным фазовым шумом для моделирования система ФАПЧ. Google/yandex неохотно подсказывают как это сделать.

Вот один из найденных вариантов: http://www.dsprelated.com/showcode/246.php

Если я правильно понял идею, то сначала генерируется белый шум, от него берется БПФ, потом на полученный спектр накладывается требуемая форма спектра фазовых шумов и в конце берется ОБПФ.

Неясно как это использовать, если хочется дополнительно наложить меняющийся во времени Доплер на несущую. Есть ли ещё какие способы моделирования фазового шума во временной области?
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 7 2013, 16:31
Сообщение #2


Гуру
******

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



Здесь простейшая моделька в симулинке.

http://electronix.ru/forum/index.php?s=&am...st&p=576557
Go to the top of the page
 
+Quote Post
:-)
сообщение Jan 10 2013, 07:14
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006



Спасибо за подсказку, буду разбираться...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jan 11 2013, 08:30
Сообщение #4


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

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



Цитата(:-) @ Jan 7 2013, 22:19) *
Если я правильно понял идею, то сначала генерируется белый шум, от него берется БПФ, потом на полученный спектр накладывается требуемая форма спектра фазовых шумов и в конце берется ОБПФ.

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

это отфильтровали шум.

Доплер же независимая от шума величина- задавайте ее как Вам надо, а шум подставляйте в функцию (sin) или вне функции, где этот используется этот Доплер в зависимости от природы шума.
имхо- напишите формулы Ваших сигналов, найдите где там аргумент, где шум и загоняйте формулы в любой скилаб.
только нужно сгенерировать нужный Вам шум (спектр, распределение и т.п.). - поищите как сформировать шум (случайную величину) с требуемым распределением и спектром.
Go to the top of the page
 
+Quote Post
Tano
сообщение May 1 2013, 10:03
Сообщение #5


Местный
***

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



Покритикуйте программу для расчёта SNR на выходе АЦП из-за джиттера.
Форма сигнала может быть любой.
Код
function Jitter_SNR
    % -- Рачёт зависимости отношения сигнал/шум на выходе АЦП c бесконечной
    % -- разрядностью, от величины джиттера клока, тактирующего АЦП для
    % -- сигнала любой формы.
    % в функции SignaL(t) задаём любой сигнал
    % delta_JIT - шаг джиттера [сек]
    delta_JIT = 1/10^10;                % шаг джиттера [сек]
    imax = 200;                         % количество точек на графике
    % область изменения джиттера: delta_JIT...imax * delta_JIT
    Nmax = 1000;                         % Length of signal
    Fs = 200*10^3;                      % Sampling frequency [Гц]
    T = 1/Fs;                           % Sample time [сек]
    jmax = 100;    
    % считаем напряжение шума, вызванного джиттером с шагом  delta_JIT
    for i = 1:imax                  
        gitter = delta_JIT * i;             % задаём все значения джиттера
        for j = 1:jmax                          
            t = ((j-1)/jmax)*T + (0:Nmax-1)*T;  % Time vector [сек]
            Sref = SignaL(t);               % задаём сигнал на входе АЦП
                                            % он может быть любой
            RMS_Sref(j) = sqrt(sum(Sref.*Sref)/Nmax); % RMS сигнала                                  
            rr = randn(1, Nmax);         % случайный вектор с нормальным
                                         % распределением и единичной дисперсией
            Err_t = gitter*rr;           % вектор джиттера, соответствующий
                                         % этому распределению (в сек)
            tgit = t + Err_t;            % временной вектор с учётом  джиттера
                                         % ( этим тактруем АЦП )
            Sizm = SignaL(tgit);                % сигнал на выходе АЦП
                                                % тактируемым с джиттером
            errSIG = Sref - Sizm;               % вектор ошибки, вызванный джиттером
            U_err(j) = sqrt(sum(errSIG.*errSIG)/Nmax); % RMS вектора ошибки,
                                                       % вызванной джиттером
        end
        RMS(i) = sum(RMS_Sref)/(jmax);
        RMS_error(i) = sum(U_err)/(jmax);    %
    end
    RMS_S = sum(RMS)/imax                  % RMS сигнала   chirp
    DB_error = 20*log10(RMS_error/RMS_S);   % перевод в дб
    x = 1:imax;
    xg = (20/imax)*x;
    figure(1);plot(xg, DB_error); grid;
    title(' SNR [в дб]')
    xlabel('джиттер [нсек]')
end
% --- Синус сигнал -----------------
% function S = SignaL(t)
%     Fsig = 1*10^3;                      % Signal frequency   [Гц] для синуса
%     S = sin(2*pi*Fsig*t);
% end
% --- ЛЧМ сигнал -----------------
function S = SignaL(t)
    Max_t = max(t);
    Fsig = 36*10^3;                      % Signal frequency   [Гц] для синуса
    S = chirp(t, Fsig-Fsig/5, Max_t, Fsig+Fsig/5);     % ЛЧМ сигнал
end


С уважением, Тано


--------------------
С уважением Tano
Go to the top of the page
 
+Quote Post
Tano
сообщение May 8 2013, 03:28
Сообщение #6


Местный
***

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



Что-то никто не критикует. А я заметил что уже больше ста человек заглянуло в эту тему после 1 мая.
Может подкинете уже извесные опубликованные примеры для теста проги.


--------------------
С уважением Tano
Go to the top of the page
 
+Quote Post

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

 


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


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