Я обвязку достичь синусоидальной волны постепенно изменяющейся от 8Hz
к 2Hz
через 5
секунд:Найти начальную точку (время) каждый цикл синусоиды
Этот сигнал был произведен в Cool Edit. Я дал ему начальную частоту 8Hz
, конечную частоту 2Hz
и длительность 5
секунд. Синусоидальная волна постепенно меняется от одной частоты к другой в течение данного времени.
Мой вопрос: как я могу точно определить время начала каждого цикла (выделено красной точкой), используя цикл FOR?
Псевдо код:
time = 5 //Duration
freq1 = 8 //Start frequency
freq2 = 2 //End frequency
cycles = ((freq1 + freq2)/2) * time //Total number of cycles
for(i = 0; i < cycles; i++) {
/* Formula to find start time of each cycle */
}
@DavidTansey изменение знака обнаруживает все пересечения нуля, и только половина из них является 'phase = 0', но я думаю, что проблема заключается в генерации такого сигнала, чтобы не найти нулевые пересечения. Это была просто попытка новичков приблизиться к этому, создавая отдельные грешные волны, которые для этого неправильны. – Spektre