Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Matlab Быстрое преобразование Фурье. Нужно определить частоты и амплитуды сигналов. https://www.cyberforum.ru/ matlab/ thread576901.html
Здравствуйте, Уважаемые. Нужна ваша помощь. Нужно определить частоты и амплитуды сигналов. Из исходных данных лишь точки некоторой кривой. Смотрел различные примеры функции fft(), но везде сигнал имитируется самим матлабом и известны дискретность и некоторые другие данные, у меня же нет ничего этого =( Помогите пожалуйста разобраться...
Matlab Разработать функцию print(), которая содержимое данного файла выводит в командное окно
Разработать функцию print(), которая содержимое данного файла выводит в командное окно, вставляя в начало каждой строки ее порядковый номер( 4-ех значное число с последующим пробелом, например 0012) Предполагаю, что начало такое, а вот с входными параметрами, самим алгоритмом и программой затрудняюсь function print(filename,... ) % проверка принадлежности входных параметров к классу Char...
Matlab Готовая программа не запускается в Matlab есть готовый вариант программы, но она не запускается у меня в матлабе.. матлаб установлен 11ый, а написана программа для 6го.. может ли это быть причиной? программа идёт в качестве приложения к диссертации.. мне кажется там не должно быть ошибок, но у меня упорно не работает((( function Freq_Sim_Mtrx = Frequency_Pois_Generation(lambda, Corr_Matrix, sim_count) busines_lines = 3;... https://www.cyberforum.ru/ matlab/ thread576806.html Matlab Построение графиков по функции с экспонентой https://www.cyberforum.ru/ matlab/ thread576557.html
у меня есть функция y(x)=79.6+167.8*sin(241*x+4.038)*exp(-462.7*x) в mathcad дальше чем с -32 степенью экспонеты не строит.. а в matlab не знаю как забить.. без экспоненты строю через plot все нормально, но с ней выдает ошибку: ??? Error using ==> mtimes Inner matrix dimensions must agree. Подскажите пожалуйста как забить эту функцию
Matlab Управлять временем блока по воздействию управляющего сигнал
Добрый день. Возник вопрос- существует ли блок в Simulinke?, который управляет временем, т.е. к примеру по управляющему сигналу запускает время блока с нуля, в то время как управляющий сигнал пришел в определенное время не равное нулю. Если нет. то может кто подскажит как решить такую задачу. Вообще говоря задача состоит в том, что есть определенный график с максим. значением величины y (оно...
Matlab Как правильно написать программу в MATLABе для кепстрального анализа сигнала? Дорогие мои,очень надо)как правильно написать программу в MATLABе для кепстрального анализа сигнала?Я новичок в этом деле и мне нужен дельный совет. :scratch:Заранее спасибо https://www.cyberforum.ru/ matlab/ thread575938.html
Matlab Ошибка: Using a default value of 0.2 for maximum step size. https://www.cyberforum.ru/ matlab/ thread575897.html
Помогите с проблемкой пожалуйста! Что не так делаю? Warning: Using a default value of 0.2 for maximum step size. The simulation step size will be equal to or less than this value. You can disable this diagnostic by setting 'Automatic solver parameter selection' diagnostic to 'none' in the Diagnostics page of the configuration parameters dialog Что исправить нужно?
Построить график автокорреляционной функции. Matlab
Помогите построить график автокорреляционной функции
Matlab Кластерный анализ в Matlab Генерация случайных чисел по Геометрическому закону распределения. Из них создается матрица из N строк (наблюдений) и 2 или 3 столбцов (признаков). Половина строк принадлежит одному классу, другая половина - другому. Чтобы получить данные из разных классов, к сгенерированным числам прибавляется положительная или отрицательная добавка. Метод нечеткой классификации Сделал генерацию... А вот на... https://www.cyberforum.ru/ matlab/ thread575462.html Matlab Найти ошибку в программе: not a valid variable name https://www.cyberforum.ru/ matlab/ thread575231.html
Здравствуйте. Помогите, пожалуйста, найти ошибку в программе. syms dr0_1 dr0_2 ax ay az cos(alphax) sin(alphax) cos(alphay) sin(alphay) cos(alphaz) sin(alphaz) dalpha1x dalpha1y... dalpha1z da1x da1y da1z dalpha2x dalpha2y... dalpha2z da2x da2y da2z r1 r2 ...dr=; M1=M1x*M1y*M1z; ...M2=M2x*M2y*M2z; M1x=;
Построить три треугольника для расстояния и три треуг для мощности. Matlab
Думаю для вас вопрос будет не сложный, это я первый раз сталкиваюсь с нечеткой логикой и matlab. Вобщем есть мобильный робот, который определяет препятсвие на расстоянии 4...30 см и объезжает его самостоятельно, регулируя мощность передаваемую на колеса 150...255.В матлабе мне нужно построить три треугольника для расстояния и три треуг для мощности.Мне не понятно как определить координаты каждой...
Matlab Получить подматрицу, которая будет содержать элементы заданного массива Привет! Подскажите пожалуйста, что не так? И можно ли вообще в матлабе так записывать в массив? for qq = 0 : 1 : Q b = 0; for B = q*T : 1 : 99+qq*100 x() = z(); b = 0 : 99; end end https://www.cyberforum.ru/ matlab/ thread574992.html
3 / 3 / 1
Регистрация: 05.05.2014
Сообщений: 75
01.04.2015, 00:44 0

Смысл функции filter. Перевести код функции filter в C++ - Matlab - Ответ 7416685

01.04.2015, 00:44. Показов 6807. Ответов 7
Метки (Все метки)

Ответ

Flamе, а как понять, какой нужен order? Альфа ритм выдает ошибку..
C#
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
            //50hz
            int order = 2;
            double[] t = new double[order + 1];
            double[] b = {0.98300511284837244, 0.24971833246806957, 0.98300511284837244};
            double[] a = {1, 0.24971833246806957, 0.96601022569674488};
            double[] y = new double[num];
            filter(order, a, b, num, L1, y, t); 
            chart4.Series[0].Points.DataBindXY(Lx,y);
            chart4.ChartAreas[0].AxisX.Minimum = 0;
            chart4.ChartAreas[0].AxisX.Maximum = 925;
            //lowpass
            double[] t2 = new double[order + 1];
            double[] b2 = { 0.059560596234149672,0.23824238493659869,0.35736357740489805,0.23824238493659869,0.059560596234149672 };
            double[] a2 = {  1,-0.52804595798372822,0.57428885374252248,-0.11645534850163169,0.023181992489232316 };
            double[] y2 = new double[num];
            filter(order, a2, b2, num, L1, y2, t2);
            chart5.Series[0].Points.DataBindXY(Lx, y2);
            chart5.ChartAreas[0].AxisX.Minimum = 0;
            chart5.ChartAreas[0].AxisX.Maximum = 925;
            //alpha-rhythm
            double[] t3 = new double[order + 1];
            double[] b3 = {0.000042022232781020762, 0, -0.00016808893112408305, 0, 0.00025213339668612457, 0, -0.00016808893112408305, 0, 0.000042022232781020762};
            double[] a3 = {1, -7.1066864371216631, 22.515295948777023, -41.498099095062784, 48.645183603782698, -37.132329737715914, 18.027451528765006, -5.0918788345024755, 0.64122389961493442};
            double[] y3 = new double[num];
            filter(order, a3, b3, num, L1, y3, t3);
            chart7.Series[0].Points.DataBindXY(Lx, y3);
            chart7.ChartAreas[0].AxisX.Minimum = 0;
            chart7.ChartAreas[0].AxisX.Maximum = 925;
         }
 private void filter(int ord, double[] a, double[] b, int length, double[] x, double[] y, double[] t)
    {
 
        for (int i = 0; i < length; i++)
        {
            double xi = x[i];
            t[0] = b[0] * xi + t[0];
            double t0 = t[0];
            for (int j = 0; j < ord-1; j++)
            {
                t[j] = b[j+1] * xi - a[j+1] * t0 + t[j + 1];
            }
            t[ord-1] = b[ord] * xi - a[ord] * t0;
            y[i] = a[0] * t0;
        }
        t = null;
    }
Добавлено через 12 минут
vital792, можете просмотреть код? В чем ошибка? Почему не работают банд-пасс фильтры для выделения ритмов? Фильтры 50гц и фнч работают.
C#
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
     //50hz
            int order = 2;
            double[] t = new double[order + 1];
            double[] b = {0.98300511284837244, 0.24971833246806957, 0.98300511284837244};
            double[] a = {1, 0.24971833246806957, 0.96601022569674488};
            double[] y = new double[num];
            filter(order, a, b, num, L1, y, t); 
            chart4.Series[0].Points.DataBindXY(Lx,y);
            chart4.ChartAreas[0].AxisX.Minimum = 0;
            chart4.ChartAreas[0].AxisX.Maximum = 925;
            //lowpass
            double[] t2 = new double[order + 1];
            double[] b2 = { 0.059560596234149672,0.23824238493659869,0.35736357740489805,0.23824238493659869,0.059560596234149672 };
            double[] a2 = {  1,-0.52804595798372822,0.57428885374252248,-0.11645534850163169,0.023181992489232316 };
            double[] y2 = new double[num];
            filter(order, a2, b2, num, L1, y2, t2);
            chart5.Series[0].Points.DataBindXY(Lx, y2);
            chart5.ChartAreas[0].AxisX.Minimum = 0;
            chart5.ChartAreas[0].AxisX.Maximum = 925;
            //alpha-rhythm
            double[] t3 = new double[order + 1];
            double[] b3 = {0.000042022232781020762, 0, -0.00016808893112408305, 0, 0.00025213339668612457, 0, -0.00016808893112408305, 0, 0.000042022232781020762};
            double[] a3 = {1, -7.1066864371216631, 22.515295948777023, -41.498099095062784, 48.645183603782698, -37.132329737715914, 18.027451528765006, -5.0918788345024755, 0.64122389961493442};
            double[] y3 = new double[num];
            filter(order, a3, b3, num, L1, y3, t3);
            chart7.Series[0].Points.DataBindXY(Lx, y3);
            //chart7.ChartAreas[0].AxisX.Minimum = 0;
            //chart7.ChartAreas[0].AxisX.Maximum = 925;
            //beta-rhythm
            double[] t4 = new double[order + 1];
            double[] b4 = { 0.015014740623995418, 0 -0.060058962495981673, 0, 0.090088443743972513, 0, -0.060058962495981673, 0, 0.015014740623995418};
            double[] a4 = {1, -3.8483506604531263, 7.4219375225148241, -9.2412355487591089, 8.1272387364941743, -5.1014790793630498, 2.2315198084593453, -0.62514756293261808, 0.0907551178832674};
            double[] y4 = new double[num];
            filter(order, a4, b4, num, L1, y4, t4);
            chart8.Series[0].Points.DataBindXY(Lx, y4);
            chart8.ChartAreas[0].AxisX.Minimum = 0;
            chart8.ChartAreas[0].AxisX.Maximum = 925;
            //delta-rhythm
            double[] t5 = new double[order + 1];
            double[] b5 = { 0.0000029142055881038877, 0, -0.000011656822352415551, 0, 0.000017485233528623325, 0, -0.000011656822352415551, 0, 0.0000029142055881038877};
            double[] a5 = {1, -7.7714250554471498, 26.432110976797333, -51.389986320680549, 62.46829391139503, -48.615650506783084, 23.655312859527022, -6.5796087124733509, 0.80095284767278929};
            double[] y5 = new double[num];
            filter(order, a5, b5, num, L1, y5, t5);
            chart6.Series[0].Points.DataBindXY(Lx, y5);
            chart6.ChartAreas[0].AxisX.Minimum = 0;
            chart6.ChartAreas[0].AxisX.Maximum = 925;
            //teta-rhythm
            double[] t6 = new double[order + 1];
            double[] b6 = {0.0000012194060670318125, 0, -0.0000048776242681272498, 0, 0.0000073164364021908743, 0, -0.0000048776242681272498, 0, 0.0000012194060670318125};
            double[] a6 = {1, -7.7144455673812846, 26.143432615848749, -50.832116666968687, 62.020956046008855, -48.625039856626231, 23.92252106319896, -6.7526345681114215, 0.83732746738682529};
            double[] y6 = new double[num];
            filter(order, a6, b6, num, L1, y6, t6);
            chart9.Series[0].Points.DataBindXY(Lx, y6);
            chart9.ChartAreas[0].AxisX.Minimum = 0;
            chart9.ChartAreas[0].AxisX.Maximum = 925;
         }
 private void filter(int ord, double[] a, double[] b, int length, double[] x, double[] y, double[] t)
    {
 
        for (int i = 0; i < length; i++)
        {
            double xi = x[i];
            t[0] = b[0] * xi + t[0];
            double t0 = t[0];
            for (int j = 0; j < ord-1; j++)
            {
                t[j] = b[j+1] * xi - a[j+1] * t0 + t[j + 1];
            }
            t[ord-1] = b[ord] * xi - a[ord] * t0;
            y[i] = a[0] * t0;
        }
        t = null;
    }


Вернуться к обсуждению:
Смысл функции filter. Перевести код функции filter в C++ Matlab
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2015, 00:44
Готовые ответы и решения:

Фильтрация сигнала (создать аналог функции filter на С#)
Привет! Помогите, пожалуйста, создать функцию фильтра, подобную функции MatLabа = filter(b, a, x,...

Использование собственной функции в BindingSource Filter
Добрый день ! Стоит задача фильтровать данные в BindingSource с использованием своей функции....

Можно ли в функции высшего порядка filter получить номер элемента входящего списка
Можно ли в функции высшего порядка filter получить номер элемента входящего списка lst...

Напишите функцию String->String, удаляющую из строки все гласные буквы используя функции filter и elem
Помогите, пожалуйста решить задачу. Напишите функцию String-&gt;String, удаляющую из строки все...

7
01.04.2015, 00:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2015, 00:44
Помогаю со студенческими работами здесь

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

Filter
Почему нельзя сделать так: Private Sub Combo33_Change() Me.Filter = &quot;Name = Combo33.Value&quot; End...

FS Filter
Нужно написать драйвер-фильтр файловой системы. Есть юзермодное приложение, в котором задаются...

Filter
Скажите пожалуйста как решить проблему с пробелами при фильтрации не работает и в combobox и в edit...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru