Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/48: Рейтинг темы: голосов - 48, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 44

Составить математическую модель и построить график сигнала

07.01.2013, 20:03. Показов 9487. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По данному графическому изображению одиночного импульсного сигнала составить математическую модель и построить график сигнала. Используя аналитические выражения разложить полученный сигнал в комплексный ряд Фурье, построить амплитудный и фазовый спектры сигнала, синтезировать сигнал и сравнить с исходным
Миниатюры
Составить математическую модель и построить график сигнала  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2013, 20:03
Ответы с готовыми решениями:

Записать математическую модель сигнала и построить график
Не понятно как строить подобные графики:umbrage:

Составить математическую модель сигнала
Дан симметричный импульс напряжения треугольной формы, составить математическую модель сигнала используя комбинацию функций...

Составить математическую модель сигнала
Помогите пожалуйста составить мат. модель сигнала, изображенного на рисунке Амплитуда -1,4 В; длительность импульса - 100 мс; частота -...

17
49 / 49 / 3
Регистрация: 07.12.2012
Сообщений: 201
Записей в блоге: 1
09.01.2013, 01:22
Сигнал практически не виден запишите его здесь пожалуйста в виде набора точек.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
09.01.2013, 11:43
Лучший ответ Сообщение было отмечено как решение

Решение

Как-то так
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
clear all, clc
 
T=10; % длительность
dt = 0.01; %шаг времени
t = 0:dt:T;
df = 1/T;
F = 1/dt;
f = -F:2*df:F;
s = (4+t).*(t>=0 & t<1) + (6-t).*(t>=1 & t<=6) + 0*(t>6 & t<=10);
 
subplot(3,1,1)
plot(t,s,'-r')
ylim([-1 6])
xlabel('t')
title('s(t)')
 
S = fft(s);
 
subplot(3,1,2)
stem(f, fftshift(abs(S)))
xlim([-5 5])
xlabel('f')
title('|S(j \omega)|')
 
subplot(3,1,3)
plot(f, fftshift(angle(S)))
xlim([-5 5])
xlabel('f')
title('arg(S(j \omega))')
3
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
09.01.2013, 11:53
Зосима, а там в титл
Matlab M
1
'|S(j\omega)|'
или все же
Matlab M
1
'|S(jf)|'
?
1
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
09.01.2013, 12:42
если честно, сходу не скажу. поидее S(f)
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
09.01.2013, 12:49
Цитата Сообщение от Зосима Посмотреть сообщение
если честно, сходу не скажу. поидее S(f)
Тоже все время забываю об этом))
Еще один момент (точнее вопрос): может корректнее все же спектр рисовать плотом, ибо спектр импульса сплошной а не дискретный? Или это я просто двоечник и чего то не знаю?))
2
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
09.01.2013, 13:52
Цитата Сообщение от Dimka_rtf Посмотреть сообщение
я просто двоечник
нет, я! действительно
Цитата Сообщение от Dimka_rtf Посмотреть сообщение
спектр импульса сплошной
поэтому лучше пользовать plot
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
09.01.2013, 14:13
Цитата Сообщение от Dimka_rtf Посмотреть сообщение
ибо спектр импульса сплошной а не дискретный
конечно же он дискретный, но все равно plot использовать удобнее
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
09.01.2013, 14:15
Цитата Сообщение от vital792 Посмотреть сообщение
конечно же он дискретный
А почему дискретный, если сигнал не периодичный?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
09.01.2013, 14:25
Цитата Сообщение от Dimka_rtf Посмотреть сообщение
дискретный, если сигнал не периодичный?
а какая связь?)

Цитата Сообщение от Зосима Посмотреть сообщение
f = -F:2*df:F;
вот тут вторым параметром задается шаг дискретизации.
1
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
09.01.2013, 14:42
Dimka_rtf, у нас сам временной сигнал дискретный и преобразование Фурье мы делаем тоже дискретное, поэтому мы получает отсчеты сплошной огибающей спектра
Кстать, в случае периодического сигнала, когда спектр становится линейчатым, то при неудачном выборе периода дискретизации можем промахнуться мимо гармоник и поиметь одни лишь шумы
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 44
09.01.2013, 21:49  [ТС]
...
Миниатюры
Составить математическую модель и построить график сигнала  
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
10.01.2013, 01:16
Зосима, все верно. Но ведь входной дискретный сигнал мы, как правило, стимом не отбражаем (т.к. во многих случаях подразумевается что мы имеем дело с дискретизированным аналоговым сигналом. Да и если бы отображали, то "плотность" этих отсчетов мы можем менять меняя частоту дискретизации). Как по мне, то такая же логика и со спектром: в силу самого алгоритма fft мы получаем n точек по оси частот, но ведь мы помним о том, что дискретизация сигнала с частотой fs тянет за собой лишь периодизацию спектра этого сигнала по частоте с периодом fs/2 (спектры влево и вправо от основного убывают по sinc, но это уже не суть важно), так почему бы нам не отобразить спектр сплошным (т.е. с помощью plot) если мы и дискретный сигнал рисуем плотом.
p.s. Извините, что много и криво. Поправьте, если где то неправ.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
10.01.2013, 10:29
Цитата Сообщение от Dimka_rtf Посмотреть сообщение
так почему бы нам не отобразить спектр сплошным (т.е. с помощью plot)
Дык я ж то не против!
2
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.01.2013, 10:34
как по мне, stem удобнее использовать когда мало данных - несколько точек, а так на вкус и цвет...
1
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
10.01.2013, 21:14
Зосима,
vital792, спасибо за ответы. Просто хотелось узнать о правильности своих суждений.
А на счет стим-плот, то я просто привык, что для спектра периодических сигналов - стим, и импульсов - плот.

Добавлено через 7 часов 53 минуты
А кто-то мне может объяснить полученный спектр фаз. Посмотрел в книге спектр фаз треугольного импульса (данный импульс на него очень похож) и увидел нечто другое, чем получается при использовании вышеприведенного кода.
У меня что-то такое вышло пр иопределении сигнала через функции Хевисайда:

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
clear all;
clc;
close all;
T    = 100;         % длительность
dt   = 0.01;        %шаг времени
t    = -T:dt:T;
df   = 1/T;
F    = 1/dt;
f    = -F:df:F;
Um   = 5;
tau1 = 1;
tau2 = 6;
s    = 4*heaviside(t)+t./tau1.*heaviside(t)-...
      (t-tau1)./tau1.*heaviside(t-tau1)-...
      5*(t-tau1)./(tau2-tau1).*heaviside(t-tau1)+...
      6*(t-tau2)./tau2.*heaviside(t-tau2);
subplot(3,1,1)
plot(t,s,'-r')
ylim([-1 6])
xlim([-1 7])
xlabel('t')
title('s(t)')
grid on 
S = fft(s);
subplot(3,1,2)
plot(f, fftshift(abs(S)))
xlim([-5 5])
xlabel('f')
title('|S(j \omega)|')
grid on 
subplot(3,1,3)
plot(f, fftshift(angle(S)))
xlim([-0.5 0.5])
xlabel('f')
title('arg(S(j \omega))')
grid on
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 44
12.01.2013, 19:49  [ТС]
Задание нужно выпольнить, не используя стандартных функций. Попыталась что-то сообразить, в итоге сигнал получился совершенно другим. Что я сделала не так?
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
clear, clc
 
per = 0.05;
T  = 5;
t = 0:per:T-per;
F = 1/per;
df = 1/T;
f = -F+2*df:2*df:F;
w=2*pi/T;
% 
for i=1:1:length(t)
    if t(i) >= 0 && t(i) <= 1
           s(i) = 1.2*t(i)+3.8;
    else if t(i) > 1 && t(i) <= 6
           s(i) = 6 - t(i);
        else if t(i) > 6
                s(i) = 0;
            end
        end
    end
end
N = length(s);
i = sqrt(-1);
% прямое дискретное преобразование фурье
for k = 0:N-1
    S(k+1) = sum( s.*exp(-w*i*(0:N-1)/N*k) );
end
Sa = abs(S);
Sf = angle(S);
figure(1)
plot(f,Sa)
title('Амплитудный спектр')
figure(2)
plot(f,Sf)
title('Фазовый спектр')
grid on
 P = Sa.*exp(i*Sf); 
% обратное преобразование фурье
for k = 0:N-1
    p(k+1) =1/N*sum( P.*exp(w*i*(0:N-1)/N*k) );
end
 
figure(3)
plot(t,s)
grid on
title('Исходный сигнал')
 
figure(4)
plot(t,real(p))
grid on
title('ситезированный сигнал')
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
14.01.2013, 10:46
В этой теме показано как делать преобразование Фурье вручную:
Разложение в Ряд Фурье

Добавлено через 1 час 7 минут
*тебе просто нужно было убрать w из формул преобразования!
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
clear, clc
 
per = 0.05;
T  = 10;
t = 0:per:T-per;
F = 1/per;
df = 1/T;
f = -F+2*df:2*df:F;
w=2*pi/T;
% 
for i=1:1:length(t)
    if t(i) >= 0 && t(i) <= 1
           s(i) = 1.2*t(i)+3.8;
    else if t(i) > 1 && t(i) <= 6
           s(i) = 6 - t(i);
        else if t(i) > 6
                s(i) = 0;
            end
        end
    end
end
N = length(s);
i = sqrt(-1);
% прямое ПФ
for k = 0:N-1
    S(k+1) = sum( s.*exp(-2*pi*i*(0:N-1)/N*k) );
end
Sa = abs(S);
Sf = angle(S);
figure(1)
plot(f,Sa)
title('Амплитудный спектр')
figure(2)
plot(f,Sf)
title('Фазовый спектр')
grid on
 P = Sa.*exp(i*Sf); 
% обратное преобразование фурье
for k = 0:N-1
    p(k+1) = 1/N*sum( P.*exp(2*pi*i*(0:N-1)/N*k) );
end
 
figure(3)
plot(t,s)
grid on
title('Исходный сигнал')
 
figure(4)
plot(t,real(p))
grid on
title('ситезированный сигнал')
plot(t,s)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2013, 10:46
Помогаю со студенческими работами здесь

Как построить математическую модель данного сигнала (Вариант 3)
нУЖНО ПОСТРОИТЬ МАТ МОДЕЛЬ ДАННОГО СИГНАЛА (ВАРИАНТ 3) В МАТКАДЕ

Построить математическую модель
Помогите пожалуйста построить мат. модель к данной задаче: Тело остывает по экспоненциальному закону. Известно, что в начальный момент...

Построить математическую модель задачи
В нефтяном предприятии одной нефтяной трубой качают m нефть.Когда соединяется разная нефть {c}_{ij} убыток.После прокачки нефти,когда...

Построить математическую модель роста популяции
Имеется некий биологический вид, у которого нет врагов, а кормовая база в избытке, но считаем, что в популяции существует внутривидовая...

Составить математическую модель
Всем привет! В университете поставили задачу разработать приложение по выдаче заданий и отслеживанию их исполнения сотрудниками какой...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru