2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Разложение в ттригонометрический ряд
Сообщение11.09.2008, 15:32 
Есть покзания снятые с датчика(1024 шт) необходимо разложить в ттригонометрический ряд.Прошу подсказать как это сделать или скинуть ссылку. Также если есть возможность то можете подсказать программку для выполнения данной работы.

 
 
 
 
Сообщение12.09.2008, 03:14 
В программу Matlab специально для этого встроена функция fft ("быстрое преобразование Фурье" -- fast Fourier trasformation или что-то типа, не помню).

 
 
 
 
Сообщение12.09.2008, 14:05 
В этом вы правы, но она раскладывает не в тригеометрический ряд а в комплексный, а как с него перейти в тригонометрческий ряд не подскажете?

 
 
 
 
Сообщение12.09.2008, 14:18 
Аватара пользователя
bamper писал(а):
В этом вы правы, но она раскладывает не в тригеометрический ряд а в комплексный, а как с него перейти в тригонометрческий ряд не подскажете?
По формуле $e^{it}  = \cos t + i\sin t$

 
 
 
 
Сообщение12.09.2008, 14:43 
Сорри я немного не правильно выразился как перейти с комплексного в Тригонометрический ряд Фурье Изображение

 
 
 
 
Сообщение12.09.2008, 15:16 
bamper писал(а):
В этом вы правы, но она раскладывает не в тригеометрический ряд а в комплексный, а как с него перейти в тригонометрческий ряд не подскажете?

bamper писал(а):
В этом вы правы, но она раскладывает не в тригеометрический ряд а в комплексный, а как с него перейти в тригонометрческий ряд не подскажете?

Да просто сверните комплексные экспоненты в синусы и косинусы:

$$c_ke^{2\pi ikx)+c_{-k}e^{-2\pi ikx)=(c_k+c_{-k})\cos(2\pi kx)+(c_k-c_{-k})i\,\sin(2\pi kx),$$

откуда

$$a_k=c_k+c_{-k})$$ и $$b_k=i(c_k-c_{-k})$$.

С учётом периодичности коэффициентов, конечно: $c_{-k}\equiv c_{n-k}$, где $n=1024$.

Тут, правда, есть один ньюанец: при чётном количестве узлов последняя гармоника фактически не используется. Ну что ж тут поделаешь -- такая вот особенность дискретных преобразований Фурье.

 
 
 
 
Сообщение17.09.2008, 15:40 
Какой день уже бьюсь, но никак не выходит разложить в ряд=(
Для того чтобы разобраться взял простейшую функцию
sin(x).
x=0:0.5:2*3.1416
y=sin(x)
При помощи matlab разложил в комплексный ряд
-0,061715
0,60525 - 6,3486i
-0,12569 + 0,28599i
-0,11497 + 0,14104i
-0,11211 + 0,081619i
-0,11101 + 0,043863i
-0,1106 + 0,013925i
-0,1106 - 0,013925i
-0,11101 - 0,043863i
-0,11211 - 0,081619i
-0,11497 - 0,14104i
-0,12569 - 0,28599i
0,60525 + 6,3486i
Итак, получилось что коэффициенты таковы:
\[
\begin{gathered}
  c_1  = 6.37 \hfill \\
  c_2  = 0.312 \hfill \\
  c_3  = 0.182 \hfill \\
  c_4  = 0.1382 \hfill \\
  . \hfill \\
  . \hfill \\
  . \hfill \\
  c_{13}  = {\text{6}}{\text{,3774}} \hfill \\ 
\end{gathered} 
\]
после этого нахожу коэф-ты \[a_k\] и \[b_k\] по формулам привиденным выше:
\[
\begin{gathered}
  a_1  = c_1  + c_{ - 1}  = c_1  + c_{13 - 1}  = c_1  + c_{12}  = 6.37 + 0.31 = 6.68 \hfill \\
  b_1  = c_1  - c_{ - 1}  = c_1  - c_{13 - 1}  = c_1  - c_{12}  = 6.37 - 0.31 = 6.06 \hfill \\
  a_2  = c_2  + c_{ - 2}  = c_2  + c_{13 - 2}  = 0.49 \hfill \\
  b_2  = c_2  - c_{ - 2}  = c_2  - c_{13 - 2}  = 0.13 \hfill \\
  a_3  = 0.44 \hfill \\
  b_3  = 0.18 \hfill \\
  . \hfill \\
  . \hfill \\
  . \hfill \\
  a_{13}  = 6.31 \hfill \\
  b_{13}  = 6.43 \hfill \\ 
\end{gathered} 
\]
В итгоге получаю следующий ряд:
\[
{\text{f(x) =  - 0}}{\text{.06 + 6}}{\text{.68cos(x) + 6}}{\text{.05sin(x) + 0}}{\text{.49cos(2x) + 0}}{\text{.13sin(2x) + 0}}{\text{.44cos(3x) + 0}}{\text{.18sin(3x) + }}...{\text{6}}{\text{.31cos(13x) + 6}}{\text{.43sin(13x)}}
\]
Но данное разложение не равно \[\sin (x)\] которое было изначально. Подскажите, где допускаю ошибку.

 
 
 
 
Сообщение18.09.2008, 03:06 
Шаг 0.5 неправильный -- узлы должны быть равноотстоящими. Т.е. последний должен совпадать с правым концом (но не должен использоваться). Вы фактически раскладываете синус на промежутке от 0 до 6.5.

 
 
 
 
Сообщение18.09.2008, 14:57 
Попробовал поменять шаг но ничег не получилось.
\[
\begin{gathered}
  x = 0:\pi/6:2*\pi \hfill \\
  y = \sin (x) \hfill \\ 
\end{gathered} 
\]
но само значение \[\sin (x)\] при \[x = 2\pi\], как вы мне сказали не стал включать в комплексый ряд.Ряд получился таков:
\[
\begin{gathered}
  {\text{  - 0}}{\text{.0000}} \hfill \\
  {\text{ 0}}{\text{.0000  -  6}}{\text{.0000i }} \hfill \\
  {\text{ - 0}}{\text{.0000  +  0}}{\text{.0000i }} \hfill \\
  {\text{ - 0}}{\text{.0000  +  0}}{\text{.0000i }} \hfill \\
  {\text{ - 0}}{\text{.0000  +  0}}{\text{.0000i}} \hfill \\
  {\text{ - 0}}{\text{.0000  +  0}}{\text{.0000i}} \hfill \\
  {\text{   - 0}}{\text{.0000 }} \hfill \\
  {\text{  - 0}}{\text{.0000  -  0}}{\text{.0000i }} \hfill \\
  {\text{ - 0}}{\text{.0000  -  0}}{\text{.0000i }} \hfill \\
  {\text{ - 0}}{\text{.0000  -  0}}{\text{.0000i}} \hfill \\
  {\text{  - 0}}{\text{.0000  -  0}}{\text{.0000i }} \hfill \\
  {\text{ 0}}{\text{.0000  +  6}}{\text{.0000i}} \hfill \\ 
\end{gathered} 
\]
коэф-ты получаются следующие:
\[
\begin{gathered}
  {\text{a}}_{\text{1}} {\text{ = a}}_{{\text{11}}} {\text{ = c}}_{\text{1}} {\text{ + c}}_{{\text{12 - 1}}} {\text{ = c}}_{\text{1}} {\text{ + c}}_{{\text{11}}} {\text{ = 6 + 6 = 12}} \hfill \\
  {\text{a}}_{\text{2}}^{} {\text{ = a}}_{\text{3}} {\text{ = }}...{\text{ = a}}_{{\text{10}}} {\text{ = 0}} \hfill \\
  b_1  = b_2  = ... = b_{11}  = 0 \hfill \\ 
\end{gathered} 
\]
\[
f(x) = 12\cos x + 12\cos (12*x)
\]
И опять выходит что полученная функуция не равняется исходной.

 
 
 
 
Сообщение18.09.2008, 17:42 
ну, положим, у Вас получается всё же не косинус икса, а именно синус -- при вычитании цэ первого и одиннадцатого. Двенадцатой гармоники в этом разложении вообще нет как класса (максимум пятая, и ещё половинка шестой -- половинка в том смысле, что она комплексная, стандартная неприятность ДПФ при разложении по чётному количеству узлов). Что же до того, почему получается не один синус, а двенадцать -- ничего сказать не могу, надо смотреть по хелпу точный синтаксис команды fft, я нюансов не помню, а Матлаба здесь у меня при себе нет (т.е. дистрибутив-то есть, да разворачивать -- жаба душит, и по времени, и винчестер не шибко велик).

 
 
 
 
Сообщение18.09.2008, 17:46 
Все равно большое спасибо

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group