Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2011, 23:18   #1
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию Перевести код из C++ в C#

Здравствуйте уважаемые!
Уже не знаю,что делать,так как в C++ вообще ноль,а в C# не очень силён.Помогите перевести сие код
Код:
//pszBuffer-буфер со звуковыми данными (в данном примере 16бит т.е. 1 отсчёт два байта)
            //BufferLength-длина буфера в байтах
            //разрядность БПФ
            int NBPF=4096;
            //число прочитанных байт
            int NUMBER_BYTES_READ = NBPF * 2;
            //функция с двумя параметрами: массивом, и переменной
            //(необходима для склеивания)
union
{char cData[2];
short int siData;} uData;
//среднеэнергетический спектр сигнала
double MeanSp[NBPF];
//Обнуляем среднеэнергетический спектр сигнала
for(int i = 0; i < NBPF; i++)
{ MeanSp[i]=0; }
//действительная и комплексная части массива
double SQ[NBPF] = { 0 };
double SW[NBPF] = { 0 };
//для быстродействия ПК, делаем два цикла
//количество реализаций (разбиваем файл на реализации,и для каждого вычисляем БПФ)
int numberRealiz = BufferLength / (NBPF * 2);
//проходим по всем реализациям в файле
for (UInt32 curRealiz = 0; curRealiz < numberRealiz; curRealiz++)
{
for (int i = 0; i < NBPF; i++)
{
uData.cData[ 0 ] = pszBuffer[2 * i +
(curRealiz * NUMBER_BYTES_READ)];
uData.cData[ 1 ] = pszBuffer[2 * i +
(curRealiz * NUMBER_BYTES_READ) + 1];

//используем окошко Хеннинга
SQ[i] = uData.siData * cos(M_PI * (double(i) / NBPF - 0.5));
SW[i]= 0.0; //обнуляем мнимые составляющие
}

//проводим преобразование фурье
FFT(SQ, SW, NBPF, NAPR);
//накапливаем среднеэнергетический спектр
for(int j = 0; j < NBPF;j++)
{
MeanSp[j] = MeanSp[j] + (SQ[j] * SQ[j] + SW[j] * SW[j])/(UInt32(1000) * NBPF * numberRealiz);
}
}
Особенно меня клинит на union и дальнейшая с ней работа.
Dj_SheLL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести код с Pascal на C++ panic_a Помощь студентам 2 22.12.2010 00:37
С++ перевести код Денис999 Помощь студентам 0 26.10.2010 22:47
Перевести код на C++ mela Помощь студентам 3 01.06.2010 22:35
Перевести код с VB на C# LT. Общие вопросы .NET 2 25.05.2010 19:21
Перевести код на Делфи Superlotles Помощь студентам 7 30.03.2010 20:18