MATLAB генерация кода на C

Владимир
Сообщения: 4
Зарегистрирован: 11 янв 2017, 14:25

Re: MATLAB генерация кода на C

Сообщение Владимир »

Спасибо за разъяснение, теперь все стало понятно.

Haroldcrito
Сообщения: 1
Зарегистрирован: 13 июн 2018, 17:01

Re: MATLAB генерация кода на C

Сообщение Haroldcrito »

собственно сабж, мне нужно много валидного и разнообразного кода на matlab

ЗЫ Юзать код буду только для тестов и в качестве подопытного материала, так как в моей дипломке есть такая задача как генерация кода matlab по блок-схеме которую составляет юзер

ЗЗЫ Кто будет посылать в инет, выкладывайте пруфлинки, поисковики и так юзать умею, и пока ничего подходящего не нашел

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: MATLAB генерация кода на C

Сообщение Бахурин Сергей »

может надо от блок схемы идти все таки?

Nikolaev Nikolay
Сообщения: 12
Зарегистрирован: 25 сен 2018, 08:56

Re: MATLAB генерация кода на C

Сообщение Nikolaev Nikolay »

Сергей добрый день!
Все таки не понятно - я смоделировал фильтр в матлабе. Получил заголовок h во float.Фильтр IIR полосовой - получился из 15 секций. Как использовать вашу функцию и подключить заголовок к ней, что бы сразу получать отсчеты с фильтра (они идут с ацп в реальном времени).
Ацп 40 Мгц, центральная частота фильтра 2 Мгц, полоса пропускания 100 кГц.
Заранее спасибО!

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: MATLAB генерация кода на C

Сообщение Бахурин Сергей »

Покажите что получилось в h файле

Nikolaev Nikolay
Сообщения: 12
Зарегистрирован: 25 сен 2018, 08:56

Re: MATLAB генерация кода на C

Сообщение Nikolaev Nikolay »

файл с двойной точностью флоат
что то файл не хочет циплять так выкладываю

/*
* Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool
* Generated by MATLAB(R) 9.3 and Signal Processing Toolbox 7.5.
* Generated on: 25-Sep-2018 10:49:17
*/

/*
* Discrete-Time IIR Filter (real)
* -------------------------------
* Filter Structure : Direct-Form II, Second-Order Sections
* Number of Sections : 15
* Stable : Yes
* Linear Phase : No
*/

/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* C:\Program Files\MATLAB\R2017b\extern\include\tmwtypes.h
*/
#define MWSPT_NSEC 31
const int NL[MWSPT_NSEC] = { 1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1 };
const real64_T NUM[MWSPT_NSEC][3] = {
{
0.008346754613087, 0, 0
},
{
1, 0, -1
},
{
0.008346754613087, 0, 0
},
{
1, 0, -1
},
{
0.008332557467208, 0, 0
},
{
1, 0, -1
},
{
0.008332557467208, 0, 0
},
{
1, 0, -1
},
{
0.008319363193401, 0, 0
},
{
1, 0, -1
},
{
0.008319363193401, 0, 0
},
{
1, 0, -1
},
{
0.008307730798134, 0, 0
},
{
1, 0, -1
},
{
0.008307730798134, 0, 0
},
{
1, 0, -1
},
{
0.008298146529939, 0, 0
},
{
1, 0, -1
},
{
0.008298146529939, 0, 0
},
{
1, 0, -1
},
{
0.008291006412535, 0, 0
},
{
1, 0, -1
},
{
0.008291006412535, 0, 0
},
{
1, 0, -1
},
{
0.008286602782039, 0, 0
},
{
1, 0, -1
},
{
0.008286602782039, 0, 0
},
{
1, 0, -1
},
{
0.008285114792067, 0, 0
},
{
1, 0, -1
},
{
1, 0, 0
}
};
const int DL[MWSPT_NSEC] = { 1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1 };
const real64_T DEN[MWSPT_NSEC][3] = {
{
1, 0, 0
},
{
1, -1.895208177221, 0.9982105360865
},
{
1, 0, 0
},
{
1, -1.905554002402, 0.9982996926238
},
{
1, 0, 0
},
{
1, -1.892137075719, 0.9947247605281
},
{
1, 0, 0
},
{
1, -1.90217190299, 0.9949759729686
},
{
1, 0, 0
},
{
1, -1.889532262437, 0.9914963720074
},
{
1, 0, 0
},
{
1, -1.898789212053, 0.9918653714086
},
{
1, 0, 0
},
{
1, -1.887508483781, 0.988671009659
},
{
1, 0, 0
},
{
1, -1.895542130357, 0.9890936362539
},
{
1, 0, 0
},
{
1, -1.886150232513, 0.9863718569669
},
{
1, 0, 0
},
{
1, -1.892563108308, 0.9867751417616
},
{
1, 0, 0
},
{
1, -1.885508775557, 0.9846943667404
},
{
1, 0, 0
},
{
1, -1.889976624391, 0.9850089883169
},
{
1, 0, 0
},
{
1, -1.885601300933, 0.9837029716518
},
{
1, 0, 0
},
{
1, -1.887894668501, 0.9838750022633
},
{
1, 0, 0
},
{
1, -1.886411989156, 0.9834297704159
},
{
1, 0, 0
}
};

Nikolaev Nikolay
Сообщения: 12
Зарегистрирован: 25 сен 2018, 08:56

Re: MATLAB генерация кода на C

Сообщение Nikolaev Nikolay »

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

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: MATLAB генерация кода на C

Сообщение Бахурин Сергей »

У вас звенья второго порядка. Просто в цикле выход одного надо подать на вход следующего

Nikolaev Nikolay
Сообщения: 12
Зарегистрирован: 25 сен 2018, 08:56

Re: MATLAB генерация кода на C

Сообщение Nikolaev Nikolay »

Сергей подскажите пожалуйста вот это что такое
const int NL[MWSPT_NSEC]
и где тут коэффициенты a и b
{
1, -1.895208177221, 0.9982105360865
},

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: MATLAB генерация кода на C

Сообщение Бахурин Сергей »

Вот есть манускрипт из поколения передающийся
http://spinlab.wpi.edu/courses/ece4703_ ... ii_sos.pdf

Ответить