как генерировать амплитудно-модулированную синусоидальную волну в iphone SDK? - PullRequest
0 голосов
/ 21 января 2011

Мне нужно получить амплитуду во время записи. Из этого я должен построить синусоидальную амплитудно-модулированную волну. Как получить амплитуду звука? Пожалуйста, дайте мне предложения.

1 Ответ

0 голосов
/ 20 октября 2011

Просто генерировать синусоидальную волну проще.Итак, я реализовал синусоидальную волну в методе рисования UIView следующим образом:

float x=75;
float yc=50;
float w=0; 
 while (w<=rect.frame.size.width) {
CGPathMoveToPoint(path, nil, w,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+x/4, -yc,w+ x/2, y/2);
CGPathMoveToPoint(path, nil, w+x/2,y/2);
CGPathAddQuadCurveToPoint(path, nil, w+3*x/4, y+yc, w+x, y/2);
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathStroke);
w+=x;
}

Здесь x - ширина каждой синусоидальной волны, а y - высота кадра.Это нарисует число синусоидальных волн, чтобы уместиться во всем UIViewFrame.Он будет производить четкую синусоидальную волну, а yc - ручку управления.Попробуйте, вам может понравиться.

Если ширина т.е.x аналогичен ширине кадра, тогда будет получена одиночная синусоида.

Количество полной синусоидальной волны = (ширина кадра) / ('x' ширина каждой синусоидальной волны) Теперь попробуйтеотрегулируйте амплитуду и частоту волны относительно мощности звука.

...