Форум программистов, компьютерный форум, киберфорум
MathCAD
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15

Хемминг в маткаде (перевод программы из Matlab'a в Mathcad)

15.12.2013, 20:13. Показов 6045. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Возник такой вопрос. У меня есть файл матлаба в котором реализовано кодирование и декодирование методом Хемминга. Возможно ли это реализовать в маткаде и кто может помочь с некоторыми функциями? Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2013, 20:13
Ответы с готовыми решениями:

Перевод программы из Pascal в Mathcad
Господа, выручайте новичка..Блин три строчки не могу сообразить как сделать с этими циклами, весь мозг сломал..чувствую истина близка, но...

Сделано в Маткаде (made in Mathcad)
Пришлось повозиться с избавлением от перекручивания отдельных сечений.Еще нужно убрать имеющиеся наложения отдельных сечений.

Поворот синусоиды в Маткаде (MathCAD)
Спасайте ребята!!! Дана функция y(x)=R*sin(2pi*x+pi/2)+R, где R - constanta, функция задана на интервале от 0,2 до 0,4(но это не столь...

3
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
15.12.2013, 21:36
Быстрее всего Вы дождетесь ответа в разделе форума Фриланс/Заказать работу в программе...
0
Эксперт по математике/физике
1505 / 1026 / 159
Регистрация: 12.06.2012
Сообщений: 2,083
16.12.2013, 11:16
Цитата Сообщение от Reginka1995 Посмотреть сообщение
Добрый день. Возник такой вопрос. У меня есть файл матлаба в котором реализовано кодирование и декодирование методом Хемминга. Возможно ли это реализовать в маткаде и кто может помочь с некоторыми функциями? Заранее спасибо
Приведите код из ".m" файла.
0
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
16.12.2013, 22:26  [ТС]
Кодер:
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
function Y = KOD_H
fid = fopen('a.txt', 'r');     % открытие файла на запись 
if fid == -1                     % проверка корректности открытия 
    error('File is not opened'); 
end 
Tmp = fread (fid, 'char');
fclose(fid);                % закрытие файла 
Array = Tmp;
S = size (Array);
s = S(1);
 
%ЗАНЕСЕНИЕ ИСХОДНЫХ ДАННЫХ В ДВОИЧНУЮ МАТРИЦУ
Rassh=zeros(s,12);
for i=1:S(1)
    ra = Array(i);
    step = 0;
    for j=12:-1:1
        if (j==1 || j==2 || j==4 || j==8)
            continue
        end
        sd = bitshift (ra, -step, 1);
        Rassh(i,j) = sd;
        step = step+1;
    end
end
%ВЫЧИСЛЕНИЕ КОНТРОЛЬНЫХ БИТОВ
for i=1:S(1)
    for j=1:4
        n = 2^(j-1);
        sum1 = 0;
        for k = 1:n
            ind = n-1+k;
            while (ind<=12)
                sum1 = bitxor(sum1, Rassh(i,ind));
                ind = ind+(2^j);
            end
        end
        Rassh(i,n)=sum1;
    end
end
%ЗАПИСЬ МАТРИЦЫ В ФАЙЛ
fid = fopen('b.txt','w');
fprintf(fid,'%d',Rassh');
fclose(fid);
 
Y = Rassh;
end
и декодер:

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
function Y = DEKOD_H
s = fopen('b.txt','r+'); 
a = fread(s,'logical'); 
fclose(s);
%ЗАПИСЬ В МАССИВ ПО 12 ЭЛЕМЕНТОВ В СТРОКЕ
size1=size(a);
str1=size1(1);
b=zeros(str1/12,12);
sk1=1;
sb1=1;
for l=1:str1    
    b(sk1,sb1) = bitshift (a(l), 0, 1);
    sb1=sb1+1;
    if sb1==13;
       sk1=sk1+1;
       sb1=1;
    end
end
%ВЫЧИСЛЕНИЕ КОНТРОЛЬНЫХ БИТОВ
size1=size(b);
S=size1(1);
NaN1=zeros(S,4);
NaN2=NaN1;
%сохраненеи контрольных битов в матрицу
for i=1:4
    NaN1(:,i)=b(:,2^(i-1));
    b(:,2^(i-1))=zeros;
end
 
%ПОВТОРНОЕ ВЫЧИСЛЕНИЕ КОНТРОЛЬНЫХ БИТОВ ДЛЯ ПРОВЕРКИ
for i=1:S(1)
    for j=1:4
        n = 2^(j-1);
        sum1 = 0;
        for k = 1:n
            ind = n-1+k;
            while (ind<=12)
                sum1 = bitxor(sum1, b(i,ind));
                ind = ind+(2^j);
            end
        end
        NaN2(i,j)=sum1;
    end
end
 
%ПРОВЕРКА И ИСПРАВЛЕНИЕ ОШИБКИ
 
for i=1:S(1)
    if NaN2(i,:)==NaN1(i,:)
        continue
    end
    ind = 0;
    sm1 = 0;
    sm2 = 0;
    for j=4:-1:1
       d = 2^ind;
       ind = ind+1;
       sm1 = d*NaN1(i,j)+sm1;
       sm2 = d*NaN2(i,j)+sm2;
    end
    sm1=bitxor(sm1,sm2);
    'Найденна и исправлена ошибка'
    b(i,sm1)=not(b(i,sm1));
end
 
b (:,1)=[ ];
b (:,1)=[ ];
b (:,2)=[ ];
b (:,5)=[ ];
 
G=zeros(S(1),1);
for i=1:S(1)
    ind = 0;
    sm1 = 0;
    for j=8:-1:1
       d = 2^ind;
       ind = ind+1;
       sm1 = d*b(i,j)+sm1;
    end
    G(i) = sm1;
end
 
fidl = fopen ('c.txt', 'wb+');
fwrite (fidl, G, 'char');
fclose(fidl);
 
Y = G;
 
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.12.2013, 22:26
Помогаю со студенческими работами здесь

Mathcad как работать (что означают функции в немецком маткаде)?
Кто знает, скажите, что означают функции в немецком маткаде &quot;psat&quot; &quot;Zweiphas&quot; &quot;Einphas&quot; в русском маткаде...

Напишите эту программу в Mathcad (сделана в Maple, как ее реализовать в маткаде не знаю)
restart; f := exp(x); centr_P := proc (f, a, b, n) local i, S; S := 0; for i from 0 to n-1 do S := S+exp(a+(i+1/2)*(b-a)/n) end...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 01.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 31.01.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