|
График в MATLAB, как нарисовать? |
|
|
|
 |
Ответов
|
Nov 21 2012, 17:04
|
Местный
  
Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187

|
Цитата(V_G @ Nov 21 2012, 17:43)  Ну, так пишите plot(x[последние моменты],y[последние моменты]), где последние моменты - диапазон индексов массивов x,y, соответствующих по-вашему последним моментам времени. Спасибо, заработало!
Сообщение отредактировал Stefan1 - Nov 21 2012, 17:04
|
|
|
|
|
Nov 22 2012, 08:29
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Stefan1 @ Nov 22 2012, 12:06)  По ходу решения задачи опять возник вопрос: а можно ли из синусоидальной функции с наличием высших гармоник u в зависимости от времени выделить первую гармонику и построить ее на графике также в зависимости от времени? Я раскладываю в ряд Фурье функцию и затем выделяю из нее первую гармонику: uf=fft(u); u1=uf(2)/256*2; uf=[]; Просто uf(2) - не строится. Как мне построить первую гармонику напряжения u в зависимости от времени (отбросив высшие гармоники)? Наверное, вычислить обратное преобразование Фурье - ifft. Например, так: Стираем (зануляем) в массиве uf все частоты, кроме нужной вам u1(1)=0 u1(3:length(u))=0 или в одну строку, если она вас не устрашит  u1([1 3:length(u)])=0 написала length(u1), т.к. не знаю точно, сколько у вас частот, вы же можете подставить конкретную константу, потом y=ifft(u1); а дальше строим график обычным образом.
|
|
|
|
|
Nov 22 2012, 09:32
|
Местный
  
Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187

|
Цитата(Xenia @ Nov 22 2012, 11:29)  Наверное, вычислить обратное преобразование Фурье - ifft. Например, так: Стираем (зануляем) в массиве uf все частоты, кроме нужной вам u1(1)=0 u1(3:length(u))=0 или в одну строку, если она вас не устрашит  u1([1 3:length(u)])=0 написала length(u1), т.к. не знаю точно, сколько у вас частот, вы же можете подставить конкретную константу, потом y=ifft(u1); а дальше строим график обычным образом. Все работает, только вот что-то не похоже на 1-ю гармонику (т.е. синусоиду). Может быть из-за того что я не то число ставлю вместо length(u1), т.к. у меня сигнал модулирован низкой частотой и первая гармоника здесь соответствует модулирующиму сигналу, а не несущей. Как бы теперь выделить первую гармонику несущей - наверно в ручную подбирать? т.к. частот модулирующего сигнала я не знаю.
Сообщение отредактировал Stefan1 - Nov 22 2012, 10:42
|
|
|
|
|
Nov 22 2012, 12:50
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Stefan1 @ Nov 22 2012, 13:32)  Все работает, только вот что-то не похоже на 1-ю гармонику (т.е. синусоиду). Может быть из-за того что я не то число ставлю вместо length(u1), т.к. у меня сигнал модулирован низкой частотой и первая гармоника здесь соответствует модулирующиму сигналу, а не несущей. Как бы теперь выделить первую гармонику несущей - наверно в ручную подбирать? т.к. частот модулирующего сигнала я не знаю. Возьмем 8-точеный пример: 1) Загоним туда косинусоиду (удобна тем, что ее спектр действителен): Код x = [0:7] // команда x = 0 1 2 3 4 5 6 7 // отклик МатЛаба
y = cos(2*pi/8*x) // команда y = 1.0000 0.7071 0.0000 -0.7071 -1.0000 -0.7071 -0.0000 0.7071 // отклик МатЛаба 2) Делаем fft Код u=fft(y) // команда u = -0.0000 4.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 4.0000 // отклик МатЛаба u' // команда напечатать в столбик -0.0000 // u(1) постоянная составляющая 4.0000 // u(2) амплитуда первой гармоники (самой медленной) 0.0000 // u(3) амплитуда второй гармоники -0.0000 // u(4) амплитуда третей гармоники 0.0000 // u(5) амплитуда четвертой гармоники, частота Найквиста (самая быстрая) -0.0000 // u(6) зеркальное комплексносопряженное от u(4) 0.0000 // u(7) зеркальное комплексносопряженное от u(3) 4.0000 // u(8) зеркальное комплексносопряженное от u(2) Ось симметрии проходит через частоту Найквиста. Постоянная составляющая своего отражения не имеет. "Комплексносопряженное" означает, что действительная часть числа сохраняется, а мнимое изменяет свой знак. 3) Обнуляем ненужные гармоники Кроме u(2) надо оставить незануленной еще и ее отражение u(8). Когда в массиве не 8 элементов, а больше, то надо рассчитать номер зеркального отражения. Для первой гармоники он самый последний в ряду: Код u([1 3:length(u)-1])=0 u = 0 4.0000 0 0 0 0 0 4.0000 4) Делаем обратное преобразование Фурье Код y2=ifft(u) y2 = 1.0000 0.7071 0.0000 -0.7071 -1.0000 -0.7071 -0.0000 0.7071 Готово! Поскольку у нас изначально была только 1-ая гармоника, то она и осталась.
|
|
|
|
|
Nov 22 2012, 17:47
|
Местный
  
Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187

|
Цитата(Xenia @ Nov 22 2012, 16:50)  Когда в массиве не 8 элементов, а больше, то надо рассчитать номер зеркального отражения. Спасибо за пояснения! Только вот у меня этих элементов - несколько тысяч, как это зеркальное отражение рассчитать то? И еще один вопрос: если мой сигнал модулирован низкой частотой, то 1-я гармоника будет именно этого модулирующего сигнала, может есть способы его убрать?
Сообщение отредактировал Stefan1 - Nov 22 2012, 18:07
|
|
|
|
Сообщений в этой теме
Stefan1 График в MATLAB Nov 20 2012, 09:50 deeper_79 Цитата(Stefan1 @ Nov 20 2012, 12:50) Добр... Nov 20 2012, 13:33 Stefan1 Цитата(deeper_79 @ Nov 20 2012, 16:33) t=... Nov 21 2012, 09:45 V_G Не понял, вам 3-мерный график нужен?
Есть функции ... Nov 21 2012, 12:43 Stefan1 Цитата(V_G @ Nov 21 2012, 15:43) Не понял... Nov 21 2012, 13:20       Xenia Цитата(Stefan1 @ Nov 22 2012, 21:47) У ме... Nov 22 2012, 18:23        Stefan1 Цитата(Xenia @ Nov 22 2012, 22:23) Про мо... Nov 22 2012, 18:43         Xenia Цитата(Stefan1 @ Nov 22 2012, 22:43) Да, ... Nov 22 2012, 18:47          Stefan1 Столкнулся опять с проблемой: матлаб почему-то не ... Jan 30 2013, 08:09           mdmitry Цитата(Stefan1 @ Jan 30 2013, 11:09) Стол... Jan 30 2013, 08:14            Stefan1 Цитата(mdmitry @ Jan 30 2013, 11:14) А X(... Jan 30 2013, 08:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|