Matlab: как найти частоту, амплитуду и фазу синусоидальной функции с линейно возрастающей частотой и фазой?

Я пытаюсь рассчитать амплитудную и частотную модуляцию, а также фазу синусоидальной функции.

Функция описывается следующим образом:

fs = 128;
x1 = 1/fs:1/fs:1;
A1 = 50*x1;
B1 = 10*x1;
C1 = 1;
D1 = 1;
y1 = D1 + A1.*sin(C1 + B1.*x1);

В результате я получил синусоидальную функцию. Его амплитуда и частота увеличиваются со временем и зависят от времени. Мне нужно использовать только 128 сэмплов, поэтому частота дискретизации была изменена на 128 Гц.

Теперь, если предположить, что я НЕ знаю параметры A1, B1, C1 или D1, а знаю только частоту дискретизации и результат «y1», можно ли рассчитать все эти параметры?

Я хотел бы иметь возможность определять частоту, амплитуду и сдвиг функции в любой момент времени.

Я знаю, что можно рассчитать все это для функции со стабильными параметрами несколькими способами, я лично пробовал это:

zastep2 = 1 + 40.*sin(1 + 10.*x1);

 x = x1';
 y = zastep2';

 calc = @(d) [ones(size(x)),sin(d*x),cos(d*x)]\y;
 calc2 = @(d) sum((y-[ones(size(x)),sin(d*x),cos(d*x)]*calc(d)).^2);

 Bw = fminbnd(calc2,1,50) 
 abb = calc(Bw);
 Dw = abb(1)
 Aw = norm(abb([2 3])) 
 Cw = acos(abb(2)/Aw) 

«zastep2» используется для имитации функции с неизменяющимися параметрами. В итоге получаю значения Dw=1, Cw=1, Aw=40 и Bw=10, так что все в порядке.

Проблема в том, что амплитуда и частота моей функции линейно увеличиваются с каждым шагом, поэтому использование такого решения невозможно.

Есть ли способ вычислить их, если и частота, и амплитуда увеличиваются с каждым шагом? Я, конечно, не прошу мгновенного решения или полного кода, но я действительно застрял на этом, и после некоторого поиска в Интернете решил задать свой вопрос.


person Kamil Górecki    schedule 03.06.2017    source источник


Ответы (1)


Вместо того, чтобы вычислять фактические параметры A1, B1, C1 или D1, вы можете оценить их, если у вас есть y1 и частота дискретизации. Вы можете использовать нижнюю границу Крамера Рао или максимальную вероятность, чтобы найти довольно хорошую оценку для этих параметров, поскольку вы уже знаете частоту дискретизации, а результат y1, оценка оказывается довольно близкой к исходным значениям.

https://en.wikipedia.org/wiki/Estimation_theory

person Mayank Mehra    schedule 04.06.2017