Здравствуйте, появился вопрос касаемо работы в Mathcad. Необходимо задать сигнал из суммы трех синусов с разными амплитудами и частотами, провести прямое преобразование фурье и получить пики, далее - вопрос №5104668

провести обратное преобразование, подскажите как это сделать? Заранее спасибо, сделать надо вручную без FFT и iFFT
20.03.23
1 ответ

Ответы

Для задания сигнала из суммы трех синусов в Mathcad можно использовать функцию sin с нужными амплитудами и частотами, например:

css

A1 := 2;
A2 := 3;
A3 := 1;
f1 := 50;
f2 := 100;
f3 := 200;
t := 0..0.1..1;
x := A1*sin(2*Pi*f1*t) + A2*sin(2*Pi*f2*t) + A3*sin(2*Pi*f3*t);

где A1, A2, A3 — амплитуды синусов, f1, f2, f3 — частоты синусов, t — диапазон времени, x — заданный сигнал.

Чтобы провести прямое преобразование Фурье, можно использовать функцию integral, например:

css

N := 256;
df := 1;
f := 0..(N-1)*df..N*df;
X := [];
for k from 0 to N-1 do
  X[k+1] := integral(x*exp(-2*Pi*I*k*f/N),t,0,1);
end for;

где N — количество отсчетов для преобразования, df — шаг частоты, f — диапазон частот, X — массив значений преобразования.

Для получения пиков можно использовать функцию max, например:

css

[Xmax, kmax] := max(abs(X));
fmax := f[kmax];

где Xmax — максимальное значение преобразования, kmax — номер отсчета для максимального значения, fmax — соответствующая частота.

Для проведения обратного преобразования Фурье можно использовать функцию sum, например:

mathematica

y := sum(X[k+1]*exp(2*Pi*I*k*fmax*t), k, 0, N-1)/N;

где y — восстановленный сигнал.

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

Глеб Черняк

Сейчас на сайте
Читать ответы

Олег Николаевич

Читать ответы

Георгий

Читать ответы
Посмотреть всех экспертов из раздела Технологии
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store