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

Построение спектра сигналов

29.04.2015, 07:25. Показов 10211. Ответов 13
Метки нет (Все метки)

Сигнал состоит из нижней половины синусоиды и единичного прямоугольного импульса.

Matlab M
1
2
3
4
5
6
7
8
9
10
t=0:0.010:0.999;% формируем временную сетку
b=40; c=1 ; %  параметры
y=rectpuls(t).*min(c*sin(2*pi*b*(t+pi/2.15)),0);% формируем прямоугольный единичный импульс на который наложена нижняя часть синусоидального сигнала
plot(t,y,'m'); % строим график сигнала
j=512; fs=100; % спектр и частота дискретизации
ffts=abs(fft(y,j));% преобразование Фурье по модулю
ffts=2*ffts./j;% нормализация
ffts(1)=ffts(1)/2;% нормировка постоянной составляющей в спектре
f=0:fs/j:fs/2-fs/j;% вектор частот 
figure;plot(f,ffts(1:length(f)),'m');%вывод спектра

Собственно наложение сигнала и его спектр
Построение спектра сигналов


Я не могу понять, где изменить частоту исходного сигнала в несколько раз при этом длительность его оставив неизменной?

ладно
fs=100 оставить это длительность сигн. все понятно .
а с частотой как разобраться?

изменил b и вот что дало.

Построение спектра сигналов
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2015, 07:25
Ответы с готовыми решениями:

Синтез сигналов из спектра
Здравствуйте, дали задание создать программу синтеза непериодических сигналов из их спектра частот,...

Нормировка спектра разных сигналов
Здравствуйте. Вопрос связан с нормировкой сигнала, полученного на выходе функции fft. Для...

Сравнение спектра двух сигналов
Здравствуйте! Мне дали задание сравнить спектры двух сигналов. Фурье преобразование сделал, спектры...

Построение спектра
Здравствуйте. Должен сказать, что данная тема обсуждалась не раз и я читал и этот форум тоже, но до...

13
19 / 17 / 2
Регистрация: 13.06.2014
Сообщений: 84
Записей в блоге: 1
29.04.2015, 11:59 2
А на каком временном промежутке должны быть заданы синусоида и прямоугольный импульс? Они оба от нуля начинаются? Если да, то можно, например, так

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
T1 = ;  % длительность обрезанной синусоиды в секундах
T2 = ;  % длительность прямоугольного (от нуля до Т2) в секундах
T = ;  % конец рассматриваемого промежутка времени в секундах
f0 = ;  % частота синусоиды (сколько полных периодов в 1 секунду)
fs = ;  % дискретизация сигнала
t = 0:1/fs:T;
x1=sin(t*2*3.14*f0);
for i = 1:length(t)
   if x1(i)>0
      x1(i)=0;
   end
end   %  обрезка верхней части синусоиды
x2=rectpuls(t,2*T2);
x = x1 + x2;  % сумма их
plot(t,x1,t,x2,t,x)
Здесь у меня сигнал на временном промежутке от 0 до максимального из длительностей синусоиды и прямоугольного, T1 = 2, T2 = 1, f0 = 5, fs = 100. Можно написать любые. Если под половиной синусоиды имелась в виду вторая половина периода (которая отрицательная), и чтобы она начиналась от нуля, то соответственно можно сдвинуть ее или прямоугольный импульс и задать синусоиде частоту в 2 раза меньше, чем длительность прямоугольного.
Светло-синий - обрезанная синусоида, зеленый - прямоугольный импульс, красное - их сумма.
это и будет концом рассматриваемого интервала времени (в секундах). Пример: для
1
Миниатюры
Построение спектра сигналов  
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
29.04.2015, 15:05  [ТС] 3
Да,с начала координат.Под половиной второй понималась отрицательная часть синусоиды.Все разобрал, кроме одного.Почему после достижения b=100 ни график сигнала, ни его спектрограф не отображаются?
0
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
25.05.2015, 16:24  [ТС] 4
Matlab M
1
2
3
4
5
6
7
8
9
10
t=0:0.001:0.999;
b=10; c=1 ;
y=rectpuls(t).*min(c*sin(2*pi*b*(t)),0);
plot(t,y,'m');
j=1; fs=1000;
ffts=abs(fft(y));
ffts=2*ffts;
ffts(1)=ffts(1)/2;
f=0:1:fs/2-1;
figure;plot(f,ffts(1:length(f)),'m');
Всем кому понадобиться,вполне рабочий код спектрографа описан чуть выше.


И следом

Решил добавить еще, кроме синусоиды и единичного прямоугольного импульса, сигнал прямоугольного импульса,с периодом раза в три меньше

должно получиться схематично что-то подобное.
Построение спектра сигналов
Главное, чтобы импульсы square были положительные.
Нашел функцию h=square(t,[duty]); Генерирует периодический прямоугольный сигнал с заданным периодом заполнения, задаваемым вторым входным скалярным параметром duty.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
t=0:0.001:0.999;
b=8; c=1 ;
h=square(t,[100]);
y=rectpuls(t).*(h).*(c*sin(2*pi*b*t));
plot(t,y,'m');
j=1; fs=1000;
ffts=abs(fft(y));
ffts=2*ffts;
ffts(1)=ffts(1)/2;
f=0:1:fs/2-1;
figure;plot(f,ffts(1:length(f)),'m');
Почему прямоугольный сигнал не работает?
0
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
26.05.2015, 07:01  [ТС] 5
Вижу что все читают,но никто отвечать не хочет)И грех и смех.

Ладно.Последний вопрос тогда.

С прямоугольным сигналом разобрался,задал частоту сигнала,но нужно, чтобы так называемая меандра была обрезана.То есть часть сигнала,которая заходит в отрицательную часть.И получить при этом сигнал,который будет прыгать от 0 к 1 и от 1 к 0 обратно итд.

Вот исходный код, который нужно дополнить.
Matlab M
1
2
3
4
t=0:0.001:5.999;
F=2, A=1;
x=square((2*pi*t*F)*A,50);
plot(t,x)
0
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
26.05.2015, 09:21 6
Matlab M
1
2
Um = 1;
x=Um/2+Um/2*square((2*pi*t*F)*A,50);
Вроде так. ЕСли еще не забыл...
1
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
26.05.2015, 10:17  [ТС] 7
Вот,что получилось.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
t=0:0.001:1,999;
b=7; g=6; A=2;B=1;
h=Um/2+Um/2*square((2*pi*(t)*g)*A,50);
y=rectpuls(t)*3.*h.*(B*sin(2*pi*b*(t)));
plot(t,y,'m');
j=1; fs=1000;
ffts=abs(fft(y));
ffts=2*ffts;
ffts(1)=ffts(1)/2;
f=0:1:fs/2-1;
figure;plot(f,ffts(1:length(f)),'m');
собственно вот.

Построение спектра сигналов

Всем спасибо.
0
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
05.06.2015, 20:12  [ТС] 8
И снова здравствуйте)Ничегошеньки не правильно.
Пошел сдавать на проверку работу.Оказалось,что формула перемножения задана не правильно (для получения спектра сигнала перемножаются не только сигналы между собой,но и еще "что-то"),либо у меня код не правильный и его надо попилить.

К слову,кто может помочь?
0
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
05.06.2015, 20:33  [ТС] 9
Кстати, вот фото.
Построение спектра сигналов


там где u(t) очевидно,что его составляющие,то есть простые сигналы умножаются на экспоненту со степенными коэффициентами.

методичка.
METODY.ANALIZA.SPEKTRA.SIGNALA.pdf
0
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
06.06.2015, 08:22 10
SanD79,
Цитата Сообщение от SanD79 Посмотреть сообщение
для получения спектра сигнала перемножаются не только сигналы между собой,но и еще "что-то"
Для получения спектра Вы используете fft. Все Ваши перемножения - это формирование сигнала. То, что у Вас получилось (сигнал) вполне подпадает под описание в первом посте.
Цитата Сообщение от SanD79 Посмотреть сообщение
очевидно,что его составляющие,то есть простые сигналы умножаются на экспоненту со степенными коэффициентами.
Ваш разговор с преподом - битва поколений. Скорее всего у него цель - принудить Вас считать спектр "ручкаим на листике".
Если Вы хотите получить спектр так, как описано на картинке - Вам fft не поможет.
0
507 / 414 / 43
Регистрация: 17.07.2013
Сообщений: 2,124
06.06.2015, 08:40 11
Кроме амплитуды, иногда для характеристики сигнала, требуется его фаза.
0
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
10.06.2015, 17:24  [ТС] 12
А можно восстановить сигнал на основе спектра?И не могли бы вы привести пример.
0
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
10.06.2015, 17:56 13
SanD79, можно. Примените ifft к тому, что Вам дал fft. Только результат fft берите безо всяких нормировок.
1
2 / 2 / 0
Регистрация: 22.03.2014
Сообщений: 31
10.06.2015, 19:13  [ТС] 14
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
t =0:0.001:1,999;
g=69; b=24;Um=1;
s=rectpuls(t).*(Um/2+Um/2*square((2*pi*g*(t)),50)).*sin(2*pi*b*(t));
plot(t,s,'m'),grid;
j=1; fs=512;
ffts=abs(fft(s));
ffts=2*ffts;
ffts(1)=ffts(1)/2;
f=0:1:fs/2-1;
figure;plot(f,ffts(1:length(f)),'m'),grid;
f1 = ifft(ffts);
plot(real(f1));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2015, 19:13

Построение спектра сигнала
Доброе время суток, ув. форумчане. Передо мной стояла задача построить спектр сигнала. Есть сам...

Построение спектра по звуку и обратно
Здравствуйте! Решил попробовать поработать со звуком. Есть дискретный сигнал, записанный с...

Построение динамического Фурье-спектра
Здравствуйте, уважаемые форумчане! Возникла такая проблемка - необходимо построить динамический...

Построение графика спектра изображения
Здравствуйте! Подскажите, как построить график спектра изображения, если известна матрица самого...


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

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

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