реклама на сайте
подробности

 
 
> Как задать значения ф-ций, Начал изучать матлаб и тут понеслось...
Грендайзер
сообщение Aug 31 2016, 12:20
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Здравствуйте. Начал изучать матлаб и появилось несколько вопросов на которые никак не найду ответов. Вопросы глупые конечно, но практики маловато так что...
1) Имею значения коэффициентов передаточной ф-ции (допустим фильтра), ну и хочу посмотреть его АЧХ, для этого мне надо построить его дискретное преобразование фурье, т.е.
h(n) = h(n0) + h(n1) + ... + h(N-1);
H(jw) = h(0) + h(n1)*exp(-jw) + h(n2)*exp(-2jw) +...+ h(N-1)*exp(-(N-1)jw)
Собственно если коэффициентов h не много всё нормално, но если их количество растёт, то прописывать умножение каждого из них на экспоненту становится нудной задачкой... Вообщем можно это дело как то оптимизировать? Никак не допру... Матлаб ругается, т.к. ему нужно совпадение размера матриц, а круговую частоту w я обычно задаю так w = [1:500]*pi/500 или что то в этом духе, количество же коэффициентов значительно меньше.
2) И ещё, как задать скажем такую ф-цию:
h(n) = sin(n)/n, n /= 0;
h(n) = 1/pi, n = 0;
Пробовал при помощи if, но что то не выходит... 05.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MiPe
сообщение Aug 31 2016, 12:27
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 17-08-11
Пользователь №: 66 760



Цитата(Грендайзер @ Aug 31 2016, 15:20) *
для этого мне надо построить его дискретное преобразование фурье

Ага, а еще вам нужна миллиметровка и карандаш sm.gif
CODE

coef = tf([1 1],[0.5 1 1]);
bode(coef)


Цитата(Грендайзер @ Aug 31 2016, 15:20) *
2) И ещё, как задать скажем такую ф-цию:
h(n) = sin(n)/n, n /= 0;
h(n) = 1/pi, n = 0;
Пробовал при помощи if, но что то не выходит... 05.gif

А вы покажите, как вы пробовали, а мы поможем...
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 31 2016, 13:01
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Ничё се biggrin.gif

Цитата(MiPe @ Aug 31 2016, 15:27) *
А вы покажите, как вы пробовали, а мы поможем...


Вот так:

if n == 0
h = w/pi
else
h = sin(w*n)/n*pi
end

От так 05.gif
Go to the top of the page
 
+Quote Post
MiPe
сообщение Aug 31 2016, 13:09
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 17-08-11
Пользователь №: 66 760



Цитата(Грендайзер @ Aug 31 2016, 16:01) *
Вот так:

if n == 0
h = w/pi
else
h = sin(w*n)/n*pi
end

От так 05.gif

Такая запись должна работать для скалярных n. Если у вас n - вектор (MATLAB же), то лучше как-то так:

CODE
function h = myfun(n)
h = sin(n)./n;
h(n == 0) = 1/pi;


А потом можно делать так:
CODE
plot(myfun(-2:0.1:2))
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Грендайзер   Как задать значения ф-ций   Aug 31 2016, 12:20
- - Грендайзер   Ух ты, спасибо за помощь Правда с функцией tf не...   Aug 31 2016, 13:19
|- - MiPe   Цитата(Грендайзер @ Aug 31 2016, 16:19) У...   Aug 31 2016, 13:24
- - Tpeck   Цитата(Грендайзер @ Aug 31 2016, 15:20) З...   Aug 31 2016, 14:27
|- - alex_os   Если передаточная ф-я фильтра то можно freqz: fr...   Aug 31 2016, 14:53
- - Grizzzly   Цитата(Грендайзер @ Aug 31 2016, 15:20) 2...   Aug 31 2016, 15:45
- - Грендайзер   ЦитатаПочитайте книгу Matlab для студента. Спасибо...   Sep 1 2016, 08:05
|- - Grizzzly   Цитата(Грендайзер @ Sep 1 2016, 11:05) do...   Sep 1 2016, 08:08
- - Грендайзер   ЦитатаДа, это обычный синк. Ясно, спасибо. Правда ...   Sep 1 2016, 08:21
- - Грендайзер   Снова здравствуйте. Продолжаю осваивать Matlab и т...   Sep 15 2016, 12:31
|- - mdmitry   Цитата(Грендайзер @ Sep 15 2016, 16:31) С...   Sep 15 2016, 12:39
- - Грендайзер   Я пробовал использовать эту ф-цию... но всё стало ...   Sep 15 2016, 13:35
|- - mdmitry   Цитата(Грендайзер @ Sep 15 2016, 17:35) Я...   Sep 15 2016, 14:54
||- - Грендайзер   Цитата(mdmitry @ Sep 15 2016, 17:54) Я не...   Sep 15 2016, 16:57
||- - Grizzzly   Цитата(Грендайзер @ Sep 15 2016, 19:57) И...   Sep 15 2016, 18:01
|- - Grizzzly   Цитата(Грендайзер @ Sep 15 2016, 16:35) Я...   Sep 15 2016, 15:17
- - Грендайзер   Сейчас ситуация поменялась. Всёравно не совсем пон...   Sep 15 2016, 18:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016