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, Супермодераторы



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

Сейчас этот форум просматривают: wrest


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

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