Хураангуй Мэдэгдэл Өгүүллэг

Хэлбэлзэл. Гармоник чичиргээ

Гармоник механик чичиргээний өдөөлт

Хөдөлгөөнт дүрс

Тодорхойлолт

Хэрэв хэлбэлзлийн системийг ямар нэгэн байдлаар тэнцвэрт байдлаас гаргаж, дараа нь өөртөө үлдээсэн бол системд үрэлт байхгүй, боломжит энерги нь ерөнхий координатаас квадратаар хамааралтай бол гармоник хэлбэлзлийг гүйцэтгэх болно. чөлөөт эсвэл байгалийн хэлбэлзэл). Системийг тэнцвэрт байдлаас гаргахын тулд түүнд эрчим хүч өгөх шаардлагатай. Үүнийг хийхийн тулд системийг тэнцвэрийн байрлалаас нь нүүлгэн шилжүүлэх, эсвэл тодорхой хурдыг өгөх, эсвэл хоёуланг нь нэгэн зэрэг хийх шаардлагатай. Ньютоны наалдамхай үрэлтийн үед хэлбэлзлийн систем нь гармоник хэлбэлзлийг гүйцэтгэх боломжтой, гэхдээ зөвхөн гармоник хөдөлгөгч хүчний нөлөөн дор (албадан хэлбэлзэл гэж нэрлэдэг).

Чөлөөт хөдөлгөөнийг функцээр тодорхойлсон механик хэлбэлзлийн системийг авч үзье

x(t) = A cos (w t + a) . (1)

Ийм системийг нэрлэдэг гармоник осциллятор. (1) функц нь гармоник хэлбэлзлийг тодорхойлдог. Энд эерэг утгыг A хэлбэлзлийн далайц гэж нэрлэдэг, w нь дугуй эсвэл мөчлөгийн давтамж юм. Чиг үүрэг

j = w t + a (2)

хэлбэлзлийн үе шат, а утгыг эхний үе гэж нэрлэдэг. Хэлбэлзлийн хугацаа нь тэдгээрийн давтамжтай хамаарлаар холбогддог

T = 2 p/w. (3)

Функцийн графикийг Зураг дээр үзүүлэв. 1.

Гармоник хэлбэлзлийн цаг хугацааны координатын хамаарал

Цагаан будаа. 1

(1) функц нь шийдэл юм дифференциал тэгшитгэлхоёр дахь захиалга

d 2 x /dt 2 + w 2 x = 0, (4)

Энэ нь авч үзэж буй системийн үйл ажиллагааг тодорхойлдог зарим физик хуулийг илэрхийлдэг (ихэвчлэн Ньютоны хоёр дахь хууль эсвэл муруйн ерөнхий координатыг ашиглах тохиолдолд Эйлер-Лагранжийн тэгшитгэл эсвэл Гамильтоны тэгшитгэл гэх мэт үр дагавар). Хэлбэлзлийн далайц ба эхний үе шатыг эхний нөхцлөөс олж болно

x(0) = x o ; d x(0) /dt = v o ,

t = 0 үеийн хэлбэлзлийн системийн төлөвийг тодорхойлох эдгээр нөхцөлүүд нь x o ба v o нь дурын тогтмолууд юм. Эхний нөхцлүүд нь дараах томъёонд хүргэдэг.

A = sqrt (x o 2 + (v o / k) 2 ); tg a = - v o / w x o .

Хэлбэлзлийн системд үзүүлэх гадны нөлөөг f = f (t) багасгасан хүчээр тодорхойлж болно. Учир нь хаврын дүүжинбууруулсан хүч f = F (t)/m, энд F нь гадаад хүч. Энэ тохиолдолд x = x(t) функц нь тэгшитгэлийг хангана.

d 2 x /dt 2 + 2 b dx /dt + w o 2 x = f(t) . (5)

Энэ тэгшитгэлийн зүүн талд байгаа хоёр дахь нэр томъёо нь хөдөлж буй биед үзүүлэх үрэлтийн нөлөөг тодорхойлдог. Энэ тохиолдолд биеийн чөлөөт чичиргээ нь гармоник биш байх болно. Багассан хүч f = f (t) нь цаг хугацааны гармоник функц байг, өөрөөр хэлбэл. хуулийн дагуу хугацаанаас хамаарна:

f (t) = f m cos W t,

f m нь хөдөлгөх хүчний далайц,

W нь түүний өөрчлөлтийн давтамж юм.

Энэ тохиолдолд албадан хэлбэлзлийг дараахь функцээр тодорхойлно.

x (t) = A cos (W t + a),

тэдгээр. хөдөлгөгч хүчний W давтамжтай гармоник хэлбэлзлийг илэрхийлнэ. Албадан хэлбэлзлийн далайц А нь дараах томъёоны дагуу W давтамжаас хамаарна.

A(W) = f m / sqrt ((w o 2 - W 2 ) 2 + 4 b 2 W 2 ) .

Албадан хэлбэлзлийн эхний үе шатыг a томъёогоор тодорхойлно

a = - arctg (2 bW / (w o 2 - W 2 )).

Цагийн онцлог

Эхлэх хугацаа (-3-аас 1 хүртэл нэвтэрнэ үү);

Амьдралын хугацаа (лог tc 13-аас 15 хүртэл);

Эвдрэлийн хугацаа (log td -4-ээс -3 хүртэл);

Хамгийн оновчтой хөгжлийн хугацаа (log tk -3-аас -2 хүртэл).

Эхний үе шатыг сонгох нь гармоник хэлбэлзлийг тайлбарлахдаа синус функцээс косинусын функц руу шилжих боломжийг олгодог.

Дифференциал хэлбэрийн ерөнхий гармоник хэлбэлзэл:

Гармоник хуулийн дагуу чөлөөт чичиргээ үүсэхийн тулд биеийг тэнцвэрийн байрлал руу буцаах хүч нь биеийг тэнцвэрийн байрлалаас нүүлгэн шилжүүлэхтэй пропорциональ байх шаардлагатай бөгөөд шилжилт хөдөлгөөний эсрэг чиглэлд чиглэнэ.

хэлбэлзэгч биеийн масс хаана байна.

Гармоник хэлбэлзэл байж болох физик системийг нэрлэдэг гармоник осциллятор,ба гармоник чичиргээний тэгшитгэл нь гармоник осцилляторын тэгшитгэл.

1.2. Чичиргээ нэмэх

Систем нь бие биенээсээ үл хамааран хоёр буюу хэд хэдэн хэлбэлзэлд нэгэн зэрэг оролцох тохиолдол байдаг. Эдгээр тохиолдлуудад хэлбэлзлийг бие биендээ давхарлах (нэмэх) замаар үүсдэг нарийн төвөгтэй хэлбэлзлийн хөдөлгөөн үүсдэг. Мэдээжийн хэрэг, хэлбэлзэл нэмэх тохиолдол маш олон янз байж болно. Эдгээр нь зөвхөн нэмсэн хэлбэлзлийн тооноос гадна хэлбэлзлийн параметрүүд, тэдгээрийн давтамж, үе шат, далайц, чиглэл зэргээс хамаарна. Хэлбэлзэл нэмэх тохиолдлуудыг бүгдийг нь авч үзэх боломжгүй тул бид зөвхөн бие даасан жишээнүүдийг авч үзэх болно.

Нэг шулуун шугамын дагуу чиглэсэн гармоник хэлбэлзлийг нэмэх

Эхний үе ба далайцын хувьд ялгаатай ижил хугацааны ижил чиглэгдсэн хэлбэлзлийг нэмэхийг авч үзье. Нэмэлт хэлбэлзлийн тэгшитгэлийг дараах хэлбэрээр өгөв.

нүүлгэн шилжүүлэлт хаана ба байна; ба – далайц; ба атираат хэлбэлзлийн эхний үе шатууд юм.

Зураг 2.

Үүссэн хэлбэлзлийн далайцыг вектор диаграмм (Зураг 2) ашиглан тодорхойлоход тохиромжтой бөгөөд энэ нь далайцын векторууд ба өнцөг болон тэнхлэгт нэмсэн хэлбэлзэл, параллелограммын дүрмийн дагуу далайцын векторыг дүрсэлсэн байдаг. нийт хэлбэлзлийг олж авна.

Хэрэв та векторуудын системийг (параллелограмм) жигд эргүүлж, векторуудыг тэнхлэгт тусгавал. , дараа нь тэдгээрийн проекц нь өгөгдсөн тэгшитгэлийн дагуу гармоник хэлбэлзлийг гүйцэтгэх болно. Харилцан зохицуулалтвекторууд бөгөөд нэгэн зэрэг өөрчлөгдөөгүй хэвээр байгаа тул үүссэн векторын проекцын хэлбэлзлийн хөдөлгөөн нь мөн гармоник байх болно.

Үүнээс үзэхэд нийт хөдөлгөөн нь өгөгдсөн мөчлөгийн давтамжтай гармоник хэлбэлзэл юм. Далайцын модулийг тодорхойлъё Аүүссэн хэлбэлзэл. Булан руу (параллелограммын эсрэг өнцгүүдийн тэгшитгэлээс).

Тиймээс,

эндээс: .

Косинусын теоремын дагуу

Үүссэн хэлбэлзлийн эхний үе шатыг дараахь байдлаар тодорхойлно.

Фаз ба далайцын хамаарал нь үүссэн хөдөлгөөний далайц ба эхний үе шатыг олж, түүний тэгшитгэлийг бүрдүүлэх боломжийг олгодог: .

Цохилтууд

Хоёр нэмсэн хэлбэлзлийн давтамж нь бие биенээсээ бага зэрэг ялгаатай байх тохиолдлыг авч үзье, далайц нь ижил байх ба эхний үе шатууд, өөрөөр хэлбэл.

Эдгээр тэгшитгэлийг аналитик байдлаар нэмье:

Өөрчилье

Цагаан будаа. 3.
Энэ нь аажмаар өөрчлөгддөг тул хэмжигдэхүүнийг бүрэн утгаар далайц гэж нэрлэх боломжгүй (далайц нь тогтмол хэмжигдэхүүн юм). Уламжлал ёсоор энэ утгыг хувьсах далайц гэж нэрлэж болно. Ийм хэлбэлзлийн графикийг 3-р зурагт үзүүлэв. Нэмэгдсэн хэлбэлзэл нь ижил далайцтай боловч үеүүд нь өөр, үеүүд нь бие биенээсээ бага зэрэг ялгаатай байдаг. Ийм чичиргээг нэгтгэх үед цохилт ажиглагдаж байна. Секундэд цохилтын тоог нэмсэн хэлбэлзлийн давтамжийн зөрүүгээр тодорхойлно, өөрөөр хэлбэл.

Давтамж ба чичиргээ нь хоорондоо ойрхон байвал хоёр тааруулагч дуугарах үед цохих нь ажиглагдаж болно.

харилцан перпендикуляр чичиргээ нэмэх

Болъё материаллаг цэгхарилцан перпендикуляр хоёр чиглэлд тэнцүү үетэй хоёр гармоник хэлбэлзэлд нэгэн зэрэг оролцдог. Тэгш өнцөгт координатын системийг цэгийн тэнцвэрийн байрлалд гарал үүслийг байрлуулах замаар эдгээр чиглэлтэй холбож болно. С цэгийн шилжилтийг ба тэнхлэгийн дагуу тус тус тэмдэглэе . (Зураг 4).

Хэд хэдэн онцгой тохиолдлыг авч үзье.

1). Хэлбэлзлийн эхний үе шатууд ижил байна

Хоёр хэлбэлзлийн эхний үе шатууд тэгтэй тэнцүү байхаар цаг хугацааны эхлэлийг сонгоцгооё. Дараа нь тэнхлэгийн дагуух шилжилтийг дараах тэгшитгэлээр илэрхийлж болно.

Эдгээр тэгшитгэлийг нэр томъёонд хувааснаар бид С цэгийн траекторийн тэгшитгэлийг олж авна.
эсвэл .

Үүний үр дүнд хоёр харилцан перпендикуляр хэлбэлзэл нэмэгдсэний үр дүнд С цэг нь координатын эхийг дайран өнгөрөх шулуун шугамын сегментийн дагуу хэлбэлздэг (Зураг 4).

Цагаан будаа. 4.
2). Эхний фазын ялгаа нь :

Энэ тохиолдолд хэлбэлзлийн тэгшитгэл нь дараах хэлбэртэй байна.

Цэгийн траекторийн тэгшитгэл:

Үүний үр дүнд С цэг нь координатын эхийг дайран өнгөрөх шулуун шугамын сегментийн дагуу хэлбэлздэг боловч эхний тохиолдлоос өөр квадрантад байрладаг. Далайц АХаргалзан үзсэн хоёр тохиолдолд үүссэн хэлбэлзэл нь дараахтай тэнцүү байна.

3). Эхний фазын ялгаа нь .

Хэлбэлзлийн тэгшитгэл нь дараах хэлбэртэй байна.

Эхний тэгшитгэлийг , хоёр дахь тэгшитгэлийг дараах байдлаар хуваа.

Хоёр тэнцүүг квадрат болгоод нэмье. Хэлбэлзэх цэгийн үүссэн хөдөлгөөний траекторийн хувьд бид дараахь тэгшитгэлийг олж авна.

Хэлбэлзэх цэг С нь хагас тэнхлэгтэй эллипсийн дагуу хөдөлдөг ба. Тэнцүү далайцтай бол нийт хөдөлгөөний траектори нь тойрог болно. Ерөнхий тохиолдолд, төлөө, гэхдээ олон, i.e. , харилцан перпендикуляр хэлбэлзлийг нэмэх үед хэлбэлзлийн цэг нь Lissajous дүрс гэж нэрлэгддэг муруйн дагуу хөдөлдөг.

Лиссажугийн дүрүүд

Лиссажугийн дүрүүд– харилцан перпендикуляр хоёр чиглэлд хоёр гармоник хэлбэлзлийг нэгэн зэрэг гүйцэтгэх цэгээр зурсан битүү траекторууд.

Анх Францын эрдэмтэн Жюль Антуан Лиссажуус судалжээ. Зургийн харагдах байдал нь хоёр хэлбэлзлийн үе (давтамж), үе шат, далайц хоорондын хамаарлаас хамаарна.(Зураг 5).

Зураг 5.

Хоёр үеийн тэгш байдлын хамгийн энгийн тохиолдолд дүрсүүд нь эллипс бөгөөд фазын зөрүүгээр шулуун сегмент болж доройтож, фазын зөрүү ба далайцтай тэнцүү бол тойрог болж хувирдаг. Хэрэв хоёр хэлбэлзлийн үеүүд яг таарахгүй бол фазын зөрүү байнга өөрчлөгддөг бөгөөд үүний үр дүнд эллипс байнга гажигтай байдаг. Маш өөр өөр хугацаанд Лиссажугийн дүр төрх ажиглагддаггүй. Гэсэн хэдий ч хэрэв үеүүд бүхэл тоогоор хамааралтай бол хоёр үеийн хамгийн бага үржвэртэй тэнцэх хугацааны дараа хөдөлж буй цэг дахин ижил байрлалдаа буцаж ирдэг - илүү төвөгтэй хэлбэртэй Лиссажугийн дүрсүүдийг олж авдаг.
Lissajous тоо тэгш өнцөгт багтах, төв нь гарал үүсэл нь давхцаж, талууд нь координатын тэнхлэгт параллель болон хэлбэлзлийн далайцтай тэнцүү зайд тэдгээрийн хоёр талд байрладаг (Зураг. 6).

Гармоник чичиргээний тэгшитгэл

Гармоник хэлбэлзлийн тэгшитгэл нь биеийн координатуудын цаг хугацааны хамаарлыг тогтоодог

Анхны агшин дахь косинусын график нь хамгийн их утгатай, синус график нь эхний мөчид тэг утгатай байна. Хэрэв бид тэнцвэрийн байрлалаас хэлбэлзлийг шалгаж эхэлбэл хэлбэлзэл нь синусоидыг давтах болно. Хэрэв бид хэлбэлзлийг хамгийн их хазайлтын байрлалаас авч үзвэл хэлбэлзлийг косинусаар дүрслэх болно. Эсвэл ийм хэлбэлзлийг синусын томъёогоор эхний үе шаттайгаар тодорхойлж болно.

Гармоник хэлбэлзлийн үед хурд ба хурдатгалын өөрчлөлт

Зөвхөн биеийн координат нь синус эсвэл косинусын хуулийн дагуу цаг хугацааны явцад өөрчлөгддөггүй. Гэхдээ хүч, хурд, хурдатгал зэрэг хэмжигдэхүүнүүд мөн адил өөрчлөгддөг. Хүч ба хурдатгал нь хэлбэлзэж буй бие нь хамгийн их шилжилттэй байх туйлын байрлалд байх үед хамгийн их байх ба тэнцвэрт байрлалаар дамжин өнгөрөх үед тэг болно. Эсрэгээр, хэт туйлширсан байрлал дахь хурд нь тэг бөгөөд бие нь тэнцвэрийн байрлалыг дамжин өнгөрөхөд хамгийн их утгад хүрдэг.

Хэрэв хэлбэлзлийг косинусын хуулиар тодорхойлсон бол

Хэрэв хэлбэлзлийг синусын хуулийн дагуу тайлбарлавал

Хамгийн их хурд ба хурдатгалын утгууд

V(t) ба a(t) хамаарлын тэгшитгэлд дүн шинжилгээ хийсний дараа тригонометрийн хүчин зүйл 1 эсвэл -1-тэй тэнцүү байх тохиолдолд хурд ба хурдатгал нь хамгийн их утгыг авна гэж таамаглаж болно. Томъёогоор тодорхойлно

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

Энд x - өөрчлөгдөж буй хэмжигдэхүүний утга, t - цаг хугацаа, үлдсэн параметрүүд нь тогтмол байна: A - хэлбэлзлийн далайц, ω - хэлбэлзлийн мөчлөгийн давтамж, хэлбэлзлийн бүрэн үе шат, хэлбэлзлийн эхний үе шат.

Дифференциал хэлбэрийн ерөнхий гармоник хэлбэлзэл

(Энэ дифференциал тэгшитгэлийн энгийн бус шийдэл нь мөчлөгийн давтамжтай гармоник хэлбэлзэл юм)

Чичиргээний төрлүүд

    Системийг тэнцвэрт байдлаас нь салгасны дараа системийн дотоод хүчний нөлөөн дор чөлөөт чичиргээ үүсдэг. Чөлөөт хэлбэлзэл нь гармоник байхын тулд хэлбэлзлийн систем нь шугаман (хөдөлгөөний шугаман тэгшитгэлээр тодорхойлогддог) байх шаардлагатай бөгөөд үүнд эрчим хүчний алдагдал байхгүй (сүүлийн нь сулралт үүсгэдэг).

    Албадан чичиргээ нь гадны тогтмол хүчний нөлөөн дор үүсдэг. Тэдгээрийг гармоник болгохын тулд хэлбэлзлийн систем нь шугаман (хөдөлгөөний шугаман тэгшитгэлээр тодорхойлогддог) байх нь хангалттай бөгөөд гадаад хүч нь цаг хугацааны явцад гармоник хэлбэлзэл хэлбэрээр өөрчлөгддөг (өөрөөр хэлбэл энэ хүчний цаг хугацааны хамаарал нь синусоид байдаг) .

Гармоник тэгшитгэл

Тэгшитгэл (1)

хэлбэлзэх S утгын t хугацаанаас хамаарах хамаарлыг өгнө; Энэ нь тодорхой хэлбэрийн чөлөөт гармоник хэлбэлзлийн тэгшитгэл юм. Гэсэн хэдий ч ихэвчлэн чичиргээний тэгшитгэлийг дифференциал хэлбэрээр энэ тэгшитгэлийн өөр дүрслэл гэж ойлгодог. Тодорхой байхын тулд (1) тэгшитгэлийг хэлбэрээр авъя

Үүнийг цаг хугацааны хувьд хоёр удаа ялгаж үзье.

Дараахь харилцаа холбоо байгааг харж болно.

үүнийг чөлөөт гармоник хэлбэлзлийн тэгшитгэл (дифференциал хэлбэрээр) гэж нэрлэдэг. Тэгшитгэл (1) нь дифференциал тэгшитгэлийн (2) шийдэл юм. (2) тэгшитгэл нь хоёр дахь эрэмбийн дифференциал тэгшитгэл тул бүрэн шийдийг гаргахын тулд хоёр анхны нөхцөл шаардлагатай (өөрөөр хэлбэл (1) тэгшитгэлд багтсан А ба   тогтмолуудыг тодорхойлох); жишээ нь: t = 0 үед хэлбэлзлийн системийн байрлал ба хурд.

Математикийн дүүжин гэдэг нь таталцлын хүчний жигд талбарт жингүй сунадаггүй утас эсвэл жингүй бариул дээр байрлах материаллаг цэгээс бүрдэх механик систем болох осциллятор юм. Чөлөөт уналтын хурдатгал g бүхий жигд таталцлын талбарт хөдөлгөөнгүй дүүжлэгдсэн l урттай математик дүүжингийн жижиг байгалийн хэлбэлзлийн хугацаа нь тэнцүү байна.

мөн дүүжингийн далайц ба массаас хамаарахгүй.

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

Фурье хувиргалт, дижитал дохио боловсруулах (DSP) гэх мэт бүх төрлийн гоо сайхны талаар хэд хэдэн нийтлэл байсан боловч энэ бүхэн яагаад хэрэгтэй, хаана, хамгийн чухал нь хэрхэн өргөдөл гаргах нь туршлагагүй хэрэглэгчдэд бүрэн тодорхойгүй байна. тэр.

Дуу чимээний давтамжийн хариу урвал.

Би хувьдаа эдгээр нийтлэлүүдийг уншсаны дараа (жишээ нь, энэ нь) сонирхолтой, үзэсгэлэнтэй байсан ч энэ нь юу байсан, бодит амьдрал дээр яагаад хэрэгтэй байсан нь надад тодорхой болсонгүй.
Би зүгээр л сайхан зургуудыг хараад зогсохгүй, энэ нь юу, хэрхэн ажилладагийг гэдэс дотроо мэдрэхийг хүсч байна. Би дууны файл үүсгэх, боловсруулах тодорхой жишээг өгөх болно. Дууг сонсож, түүний спектрийг харж, яагаад ийм байгааг ойлгох боломжтой болно.
Энэ нийтлэл нь нарийн төвөгтэй хувьсагчийн функцүүдийн онол, DSP болон бусад аймшигтай сэдвүүдийг мэддэг хүмүүст сонирхолгүй байх болно. Энэ нь сониуч, сургуулийн сурагчид, оюутнууд болон тэднийг өрөвддөг хүмүүст илүү тохиромжтой :).

Би нэн даруй захиалгаа өгье: би математикч биш, бүр олон зүйлийг буруу хэлж магадгүй (хувийн мессежээр засч залруулж болно), би энэ нийтлэлийг өөрийн туршлага, одоогийн үйл явцын талаархи ойлголт дээрээ үндэслэн бичиж байна. Хэрэв та бэлэн бол явцгаая.

Материалын талаар хэдэн үг хэлье

Хэрэв бид сургуулийнхаа математикийн хичээлийг санаж байвал синусын графикийг зурахдаа тойрог ашигласан. Ерөнхийдөө энэ нь харагдаж байна эргэлтийн хөдөлгөөнсинус долгион болгон хувиргаж болно (ямар ч гармоник хэлбэлзэл гэх мэт). Энэ үйл явцын хамгийн сайн дүрслэлийг Википедиад өгсөн болно


Гармоник чичиргээ

Тэдгээр. Үнэндээ синусын графикийг векторын эргэлтээс олж авдаг бөгөөд үүнийг дараах томъёогоор дүрсэлсэн болно.

F(x) = A нүгэл (ωt + φ),

А нь векторын урт (хэлбэлзлийн далайц), φ нь тэг хугацааны векторын анхны өнцөг (фаз), ω нь эргэлтийн өнцгийн хурд бөгөөд энэ нь:

ω=2 πf, энд f нь Герц дэх давтамж юм.

Бидний харж байгаагаар дохионы давтамж, далайц, өнцгийг мэдснээр бид гармоник дохиог үүсгэж чадна.

Ямар ч дохионы дүрслэлийг янз бүрийн синусоидуудын нийлбэр (ихэвчлэн хязгааргүй) хэлбэрээр илэрхийлж болох нь илрэх үед ид шид эхэлдэг. Өөрөөр хэлбэл Фурье цуврал хэлбэрээр.
Би англи хэлний Википедиагаас жишээ өгөх болно. Жишээ болгон хөрөөний дохиог авч үзье.


Налуу дохио

Үүний хэмжээг дараах томъёогоор илэрхийлнэ.

Хэрэв бид нэг нэгээр нь нэмбэл эхлээд n=1, дараа нь n=2 гэх мэтийг авбал бидний гармоник синусоид дохио хэрхэн аажмаар хөрөө болж хувирахыг харах болно.

Үүнийг интернетээс олсон нэг программ хамгийн сайхан дүрсэлсэн байх. Синусын график нь эргэлдэх векторын проекц гэж дээр хэлсэн, гэхдээ илүү төвөгтэй дохиог яах вэ? Энэ нь хачирхалтай нь олон эргэдэг векторуудын төсөөлөл, эс тэгвээс тэдгээрийн нийлбэр бөгөөд бүгд дараах байдлаар харагдаж байна.


Вектор зургийн хөрөө.

Ерөнхийдөө би өөрөө холбоос руу орж, параметрүүдтэй өөрөө тоглож, дохио хэрхэн өөрчлөгдөж байгааг харахыг зөвлөж байна. IMHO Би ойлгоход илүү харааны тоглоомыг хэзээ ч харж байгаагүй.

Өгөгдсөн дохионоос давтамж, далайц, эхний үе шатыг (өнцөг) авах боломжийг олгодог урвуу процедур байдаг бөгөөд үүнийг Фурье хувиргалт гэж нэрлэдэг.


Зарим алдартай үечилсэн функцүүдийн Фурье цувралын өргөтгөл (энд)

Би энэ талаар дэлгэрэнгүй ярихгүй, гэхдээ үүнийг амьдралд хэрхэн ашиглаж болохыг харуулах болно. Ном зүйд би материалын талаар илүү ихийг хаанаас уншихыг зөвлөж байна.

Практик дасгалууд руу явцгаая!

Оюутан бүр лекц дээр сууж байхдаа, жишээ нь математикийн талаар асуулт асуудаг юм шиг санагдаж байна: яагаад надад энэ бүх утгагүй зүйл хэрэгтэй байна вэ? Дүрмээр бол ойрын ирээдүйд хариулт олсонгүй, харамсалтай нь тэр энэ сэдвийг сонирхохоо больсон. Тиймээс би танд шууд үзүүлэх болно практик хэрэглэээнэ мэдлэг, тэгээд та өөрөө энэ мэдлэгийг эзэмших болно :).

Цаашид би бүх зүйлийг өөрийнхөөрөө хэрэгжүүлэх болно. Мэдээжийн хэрэг, би бүх зүйлийг Линукс дээр хийсэн, гэхдээ ямар ч тодорхой зүйл ашиглаагүй; онолын хувьд програмыг бусад платформ дээр эмхэтгэж, ажиллуулах болно.

Эхлээд аудио файл үүсгэх програм бичье. Wav файлыг хамгийн энгийнээр нь авсан. Та түүний бүтцийн талаар уншиж болно.
Товчхондоо, wav файлын бүтцийг дараах байдлаар тайлбарлав: файлын форматыг тодорхойлсон толгой хэсэг, дараа нь (манай тохиолдолд) 16 битийн өгөгдлийн массив (заагч) байна: дээж авах_давтамж*t секунд. эсвэл 44100*т ширхэг.

Дууны файл үүсгэх жишээг авсан. Би үүнийг бага зэрэг өөрчилсөн, алдаануудыг зассан бөгөөд миний засвар бүхий эцсийн хувилбар одоо Github дээр энд байна

100 Гц давтамжтай цэвэр синус долгионтой хоёр секундын дууны файл үүсгэцгээе. Үүнийг хийхийн тулд бид програмыг дараах байдлаар өөрчилнө.

#define S_RATE (44100) // дээж авах давтамж #define BUF_SIZE (S_RATE*10) /* 2 секундын буфер */ …. int main(int argc, char * argv) ( ... хөвөх далайц = 32000; // боломжтой хамгийн их далайцыг авна float freq_Hz = 100; // дохионы давтамж /* буферийг синусын долгионоор дүүргэх */ (i=0) i

Цэвэр синусын томъёо нь бидний дээр дурдсантай тохирч байгааг анхаарна уу. 32000 (32767-г авч болно) далайц нь 16 битийн тоо авах боломжтой (хасах 32767-с нэмэх 32767) утгатай тохирч байна.

Үүний үр дүнд бид дараах файлыг авах болно (та үүнийг ямар ч дууг хуулбарлах програмаар сонсох боломжтой). Энэхүү audacity файлыг нээгээд дохионы график нь цэвэр синус долгионтой тохирч байгааг харцгаая.


Цэвэр хоолойн синус

Энэ синусын спектрийг харцгаая (Анализ->Plot спектр)


Спектрийн график

Тодорхой оргил нь 100 Гц (логарифм масштаб) дээр харагдаж байна. Спектр гэж юу вэ? Энэ бол далайц-давтамжийн шинж чанар юм. Мөн фазын давтамжийн шинж чанар байдаг. Хэрэв та санаж байгаа бол би дохиог бүтээхийн тулд түүний давтамж, далайц, үе шатыг мэдэх хэрэгтэй гэж дээр хэлсэн? Тиймээс та эдгээр параметрүүдийг дохионоос авах боломжтой. Энэ тохиолдолд бид далайцтай тохирох давтамжийн графиктай бөгөөд далайц нь бодит нэгжээр биш, харин децибелээр илэрхийлэгддэг.

Хөтөлбөр хэрхэн ажилладагийг тайлбарлахын тулд Фурьегийн хурдан хувиргалт гэж юу болохыг тайлбарлах шаардлагатай гэдгийг би ойлгож байгаа бөгөөд энэ нь дор хаяж нэг нийтлэл юм.

Эхлээд массивуудыг хуваарилъя:

C = calloc(хэмжээний_массив*2, хэмжээ(хөвөгч)); // эргүүлэх хүчин зүйлсийн массив = calloc(size_array*2, sizeof(float)); //оролтын массив гарах = calloc(хэмжээний_массив*2, sizeof(хөвөгч)); //гаралтын массив

Програмд ​​бид өгөгдлийг size_array урттай массив болгон уншдаг гэдгийг хэлье (бид үүнийг wav файлын толгой хэсгээс авдаг).

while(fread(&value,sizeof(value),1,wav)) ( in[j]=(float)value; j+=2; if (j > 2*size_array) тасарвал; )

FFT массив нь дараалал байх ёстой (re, im, re, im,... re, im), fft_size=1<< p - число точек БПФ. Объясняю нормальным языком:
цогц тоонуудын массив юм. Фурьегийн цогц хувиргалт хаана хэрэглэгдэж байгааг төсөөлөхөөс ч айж байна, гэхдээ бидний хувьд бидний төсөөлж буй хэсэг нь тэгтэй тэнцүү, харин бодит хэсэг нь массивын цэг бүрийн утгатай тэнцүү байна.
Хурдан Фурье хувиргалтын өөр нэг онцлог нь зөвхөн хоёрын зэрэглэлийн үржвэр массивуудыг тооцдог явдал юм. Үүний үр дүнд бид хоёрын хамгийн бага хүчийг тооцоолох ёстой:

Int p2=(int)(log2(толгой.байтын_өгөгдөл/толгой.байтын_барилга));

Өгөгдөл дэх байтуудын тоог нэг цэг дэх байтад хуваасан логарифм.

Үүний дараа бид эргэлтийн хүчин зүйлсийг тооцоолно.

Fft_make(p2,c); // FFT-ийн эргэлтийн коэффициентийг тооцоолох функц (эхний параметр нь хоёрын хүчин чадал, хоёр дахь нь эргэлтийн хүчин зүйлийн хуваарилагдсан массив).

Мөн бид зүгээр л массиваа Фурье трансформатор руу оруулна.

Fft_calc(p2, c, орох, гарах, 1); //(нэг нь бид хэвийн массив авч байна гэсэн үг).

Гаралт дээр бид маягтын нийлмэл тоонуудыг (re, im, re, im,... re, im) авдаг. Комплекс тоо гэж юу болохыг мэдэхгүй хүмүүст би тайлбарлая. Би энэ нийтлэлийг олон тооны эргэдэг векторууд болон олон тооны GIF-ээр эхлүүлсэн нь дэмий хоосон биш юм. Тэгэхээр цогц хавтгай дээрх векторыг бодит координат a1 ба төсөөлөл a2 координатаар тодорхойлно. Эсвэл урт (энэ нь бидний хувьд Ам далайц) ба Psi өнцөг (фаз).


Нарийн төвөгтэй хавтгай дээрх вектор

size_array=2^p2 гэдгийг анхаарна уу. Массивын эхний цэг нь 0 Гц давтамжтай (тогтмол), сүүлчийн цэг нь түүврийн давтамж, тухайлбал 44100 Гц-тэй тохирч байна. Үүний үр дүнд бид цэг бүрт тохирох давтамжийг тооцоолох ёстой бөгөөд энэ нь дельта давтамжаар ялгаатай байх болно.

Давхар гурвалжин=((хөвөгч) толгой.давтамж)/(хөвөгч) хэмжээний_массив; //массивын хэмжээ бүрт түүвэрлэлтийн давтамж.

Далайцын массивын хуваарилалт:

Давхар * том; ampl = calloc(хэмжээний_массив*2, хэмжээ(давхар));

Мөн зургийг хараарай: далайц нь векторын урт юм. Мөн бид түүний бодит ба төсөөллийн тэнхлэгт төсөөлөлтэй байдаг. Үүний үр дүнд бид тэгш өнцөгт гурвалжинтай болох бөгөөд энд Пифагорын теоремыг санаж, вектор бүрийн уртыг тоолж, тэр даруй текст файлд бичнэ.

For(i=0;i<(size_array);i+=2) { fprintf(logfile,"%.6f %f\n",cur_freq, (sqrt(out[i]*out[i]+out*out))); cur_freq+=delta; }
Үүний үр дүнд бид дараах файлыг авна.

… 11.439514 10.943008 11.607742 56.649738 11.775970 15.652428 11.944199 21.872342 12.112427 30.635371 12.280655 30.329171 12.448883 11.932371 12.617111 20.777617 ...

Оролдоод үзье!

Одоо бид үүссэн програмыг синусын дууны файлаар тэжээнэ

./fft_an ../generate_wav/sin\ 100\ Hz.wav формат: 16 бит, PCM шахагдаагүй, суваг 1, давтамж 44100, секундэд 88200 байт, барьж авах 2 байт, дээж бүрт 2 бит, өгөгдөлд 882000 байт= 441000 log2=18 хэмжээний массив=262144 wav формат Макс давтамж = 99.928 , amp =7216.136

Мөн бид давтамжийн хариуны текст файлыг авдаг. Бид түүний графикийг gnuplot ашиглан бүтээдэг

Барилга угсралтын скрипт:

#! /usr/bin/gnuplot -persist set terminal postscript eps сайжруулсан өнгөт хатуу багц гаралт "result.ps" #set terminal png хэмжээ 800, 600 #set output "result.png" set grid xtics ytics set log xy set xlabel "Freq, Hz" set ylabel "Amp, dB" set xrange #set yrange plot "test.txt" ашиглан 1:2 гарчигийг "AFC)" with lines linestyle 1 !}

Скрипт дээрх X-ийн дагуух цэгүүдийн тоог хязгаарлахыг анхаарна уу: set xrange . Бидний түүврийн давтамж нь 44100 бөгөөд хэрэв бид Котельниковын теоремыг эргэн санавал дохионы давтамж нь дээж авах давтамжийн талаас илүү байж болохгүй, тиймээс бид 22050 Гц-ээс дээш дохиог сонирхохгүй. Яагаад ийм байна вэ, би танд тусгай уран зохиол уншихыг зөвлөж байна.
Тиймээс (drumroll) скриптийг ажиллуулаад дараахыг харна уу:


Бидний дохионы спектр

100 Гц-ийн огцом оргилыг анхаарна уу. Тэнхлэгүүд нь логарифмын масштабтай гэдгийг бүү мартаарай! Баруун талд байгаа ноос бол Фурье хувирлын алдаа гэж бодож байгаа зүйл юм (цонхнууд энд санаанд орж ирдэг).

Таацгаая?

Аливээ! Бусад дохионы спектрийг харцгаая!

Эргэн тойрон чимээ шуугиантай байна ...
Эхлээд дуу чимээний спектрийг зуръя. Энэ сэдэв нь дуу чимээ, санамсаргүй дохио гэх мэт. тусдаа сургалтанд хамрагдах нь зүйтэй. Гэхдээ бид үүнийг хөнгөнөөр хөндөх болно. Wav файл үүсгэх програмаа өөрчилж, нэг процедур нэмье:

Давхар d_санамсаргүй(давхар мин, давхар макс) ( буцах мин + (хамгийн их - мин) / RAND_MAX * ранд(); )

Энэ нь өгөгдсөн мужид санамсаргүй тоо үүсгэх болно. Үүний үр дүнд гол нь дараах байдлаар харагдах болно.

Int main(int argc, char * argv) ( int i; хөвөх далайц = 32000; srand((insigned int)time(0)); //(i=0; i) санамсаргүй тоо үүсгэгчийг эхлүүлэх

Файл үүсгэцгээе (би үүнийг сонсохыг зөвлөж байна). Үүнийг зоригтойгоор харцгаая.


Зоригтой дохио

Audacity програм дахь спектрийг харцгаая.


Хүрээ

Манай програмыг ашиглан спектрийг харцгаая:


Бидний спектр

Дуу чимээний маш сонирхолтой баримт, онцлогт анхаарлаа хандуулахыг хүсч байна - энэ нь бүх гармоникийн спектрийг агуулдаг. Графикаас харахад спектр нэлээд жигд байна. Ихэвчлэн цагаан дуу чимээг аудио төхөөрөмж гэх мэт зурвасын өргөний давтамжийн шинжилгээнд ашигладаг. Бусад төрлийн дуу чимээ байдаг: ягаан, цэнхэр болон бусад. Гэрийн даалгавар бол тэд хэрхэн ялгаатай болохыг олж мэдэх явдал юм.

Компот яах вэ?

Одоо өөр нэг сонирхолтой дохиог харцгаая - меандр. Би Фурье цуврал дахь янз бүрийн дохионуудын өргөтгөлийн хүснэгтийг дээр өгсөн, та меандр хэрхэн өргөжиж байгааг харж, цаасан дээр бичээд, бид үргэлжлүүлнэ.

25 Гц давтамжтай дөрвөлжин долгион үүсгэхийн тулд бид wav файл үүсгэгчээ дахин өөрчилнө.

Int main(int argc, char * argv) ( int i; short int meandr_value=32767; /* буферийг синусын долгионоор дүүргэх */ (i=0; i)

Үүний үр дүнд бид аудио файлыг авах болно (дахин би танд сонсохыг зөвлөж байна), та тэр даруй зоригтойгоор үзэх хэрэгтэй.


Эрхэмсэг ноён - эрүүл хүний ​​меандр буюу меандр

Зайрах хэрэггүй, түүний спектрийг харцгаая:


Меандрын спектр

Энэ нь юу болох нь одоогоор тодорхойгүй байна... Эхний хэдэн гармоникуудыг харцгаая:


Анхны гармоникууд

Энэ бол огт өөр асуудал! За, тэмдгийг харцгаая. Хараач, бидэнд зөвхөн 1, 3, 5 гэх мэт, i.e. хачин гармоник. Бидний эхний гармоник нь 25 Гц, дараагийн (гурав дахь) нь 75 Гц, дараа нь 125 Гц гэх мэт, харин бидний далайц аажмаар буурч байгааг бид харж байна. Онол нь практикт нийцдэг!
Одоо анхаарлаа хандуулаарай! Бодит амьдрал дээр дөрвөлжин долгионы дохио нь дээд ба түүнээс дээш давтамжийн хязгааргүй гармониктай байдаг боловч дүрмээр бол бодит цахилгаан хэлхээ нь тодорхой давтамжаас дээш давтамжийг дамжуулж чадахгүй (замын индукц ба багтаамжаас шалтгаалан). Үүний үр дүнд та осциллографын дэлгэц дээр дараах дохиог ихэвчлэн харж болно.


Тамхичдын мандер

Энэ зураг нь Википедиагийн зурагтай адил бөгөөд жишээ нь меандрын хувьд бүх давтамжийг авдаггүй, гэхдээ зөвхөн эхний хэдэн давтамжийг авдаг.

Эхний гармоникуудын нийлбэр, дохио хэрхэн өөрчлөгдөх

Меандрийг радио инженерчлэлд идэвхтэй ашигладаг (энэ нь бүх дижитал технологийн үндэс суурь гэдгийг хэлэх ёстой) бөгөөд ээж нь үүнийг танихгүйн тулд урт гинжээр шүүж болно гэдгийг ойлгох нь зүйтэй. Энэ нь мөн янз бүрийн төхөөрөмжүүдийн давтамжийн хариу урвалыг шалгахад хэрэглэгддэг. Өөр нэг сонирхолтой баримт бол микро схем нь өөрөө хэдэн арван МГц-ийн меандер үүсгэдэг, түүний өндөр гармоникууд нь ТВ-ийн ажиллах давтамжтай яг хэдэн зуун МГц давтамжтай байж болох үед телевизийн саатуулагч нь илүү өндөр гармоникийн зарчмаар ажилладаг байсан. өндөр гармоникууд нь телевизийн өргөн нэвтрүүлгийн дохиог амжилттай саатуулсан.

Ерөнхийдөө ийм туршилтуудын сэдэв төгсгөлгүй бөгөөд одоо та өөрөө үргэлжлүүлж болно.


Ном

Бидний энд юу хийж байгааг ойлгохгүй байгаа хүмүүст, эсвэл эсрэгээрээ, ойлгож байгаа боловч илүү сайн ойлгохыг хүсч байгаа хүмүүст, мөн DSP-д суралцаж буй оюутнуудад би энэ номыг маш их санал болгож байна. Энэ бол энэхүү нийтлэлийн зохиогч болох дамми нарт зориулсан DSP юм. Тэнд нарийн төвөгтэй ойлголтуудыг хүүхдэд ч хүртээмжтэй хэлээр тайлбарладаг.

Дүгнэлт

Эцэст нь хэлэхэд математик бол шинжлэх ухааны хатан хаан гэж хэлмээр байна, гэхдээ бодит хэрэглээгүй бол олон хүн үүнийг сонирхохоо больдог. Энэ нийтлэл таныг дохио боловсруулах, ерөнхийдөө аналог хэлхээ гэх мэт гайхалтай сэдвийг судлахад урам зориг өгнө гэж найдаж байна (тархи чинь гоожихгүйн тулд чихээ залгаарай!). :)
Амжилт хүсье!