Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/49: Рейтинг темы: голосов - 49, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
1

Моделирование последовательности импульсов со случайной амплитудой и месторасположением

01.11.2011, 00:45. Показов 9433. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Помогите пожалуйста составить программу для моделирования последовательности импульсов со случайной амплитудой и месторасположением....
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2011, 00:45
Ответы с готовыми решениями:

Моделирование частотного модулятора (модулирующий сигнал - последовательность прямоугольных импульсов)
Помогите сделать сам не могу додуматься

Спектральный анализатор редкоповторяющейся случайной последовательности импульсов
Доброе утро, Форумчане! Я столкнулся с весьма "интересной" темой диплома. Называется "Спектральный...

Моделирование дискретной случайной величины
Чтобы долго не расписывать: в прикреплённом ПДФ - методические указания к работе. Вариант 14...

Моделирование случайной величины в Scilab
Дана таблица распределения: Х1=1, Х2=27, Х3=29, Х4=57 Р1=0,05, Р2=0,45, Р3=0,49, Р4=0,01 ...

31
128 / 127 / 10
Регистрация: 09.11.2010
Сообщений: 200
01.11.2011, 15:11 2
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от DaoNil Посмотреть сообщение
Добрый вечер! Помогите пожалуйста составить программу для моделирования последовательности импульсов со случайной амплитудой и месторасположением....
Matlab M
1
2
3
4
5
6
7
8
9
10
clc; clear all; close all;
x=rand(100,1);
y=rand(100,1);
plot(cumsum(x),y,'LineWidth',1.5)
hold on
plot(cumsum(x),y,'or')
grid on
xlabel('X');
ylabel('Y');
title('Случайная последовательность импульсов');
Миниатюры
Моделирование последовательности импульсов со случайной амплитудой и месторасположением  
4
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
04.11.2011, 18:08  [ТС] 3
Спасибо большое, выручили... А такой вопрос. Возможно ли при добавления шума к этой последовательности разработать программу для обнаружения и выявления амплитуды и местоположения импульса на фоне шума на определенной длине интервала?
0
128 / 127 / 10
Регистрация: 09.11.2010
Сообщений: 200
05.11.2011, 10:58 4
Цитата Сообщение от DaoNil Посмотреть сообщение
Спасибо большое, выручили... А такой вопрос. Возможно ли при добавления шума к этой последовательности разработать программу для обнаружения и выявления амплитуды и местоположения импульса на фоне шума на определенной длине интервала?
Литературу по данному вопросу читали?
http://matlab.exponenta.ru/signalprocess/index.php
http://www.kodges.ru/75799-mat... enij..html

К сожалению ничем больше помочь не могу.
1
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
10.02.2012, 22:22  [ТС] 5
Столкнулся с проблемой. Я в Матлабе полный ноль и к тому же еще и забыл его окончательно. Подскажите, как от этой случайной последовательности взять БПФ и померить амплитуды импульсов... А ещё как эту последовательность сделать редко повторяющейся.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
11.02.2012, 11:46 6
Цитата Сообщение от DaoNil Посмотреть сообщение
в Матлабе полный ноль и к тому же еще и забыл его окончательно
Русский язык, он такой русский язык...

Цитата Сообщение от DaoNil Посмотреть сообщение
как от этой случайной последовательности взять БПФ
Y = fft(y, 2^nexpow2(length(y)));

Цитата Сообщение от DaoNil Посмотреть сообщение
и померить амплитуды импульсов...
так они же заданы, функция rand() генерирует последовательность от 0 до 1. Если рассматривать ее как сигнал(последовательность импульсов как вы говорите), то это и есть амплитуда. Можно представить эту последовательность, как дискретный сигнал, выбрать для него частоту дискретизации, (другими словами, представить значения данной последовательности, как импульсы сигнала, следующие через равные интервалы времени) и измерить амплитуды различных частот, составляющих данную последовательность. В этом и есть смысл бпф.

Цитата Сообщение от DaoNil Посмотреть сообщение
А ещё как эту последовательность сделать редко повторяющейся
Что значит "редко"? Каков критерий этой "редкости"? Почитайте про функции распределения
0
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
11.02.2012, 23:41  [ТС] 7
Что значит "редко"? Каков критерий этой "редкости"?..

Надо создать импульсы появляющиеся в через разные интервалы времени и разной амплитуды. И Взять от этой последовательности БПФ. Может подскажите литературу поконкретнее, а то в большинстве ощие понятия или я чего-то не понимаю
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
12.02.2012, 11:42 8
DaoNil, честно говоря странное задание, и, как инженер объясню почему. С практической точки зрения данную систему можно представить, как некий датчик, снимающий измерения некого случайного процесса, но почему то в случайные промежутки времени. То есть принятый сигнал получается случайно дискретизирован по времени и случайно квантован по уровню. Ни о каких частотных характеристиках такого сигнала речи быть не может из-за нерегулярной дискретизации => БПФ не имеет смысла. Можно попытаться полученный сигнал интерполировать, чтобы получить из него обычный случайный процесс(сигнал) с равномерной дискретизацией и смотреть его частотные характеристики (то есть бпф). Правда я полагаю что спектр интерполированного сигнала не будет точно соответствовать спектру исходного (интерполяция сработает как нч фильтр, подрежутся верхние частоты). Но другого способа взять бпф такого сигнала я не вижу.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear all;
close all;
 
duration = 128;
y=rand(1, duration) - 0.5; % случайная последовательность
tn = cumsum(rand(1, duration)); % берется в случайные временные отсчеты
 
t = (1:duration) / duration * tn(end);  % "нормальные", равномерно расположенные временнЫе измерения
 
hold on;
plot(tn, y, tn, y, 'o'); grid on; axis tight % исходный сигнал (случайные уровни, замеренные в случайные интервалы времени)
plot(t, zeros(1, duration), '*r'); % звездочками отмечены равномерные отсчеты времени
 
y1 = interp1(tn, y, t, 'cubic'); % сделаем жалкую попытку интерполировать этот бред
plot(t, y1, 'om', t, y1, 'm'); % покажем че получилось
 
% а теперь можно считать БПФ
Y1 = abs(fft(y1)); % амплитудный спектр
magnSpec = 20*log10(Y1(1:end/2)); % переведем в децибелы
figure
plot(magnSpec);
второй график - модуль бпф (амплитудный спектр). Чем он ровнее, тем "случайнее", или "белее" процесс.
Миниатюры
Моделирование последовательности импульсов со случайной амплитудой и месторасположением   Моделирование последовательности импульсов со случайной амплитудой и месторасположением  
2
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
12.02.2012, 14:06  [ТС] 9
Может я не так формулирую проблему. В итоге мне необходимо составить программу для анализатора спектра случайной редкоповторяющейся последовательности импульсов. Сначала с помощью БПФ, а второй случай когда я запоминаю амплитуду и время появления импульсов и произвожу оценку. Смысл, в том, что оценивается не весь интервал, а лишь моменты появления импульсов.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
12.02.2012, 15:14 10
Цитата Сообщение от DaoNil Посмотреть сообщение
Может я не так формулирую проблему.
О да!

Цитата Сообщение от DaoNil Посмотреть сообщение
В итоге мне необходимо составить программу для анализатора спектра случайной редкоповторяющейся последовательности импульсов.
Вот тут все понятно. Нужно построить спектр случайного процесса, в общем шума. И тут не сказано ничего про
Цитата Сообщение от DaoNil Посмотреть сообщение
импульсы появляющиеся в через разные интервалы времени
В предыдущем посте я описал почему это невозможно.

Цитата Сообщение от DaoNil Посмотреть сообщение
Сначала с помощью БПФ
Тут думаю уже все понятно

Цитата Сообщение от DaoNil Посмотреть сообщение
а второй случай когда я запоминаю амплитуду и время появления импульсов и произвожу оценку
А вот это у меня в голове пока не укладывается, как вы без Фурье собираетесь оценивать спектр, ну я еще подумаю на досуге. Если решите сами, не забудьте отписаться сюда. Честно говоря, мне кажется, там все проще, но мы пока не понимаем друг друга
0
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
15.02.2012, 16:05  [ТС] 11
Кое-что придумал. Если у нас имеется группа редко повторяющихся импульсов, нам достаточно измерить амплитуды импульсов и моменты их появления. Вот что у меня получилось.. Не устраивает точность оценки спектра. Ничего не получается при увеличении длительности импульсов. Может есть идеи как поступить в этой ситуации?
Миниатюры
Моделирование последовательности импульсов со случайной амплитудой и месторасположением   Моделирование последовательности импульсов со случайной амплитудой и месторасположением  
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
15.02.2012, 16:55 12
DaoNil, твоя оценка спектра и есть по сути преобразование Фурье, тока не быстрое(fft), а по классической формуле. Так что разницы между этими способами быть не должно.
0
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
15.02.2012, 17:18  [ТС] 13
То есть, время на вычисление спектра останется таким же. Я просто думал что по этой формуле скорость вычисления увеличится. Нет? Можете предложить идею чем можно заменить БПФ для такой последовательноти?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
15.02.2012, 19:59 14
Цитата Сообщение от DaoNil Посмотреть сообщение
по этой формуле скорость вычисления увеличится. Нет?
Нет. Быстрое Преобразование Фурье потому так и называется, что оно быстрое)) Его сложность составляет O(N·log(N)) (если использовать классический алгоритм Кули-Тьюки) против O(https://www.cyberforum.ru/cgi-bin/latex.cgi?N^2), по стандартной формуле которую ты используешь. Тем более, матлаб использует функцию бпф из библиотеки fftw, а быстрее чем у них реализации нет. Я даже пытался когда то на асме написать свою функцию https://www.cyberforum.ru/asse... 53570.html, но по скорости до fftw ей было далеко.

Цитата Сообщение от DaoNil Посмотреть сообщение
чем можно заменить БПФ для такой последовательноти?
Ну кроме фурье можно использовать ортогональное разложение по какому нибудь другому базису (например Уолша, Хаара - для скорости), но зачем? Спектральный анализ в ЦОС называют чаще всего "Фурье анализ", оценивание спектра как бы по умолчанию подразумевает использование fft.
1
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
15.02.2012, 20:39  [ТС] 15
Спасибо большое за разъяснение. Знаю что надоел, но последний вопросик можно? Что можно придумать с этой случайной последовательностью, чтобы можно было разработать на диплом...
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
15.02.2012, 20:56 16
Цитата Сообщение от DaoNil Посмотреть сообщение
чтобы можно было разработать на диплом
На мой взгляд, тема диплома должна быть не "абстрактно-теоретической", а практически полезной(ИМХО). Если ты интересуешься случайными процессами, то как насчет разработки системы связи с широкополосными(шумоподобными) сигналами? На диплом вполне тянет(а может и на дисер, все зависит от требуемых характеристик системы). А вообще надо подумать на счет темы. Это я сказал первое что в голову пришло(просто сам занимаюсь подобным)
1
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
15.02.2012, 21:23  [ТС] 17
Цитата Сообщение от vital792 Посмотреть сообщение
А вообще надо подумать на счет темы.
Я был бы Вам очень признателен, если бы вы подсказали что делать. У меня тема диплома " Спектральный анализатор редко повторяющейся последовательности импульсов" Пока технического задания не сформировано. Я теперь и не знаю с какого бока подойти.
0
vital792
15.02.2012, 21:40
  #18

Не по теме:

А, так тема уже сформулирована, жаль, не суждено появится новой системе связи:D Че нибудь придумаем, но не сходу

1
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
28.02.2012, 15:27  [ТС] 19
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
clc; clear all; close all;
S=zeros(1024,1);
t=1:32:1024;
for k=1:5
    S((t(k))+1)=1;
end
Sy=S+0.15*randn(1024,1);
D=abs(fft(S));           %БПФ
figure 
subplot(3,1,1) 
stem(S)
subplot(3,1,2) 
plot(D)
 
 
%Оценка спектра
A=[];
for n=1:1024         %перебор отчетов частоты
 w=2*pi*(n-1)/1024;   
  V=0;
for k=1:5          %перебор импульсов
    V=V+S((t(k)+1)).*exp(-fix(t(k)+1)*i*w);  
end
A=[A,abs(V)];     %массив спектра
end
subplot(3,1,3)
plot(A)
 
% Добавим шумы
 
 
for n=1:1024
    if Sy(n)<0.5
        Sy(n)=0;
    end
end
Dn=abs(fft(Sy));
figure
subplot(3,1,1) 
stem(Sy)
subplot(3,1,2) 
plot(Dn)
 
 
%Оценка спектра
r=[];
for n=1:1024 
    if Sy(n)>0.55
        r=[r,n]
    end
end
b=size(r);
An=[];
for n=1:1024         %перебор отчетов частоты
 w=2*pi*(n-1)/1024;   
  V=0;
for k=1:b(2)          %перебор импульсов
    V=V+Sy((r(k))).*exp(-r(k)*i*w);  
end
An=[An,abs(V)];     %массив спектра
end
subplot(3,1,3)
plot(An)
что то мне не нравится как это работает
0
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 25
13.03.2012, 15:47  [ТС] 20
Вот программа немного похожая на то, что планируется получить. Подскажите пожалуйста как вместо прямоугольных импульсов сделать гауссовские. Как их сделать случайными. При добавлении шума происходит увеличение амплитуды импульса. Не могу найти ошибку.Спасибо.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
clc;
close all;
tau = 1; % длительность импульсов
q = 50; % скважность
T = tau * q; % период следования импульсов 
N =3; % число импульсов
d = (0:N-1)*T; % вектор задержек для pulstran
t = -1:0.1:100.3; % дискретное время
s = pulstran(t, d,'rectpuls', tau); % последовательность из N импульсов
D=abs(fft(s));
subplot(3,1,1) 
plot(s)
grid on 
title('Исходный сигнал') 
xlabel('Время (сек)') 
ylabel('Амплитуда') 
subplot(3,1,2) 
plot(D)
grid on 
title('Спектр Фурье(FFT)') 
xlabel('Время (сек)') 
ylabel('Амплитуда') 
 
% 
% %Оценка спектра
Nn=length(t);
 
r=[];
r1=[];
for n=1:1:Nn 
    if s(n)>0
        r=[r,t(n)];
        r1=[r1,n];
    end
    
end
b=size(r);
A=[];
n=1;
for l=1:1:Nn         %перебор отчетов частоты
 w=2*pi*(l-1)/101.3; 
  V=0;
for k=1:b(2)          %перебор импульсов
    V=V+s(r1(k)).*exp(-r(k)*i*w);  
end
 A=[A,abs(V)];     %массив спектра
end
subplot(3,1,3)
plot(A)
grid on 
title('Спектр ИСП(фор)') 
xlabel('Время (сек)') 
ylabel('Амплитуда')
 
%Добавим шум
 
y = awgn(s,25); % Добавляем белый гауссов шум
Dn=abs(fft(y));
figure 
subplot(3,1,1)
plot(t,s,t,y) % Выводим графики обоих сигналов
grid on 
title('Исходный сигнал с шумом') 
xlabel('Время (сек)') 
ylabel('Амплитуда') 
subplot(3,1,2) 
plot(Dn)
grid on 
title('Спектр Фурье(fft)') 
xlabel('') 
ylabel('Амплитуда')
 
Nn=length(t);
 
rn=[];
r1n=[];
for n=1:1:Nn 
    if y(n)>0
        rn=[rn,t(n)];
        r1n=[r1n,n];
    end
 end
b=size(r);
A1=[];
n=1;
for l=1:1:Nn         %перебор отчетов частоты
 w=2*pi*(l-1)/101.3; 
  V1=0;
for k=1:b(2)          %перебор импульсов
    V1=V+y(r1n(k)).*exp(-rn(k)*i*w);  
end
 A1=[A,abs(V1)];     %массив спектра
end
subplot(3,1,3)
plot(A1)
grid on 
title('Спектр ИСП(фор)') 
xlabel('Время (сек)') 
ylabel('Амплитуда')
 
 
%_________________________________________________%
0
13.03.2012, 15:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2012, 15:47
Помогаю со студенческими работами здесь

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

моделирование случайной совокупности по закону распределения
Помогите пожалуста разобраться с заданием. Необходимо сгенерировать случайную величину в...

Моделирование случайной величины с гамма распределением
Ребят выручайте препод дал задание на практике . вопрос жизни и смерти готов если что...

Моделирование случайной в-ны, распределённой по нормальному закону
Моделирование случайной в-ны, распределённой по нормальному закону. помогите сооставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru