Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

можно ко из Matlab положить на язык CCS v3.1 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Линейная и разветвленная структура http://www.cyberforum.ru/cpp-beginners/thread575215.html
Кто поможет, за раннее спасибо) 1.Дано значение угла α в градусах (0 < α < 360). Определить значение этого же угла в радианах, учитывая, что 180° = π радианов. В качестве значения π использовать...
C++ Помогите создать меню в консоли Есть код игры змейка и надо сделать меню тут же в консоли, самое простое, в котором есть 'Старт' и 'Выход', а выбор осуществляется курсором, который двигается вверх и вниз : #include <time.h> ... http://www.cyberforum.ru/cpp-beginners/thread575198.html
C++ Сохранение изменений после выхода
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { Integer answer; // True, если нет изменений if ( GIS->MustSave() ) { TMsgDlgButtons btn ; btn << mbYes << mbNo...
Найти индексы всех целых чисел в массиве C++
В массиве с n действительных чисел найти индексы всех целых чисел. Пробывала сделать вот так..но что-то оно не работает. Помогите доделать. Заранее спасибо)) #include<iostream.h>...
C++ Проблема с базой данных Access в С++. http://www.cyberforum.ru/cpp-beginners/thread575149.html
Здравствуйте. Есть у меня исходник программы, что-то напоминающей телефонную книжку. Программа написана через Windows Forms. Компиляция проходит без ошибок, но при запуске программы выходит ошибка:...
C++ Задача на счастливые билеты Уважаемые господа ! Будте добры , помогите решить задачку. Имееться билет с шестизначным номером(числом). Билет считаеться счастливым если сумма первых трех цифр равна сумме трех последних, на... подробнее

Показать сообщение отдельно
Настёна_19
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 50

можно ко из Matlab положить на язык CCS v3.1 - C++

15.05.2012, 20:36. Просмотров 997. Ответов 17
Метки (Все метки)

достаточно только перевести в язык си....
если вдруг необходимо....

задание: нужно составить рабочий код для "расчета и программной реализации равнополосного банка цифровых фильтров на DSP TMS320VC5510"

исходные данные к проекту :
тип фильтра - полосовой;
аппроксимация - по Чебышеву;
частота дискретизации - 16кГц;
количество полос - 4;
Ширина полосы - 2кГц;

вот код matlab:
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
Равнополосный, максимально децимированный, параунитарный:
function [X] = dct02a(x, K, h)
%Равнополосный, максимально децимированный, параунитарный
%косинусно-модулированный банк фильтров - анализатор
%Вход:
% x - анализируемый сигнал
% K - количество каналов
% h - коэффициенты фильтра-прототипа LP FIR (fc = pi / (2*K))
%Выход:
% X - матрица сигналов каналов банка фильтра
%Подготовка фильтра-прототипа
if mod(length(h), 2 * K),
h(2 * K * ceil(length(h) / (2 * K))) = 0;
end;
h = reshape(h, 2 * K, length(h) / (2 * K)) * K;
h(:, 2 : 2 : size(h, 2)) = -h(:, 2 : 2 : size(h, 2));
g = zeros(2 * K, 2 * size(h, 2));
g(1 : K, 1 : 2 : size(g, 2)) = h(1 : K, :);
g(K + 1 : 2 * K, 2 : 2 : size(g, 2)) = h(K + 1 : 2 * K, :);
if mod(length(x), K),
x(K * ceil(length(x) / K)) = 0;
end;
%Сортировка входных отсчетов на каналы
X = repmat(reshape(x, K, length(x) / K), 2, 1);
%Полифазная фильтрация
for k = 1 : (2 * K),
X(k, :) = filter(g(k, :), 1, X(k, :));
end;
%Подготовка модуляционной матрицы
for k = 1 : K,
for l = 1 : (2 * K),
c(k, l) = 2*cos((k-0.5) * (pi/K) * (l-0.5) + (-1 ^ (k-1)) * pi/4);
end;
end;
%Модуляция
X = c * X;
function [y] = dct02s(X, h)
%Равнополосный, максимально децимированный, параунитарный
%косинусно-модулированный банк фильтров - синтезатор
%Вход:
% X - матрица с сигналами каналов банка фильтров
% h - коэффициенты фильтра-прототипа LP FIR (fc = pi / (2*K))
%Выход:
% y - синтезированный сигнал
%Определение количества каналов
K = size(X, 1);
%Подготовка фильтра-прототипа
if mod(length(h), 2 * K),
h(2 * K * ceil(length(h) / (2 * K))) = 0;
end;
h = reshape(h, 2 * K, length(h) / (2 * K));
37
h(:, 1 : 2 : size(h, 2)) = -h(:, 1 : 2 : size(h, 2));
g = zeros(2 * K, 2 * size(h, 2));
g(1 : K, 1 : 2 : size(g, 2)) = h(1 : K, :);
g(K + 1 : 2 * K, 2 : 2 : size(g, 2)) = h(K + 1 : 2 * K, :);
%Формирование модуляционной матрицы
for k = 1 : K,
for l = 1 : (2 * K),
c(k, l) = 2*cos((k-0.5) * (pi/K) * (l-0.5) + (-1 ^ (k-1)) * pi/4);
end;
end;
%Модуляция
Y = c' * X;
%Полифазная фильтрация
f = flipud(g);
for k = 1 : K,
Y(k, :) = filter(f(k, :), 1, Y(k, :));
Y(k + K, :) = filter(f(k + K, :), 1, Y(k + K, :));
end;
%Реконструкция сигнала
y = zeros(K, size(Y, 2));
for k = 1 : K,
y(k, :) = Y(k, :) + Y(k + K, :);
end;
y = y(:);
Добавлено через 4 часа 12 минут
буду благодарна очень помощи!

Добавлено через 1 час 37 минут
откликнитесь, пожалуйста хоть кто - нибудь ... возможно ли это ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru