0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 4
1

Суммирующий сигнал

08.05.2013, 11:24. Показов 1817. Ответов 5
Метки нет (Все метки)

Цель задания создать 2 сигнала (одного периода) в моем случае y=sin(x)^3 и z=(sin(x)^3)*1.3, начало и конец которых совпадают.

Изначально сигналы находятся в нулевом положении. Затем реализуется анимационное движение одного сигнала влево, другого вправо (количество шагов движения не меньше 50), при этом форма сигналов, должна оставаться постоянной.

Также на каждом шагу должна вычисляться сумма двух первоначальных сигналов согласно их текущему положению. Исходный и суммирующий сигнал должны отображаться только там где имеют значение (не должны иметь нулевых значений)

Пример реализации во вложении.

Вложение 264898

Matlab M
1
2
3
4
5
6
7
8
9
10
11
x=[0:0.01:2*pi]; %значения по x до 2пи, реализация одного периода
    y=sin(x).^3;
    z=(sin(x).^3)*1.3;
    p=sin(x).^3+(sin(x).^3)*1.3; % суммирующая функция
for i=[0:0.01:pi];  
    x1=x+i;          %Один график едет вправо
    x2=x-i;           %Другой график едет влево
 plot(x1,y,x2,z,x,p);
 grid on;
     pause(0.00001)
     end
Не могу понять как построить график суммы двух сигналов. Нужно как-то сравнивать значения из массива x1 и x2 и оставлять только те, которые одинаковы в обоих, в данный момент времени на i-том шаге. Вообще может быть можно как-то проще реализовать, поделитесь своими идеями, а то я зацикливаюсь на одном и не могу придумать что-то еще.

Добавлено через 9 минут
Пример реализации здесь
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2013, 11:24
Ответы с готовыми решениями:

Речевой сигнал
Здравствуйте. Подскажите пожалуйста как ввести речевой сигнал с помехами?

Bpsk сигнал
Доброго времени суток!Прошу помощи с решением поставленной задачи: Необходимо сформировать...

ЛЧМ-сигнал
Есть сигнал состоящий из N чипов, чип - косинусоида со своей частотой fi и в пределах чипа частота...

Прямоугольный сигнал
Вопрос может быть наивный, но срочно надо сделать курсовой, а в голову ничего не идет. Как...

5
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 4
13.05.2013, 10:56  [ТС] 2
Ребят, неужели, ни у кого нет хоть каких-нибудь мыслей как можно это реализовать?
0
5163 / 3502 / 360
Регистрация: 02.04.2012
Сообщений: 6,414
Записей в блоге: 17
14.05.2013, 09:43 3
Лучший ответ Сообщение было отмечено как решение

Решение

Хех, вроде получилось!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clear, clc
 
h = 0.01;
x = 0:h:2*pi; %значения по x до 2пи, реализация одного периода
y = sin(x).^3;
z = 1.3*sin(x).^3;
for i = 1:2:length(x);
    x1 = x + (i-1)*h;
    x2 = x1(1:end-i+1);
    p = y(i:end) + z(1:end-i+1);
    plot(x,y, x1,z, x2,p, 'linewidth',2); 
    xlim([0 14])
    ylim([-2.5 2.5])
    grid on;
    pause(0.00001)
end
3
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 4
14.05.2013, 17:46  [ТС] 4
Зосима, Спасибо большое. Получается, что движется только один график и там должен двигаться еще и правый график в соответствии с заданием. Пытаюсь реализовать получается небольшое запаздывание суммирующего. Никак не могу въехать в его истинную причину.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clear, clc
h = 0.01;
x = 0:h:2*pi; %значения по x до 2пи, реализация одного периода
y = sin(x).^3;
z = 1.3*sin(x).^3;
k=0:h:pi;
for i = 1:2:length(k);
    x1 = x + (i-1)*h;
    x3=x -(i-1)*h;
    x2 = x(1:(end-i+1));
    p = y(i:end) + z(1:end-i+1);
    plot(x3,y, x1,z, x2,p); 
    axis ([-5 10 -2.5 2.5]);
    grid on;
    pause(0.01)
   end
0
5163 / 3502 / 360
Регистрация: 02.04.2012
Сообщений: 6,414
Записей в блоге: 17
15.05.2013, 10:09 5
Вроде тоже разобрался
Смотри, когда у нас один сигнал "стоит", то на каждой итерации цикла происходит сдвиг на 1 элемент (x сдвигается на h), а когда движутся оба сигнала, то сдвиг получается на 2 элемента!!! Соответственно и с массивом значений x шаг получается 2*h и сигналы разъезжаются в два раза дальше! Вообщем подправил шаг x на h/2 и все заработало!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clear, clc
h = 0.01;
x = 0:h:2*pi; %значения по x до 2пи, реализация одного периода
y = sin(x).^3;
z = 1.3*sin(x).^3;
 
for i = 1:4:length(x);
    x1 = x - (i-1)*h/2;
    x2 = x + (i-1)*h/2;
    p = y(i:end) + z(1:end-i+1);
    xp = x2(1):h:x1(end);
    plot(x1,y, x2,z, xp, p);
    axis ([-4 10 -2.5 2.5]);
    grid on;
    pause(0.01)
end
1
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 4
15.05.2013, 16:53  [ТС] 6
Зосима, спасибо большое, теперь полностью все прояснилось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2013, 16:53

Одиночный импульсный сигнал
такая проблема есть программа для импульсного сигнала. собственно вот она clear all; Ts = 0.05; T...

Непрерывный (аналоговый) сигнал
Как сформировать аналоговый непрерывный сигнал (не в Simulink)? То есть чтобы реализация сигнала...

Сохранить сигнал в txt
Здравствуйте, допустим есть сигнал t=0:0.1:50; x1=randn(1, length(t)); plot(x1) Как сделать...

Сигнал с изменяющейся частотой
Мне нужно сгенерировать сигнал,часть которого имеет частоту,например,50 Гц,а...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.