2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение22.03.2010, 13:41 


11/04/08
632
Марс
Я знаю, что есть команда rand, но это немного не то: она формирует вектор, а не функцию.
А мне нужно переменную, содержающую шум, вставить в диф. уравнение (ode45).

Поясню, если не совсем понятно выражаюсь. Допустим, имеем функцию
x = @(t) sin(t)
которую мы вставляем в неоднородное диф. уравнение (вроде типа: y''(t) + y' + x(t) = 0)
Потом мне надо записать x(t) в виде
x = @(t) sin(t) + r(t),
где r(t) - это функция, описывающая "белый" шум. Вопрос, как ее задать? Вообще реально ли это? Если нет, то тогда может есть возможность решать дифуры, в которых известные функции задаются в виде таблицы?...

 Профиль  
                  
 
 Re: можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение29.03.2010, 15:21 


29/03/10
20
Matlab работает с дискретными сигналами.
Но у него есть toolbox SIMULINK, все что касается непрерывных сигналов это туда.

 Профиль  
                  
 
 Re: можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение30.03.2010, 08:57 
Заслуженный участник


11/05/08
32166
spyphy в сообщении #300817 писал(а):
где r(t) - это функция, описывающая "белый" шум. Вопрос, как ее задать?

Так и задавайте:
Используется синтаксис Matlab M
function y=r(x);
y=0.003 * rand(size(x));

А лучше randn.

 Профиль  
                  
 
 Re: можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение16.04.2010, 20:02 


11/04/08
632
Марс
)) в этом что-то есть... Код действительно работоспособный. Но все же выглядит это дело как-то страннова-то. Ведь конструкция в таком виде вставляется в функцию ODE45 еще до того, как определен размер вектора t. И о том, что происходит внутри команды ODE45, можно только гадать... какая-то уж слишком запутанная многоуровневая абстрация получается..

 Профиль  
                  
 
 Re: можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение05.05.2010, 20:22 


05/09/09
35
В GNU Octave (аналог Matlab) я генерировал приближение к частотно-ограниченному белому шуму, как сумму синусов со случайными фазами.
Вот код:


Код:
   ## -*- texinfo -*-
   ## @deftypefn {Function File} {@var{out}=} noise (@var{t}, @var{phi})
   ##
   ## Generates the periodical noise signal as sum of sine waves with equal
   ## amplitudes, but random phases. Number of waves are calculated from
   ## length of @var{phi} vector. Noise period are equal to 2*pi.
   ## 
   ## @end deftypefn
   
   function OUT = noise (t, phi)
     temp = 1/2;
     N = length (phi);
     for i = 1:N
       temp = temp .+ 1.*sin(i.*t .+ phi(i));
     endfor
     OUT = temp;
   endfunction


Второй аргумент у функции noise это вектор случайных чисел, равномерно распределённых от нуля до двух пи радиан. В самом начале вашей программы нужно создать вектор случайных фаз, а потом вызывать с ним noise вот так:

Код:
@(t) noise (t, phi);
fplot (@(t) noise (t, phi), [0 2*pi]);


Ширина спектра задаётся с помощью размера вектора случайных фаз, сколько в нём членов, столько и гармоник.

 Профиль  
                  
 
 Re: можно ли в матлабе задать шум в виде непрерывной функции?..
Сообщение17.05.2012, 18:36 


17/05/12
1
y = awgn(x,snr)

Добавляет белый гауссов шум к вектору сигнала x. Скаляр snr задает отношение сигнал/шум в децибелах. Если значения x являются комплексными, функция awgn добавляет комплексный шум. При этом предполагается, что мощность сигнала x равна 0 дБ.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group