Аннотациялар Мәлімдеме Оқиға

Тербелістер. Гармоникалық тербелістер

Гармоникалық механикалық тербелістердің қозуы

Анимация

Сипаттама

Егер тербелмелі жүйе қандай да бір жолмен тепе-теңдіктен шығарылып, содан кейін өзіне қалдырылса, онда жүйеде үйкеліс болмаса және потенциалдық энергия жалпыланған координатаға квадраттық түрде тәуелді болған жағдайда ол гармоникалық тербелістерді орындайды (деп аталады). еркін немесе табиғи тербелістер). Жүйені тепе-теңдік күйден шығару үшін оған энергия беру керек. Ол үшін жүйені тепе-теңдік күйінен ығыстыру немесе оған біршама жылдамдық беру немесе екеуін бір уақытта орындау қажет. Ньютондық тұтқыр үйкеліс болған жағдайда тербелмелі жүйе гармоникалық тербелістерді де орындай алады, бірақ тек гармоникалық қозғаушы күштің (мәжбүрлі тербелістер деп аталатын) әсерінен ғана.

Еркін қозғалысы функциямен сипатталатын механикалық тербелмелі жүйені қарастырайық

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

Мұндай жүйе деп аталады гармоникалық осциллятор. (1) функциясы гармоникалық тербелістерді сипаттайды. Мұндағы оң шама А тербеліс амплитудасы деп аталады, 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-суретте көрсетілген. Қосылған тербелістердің амплитудалары бірдей, бірақ периодтары әртүрлі, ал периодтар бір-бірінен аздап ерекшеленеді. Мұндай тербелістерді қосқанда соғулар байқалады. Секундтағы соққылар саны қосылған тербелістердің жиіліктерінің айырмашылығымен анықталады, яғни.

Жиіліктер мен тербеліс бір-біріне жақын болса, екі тюнинг шанышқысы дыбыс бергенде соғуды байқауға болады.

Өзара перпендикуляр тербелістерді қосу

Болсын материалдық нүктебір мезгілде екі өзара перпендикуляр бағытта бірдей периодтармен болатын екі гармоникалық тербеліске қатысады. Тіктөртбұрышты координаталар жүйесін нүктенің тепе-теңдік орнына координаталар координаттар басын қою арқылы байланыстыруға болады. С нүктесінің және осьтері бойынша сәйкесінше және арқылы орын ауыстыруын белгілейік . (Cурет 4).

Бірнеше ерекше жағдайларды қарастырайық.

1). Тербелістердің бастапқы фазалары бірдей

Екі тербелістің бастапқы фазалары нөлге тең болатындай уақыттың бастапқы нүктесін таңдайық. Сонда осьтер бойынша орын ауыстыруларды және теңдеулер арқылы өрнектеуге болады:

Осы теңдіктерді мүшелерге бөле отырып, С нүктесінің траекториясының теңдеулерін аламыз:
немесе .

Демек, екі өзара перпендикуляр тербелістің қосылуы нәтижесінде С нүктесі координаталар басы арқылы өтетін түзу кесіндінің бойымен тербеледі (4-сурет).

Күріш. 4.
2). Бастапқы фазаның айырмашылығы :

Бұл жағдайда тербеліс теңдеулері келесі түрде болады:

Нүкте траекториясының теңдеуі:

Демек, С нүктесі координаталар басы арқылы өтетін, бірақ бірінші жағдайға қарағанда әртүрлі квадранттарда жатқан түзу кесіндінің бойымен тербеледі. Амплитудасы АҚарастырылған екі жағдайда да нәтижелі тербелістер мынаған тең:

3). Бастапқы фазаның айырмашылығы .

Тербеліс теңдеулері келесі түрде болады:

Бірінші теңдеуді -ге, екіншісін -ге бөліңіз:

Екі теңдікті де квадраттап, қосайық. Тербелмелі нүктенің пайда болған қозғалысының траекториясы үшін келесі теңдеуді аламыз:

Тербелмелі С нүктесі жартылай осьтері бар эллипс бойымен қозғалады және. Бірдей амплитудалар үшін жалпы қозғалыстың траекториясы шеңбер болады. Жалпы жағдайда, үшін, бірақ еселік, яғни. , өзара перпендикуляр тербелістерді қосқанда тербелмелі нүкте Лиссажу фигуралары деп аталатын қисықтар бойымен қозғалады.

Лиссажу фигуралары

Лиссажу фигуралары– өзара перпендикуляр екі бағытта бір мезгілде екі гармоникалық тербелістерді орындайтын нүктемен жүргізілген тұйық траекториялар.

Ең алғаш француз ғалымы Жюль Антуан Лиссажу зерттеген. Фигуралардың пайда болуы екі тербелістің периодтары (жиіліктері), фазалары мен амплитудалары арасындағы қатынасқа байланысты.(Cурет 5).

5-сурет.

Екі периодтың теңдігінің ең қарапайым жағдайында фигуралар эллипс болып табылады, олар фазалар айырмасымен не түзу сегменттерге азғындалады, ал фазалар айырмасы және амплитудалары бірдей болса, олар шеңберге айналады. Егер екі тербелістің периодтары дәл сәйкес келмесе, онда фазалар айырмасы барлық уақытта өзгереді, нәтижесінде эллипс барлық уақытта деформацияланады. Елеулі әр түрлі кезеңдерде Лиссажу фигуралары байқалмайды. Алайда, егер периодтар бүтін сандар ретінде байланысқан болса, онда екі периодтың ең кіші еселігіне тең уақыт кезеңі өткеннен кейін, қозғалатын нүкте қайтадан сол күйіне оралады - күрделірек пішіндегі Лиссажу фигуралары алынады.
Лиссажу фигуралары тіктөртбұрышқа орналасады, оның центрі координаталар басымен сәйкес келеді, ал қабырғалары координаталар осіне параллель және олардың екі жағында тербеліс амплитудаларына тең қашықтықта орналасқан (6-сурет).

Гармоникалық тербелістің теңдеуі

Гармоникалық тербеліс теңдеуі дене координаталарының уақытқа тәуелділігін белгілейді

Бастапқы моменттегі косинус графигі максимум мәнге ие, ал синус графигі бастапқы сәтте нөлдік мәнге ие. Егер тербелісті тепе-теңдік күйінен зерттей бастасақ, онда тербеліс синусоидты қайталайды. Егер тербелісті максималды ауытқу позициясынан қарастыра бастасақ, онда тербеліс косинус арқылы сипатталады. Немесе мұндай тербелісті бастапқы фазасы бар синус формуласымен сипаттауға болады.

Гармоникалық тербеліс кезінде жылдамдық пен үдеудің өзгеруі

Синус немесе косинус заңына сәйкес уақыт өте келе дененің координатасы ғана өзгермейді. Бірақ күш, жылдамдық және үдеу сияқты шамалар да осылай өзгереді. Күш пен үдеу тербелмелі дене орын ауыстыруы максималды болатын шеткі позицияларда болғанда максималды болады, ал дене тепе-теңдік күйден өткенде нөлге тең болады. Жылдамдық, керісінше, экстремалды позицияларда нөлге тең, ал дене тепе-теңдік күйінен өткенде, ол өзінің максималды мәніне жетеді.

Егер тербеліс косинус заңымен сипатталса

Егер тербеліс синус заңы бойынша сипатталса

Максималды жылдамдық пен үдеу мәндері

v(t) және a(t) тәуелділік теңдеулерін талдай отырып, тригонометриялық коэффициент 1 немесе -1-ге тең болған жағдайда жылдамдық пен үдеу максималды мәндерді қабылдайтынын болжауға болады. Формула арқылы анықталады

Гармоникалық тербеліс – аргументке тәуелділік синус немесе косинус функциясының сипатына ие болатын кез келген шаманың периодты өзгеру құбылысы. Мысалы, шама үйлесімді тербеледі және уақыт өте келе келесідей өзгереді:

мұндағы х – өзгермелі шаманың мәні, t – уақыт, қалған параметрлер тұрақты: А – тербеліс амплитудасы, ω – тербелістің циклдік жиілігі, тербелістің толық фазасы, тербелістің бастапқы фазасы.

Дифференциалдық түрдегі жалпыланған гармоникалық тербеліс

(Осы дифференциалдық теңдеудің кез келген тривиальды емес шешімі циклдік жиілігі бар гармоникалық тербеліс болып табылады)

Тербелістердің түрлері

    Жүйе тепе-теңдік күйінен шығарылғаннан кейін жүйенің ішкі күштерінің әсерінен еркін тербеліс пайда болады. Еркін тербелістер гармоникалық болуы үшін тербелмелі жүйе сызықты болуы керек (қозғалыстың сызықтық теңдеулерімен сипатталады) және онда энергияның диссипациясы болмауы керек (соңғысы әлсіреуді тудырады).

    Мәжбүрлі тербеліс сыртқы периодтық күштің әсерінен пайда болады. Олардың гармоникалық болуы үшін тербелмелі жүйенің сызықты болуы (қозғалыстың сызықтық теңдеулерімен сипатталған) және сыртқы күштің өзі гармоникалық тербеліс ретінде уақыт өте өзгеретіні жеткілікті (яғни, бұл күштің уақытқа тәуелділігі синусоидалы) .

Гармоникалық теңдеу

Теңдеу (1)

өзгермелі S шамасының t уақытқа тәуелділігін береді; бұл айқын түрдегі еркін гармоникалық тербелістердің теңдеуі. Дегенмен, әдетте діріл теңдеуі осы теңдеудің дифференциалды түрде басқаша көрінісі ретінде түсініледі. Анықтылық үшін (1) теңдеуді түрінде алайық

Уақыт бойынша екі рет ажыратайық:

Мынадай байланыс бар екенін көруге болады:

ол еркін гармоникалық тербелістердің теңдеуі деп аталады (дифференциалды түрде). (1) теңдеу (2) дифференциалдық теңдеудің шешімі болып табылады. (2) теңдеу екінші ретті дифференциалдық теңдеу болғандықтан, толық шешімді алу үшін екі бастапқы шарт қажет (яғни, (1) теңдеудегі А және   тұрақтыларын анықтау); мысалы, t = 0 кезіндегі тербелмелі жүйенің орны мен жылдамдығы.

Математикалық маятник - салмақсыз созылмайтын жіпте немесе ауырлық күштерінің біркелкі өрісінде салмақсыз өзекшеде орналасқан материалдық нүктеден тұратын механикалық жүйе болып табылатын осциллятор. Еркін түсу үдеуі g болатын біртекті гравитациялық өрісте қозғалыссыз ілінген ұзындығы l математикалық маятниктің кіші табиғи тербеліс периоды мынаған тең:

және маятниктің амплитудасы мен массасына тәуелді емес.

Физикалық маятник - бұл дененің массаларының центрі болып табылмайтын нүктеге қатысты кез келген күштер өрісінде тербелетін қатты дене немесе күштердің әсер ету бағытына перпендикуляр емес, қозғалмайтын ось. осы дененің масса центрі арқылы өтеді.

Фурье түрлендіруі туралы хабта және сандық сигналдарды өңдеу (DSP) сияқты сұлулықтың барлық түрлері туралы бірнеше мақалалар болды, бірақ тәжірибесіз пайдаланушыға мұның бәрі не үшін қажет және қайда және ең бастысы, қалай қолдану керектігі түсініксіз. ол.

Шудың жиілік реакциясы.

Өз басым осы мақалаларды (мысалы, мынау) оқығаннан кейін оның не екені және оның өмірде не үшін қажет екені қызықты әрі әдемі болғанымен, маған түсініксіз болды.
Мен әдемі суреттерді қарап қана қоймай, былайша айтқанда, оның не және қалай жұмыс істейтінін ішімде сезгім келеді. Мен дыбыстық файлдарды генерациялау және өңдеумен нақты мысал келтіремін. Дыбысты тыңдап, оның спектріне қарап, неге бұлай екенін түсінуге болады.
Мақала күрделі айнымалы функциялар теориясын, DSP және басқа да қорқынышты тақырыптарды білетіндер үшін қызықты болмайды. Бұл көбірек білуге ​​ынталыларға, оқушыларға, студенттерге және оларға жанашырларға :).

Маған бірден ескертпе жасауға рұқсат етіңіз: мен математик емеспін, тіпті көп нәрсені қате айтуым мүмкін (оларды жеке хабарлама арқылы түзетемін), мен бұл мақаланы өз тәжірибем мен ағымдағы процестер туралы өз түсінігіме сүйене отырып жазып отырмын. Дайын болсаң, кеттік.

Материал туралы бірнеше сөз

Мектептегі математика курсын еске түсірсек, синустар графигін салу үшін шеңберді қолдандық. Жалпы, солай болып шықты айналмалы қозғалыссинус толқынына айналуы мүмкін (кез келген гармоникалық тербеліс сияқты). Бұл процестің ең жақсы суреті Уикипедияда берілген


Гармоникалық тербелістер

Анау. шын мәнінде, синус графигі вектордың айналуынан алынады, ол мына формуламен сипатталады:

F(x) = A sin (ωt + φ),

Мұндағы А - вектордың ұзындығы (тербеліс амплитудасы), φ - вектордың нөлдік уақыттағы бастапқы бұрышы (фазасы), ω - айналудың бұрыштық жылдамдығы, ол мынаған тең:

ω=2 πf, мұндағы f – Герцтегі жиілік.

Көріп отырғанымыздай, сигнал жиілігін, амплитудасын және бұрышын біле отырып, біз гармоникалық сигнал құра аламыз.

Сиқырлық кез келген сигналдың көрінісі әртүрлі синусоидтардың қосындысы (көбінесе шексіз) ретінде ұсынылуы мүмкін екендігі анықталған кезде басталады. Басқаша айтқанда, Фурье қатары түрінде.
Мен ағылшынша Уикипедиядан мысал келтіремін. Мысал ретінде ара тісінің сигналын алайық.


Рампалық сигнал

Оның мөлшері келесі формуламен көрсетіледі:

Егер біз бір-бірден қоссақ, алдымен n=1, содан кейін n=2 және т.б. алсақ, біздің гармоникалық синусоидалы сигналдың біртіндеп араға қалай айналатынын көреміз:

Бұл мен Интернеттен тапқан бір бағдарлама арқылы ең әдемі суреттелген шығар. Жоғарыда синус графигі айналмалы вектордың проекциясы екені айтылды, бірақ күрделі сигналдар туралы не деуге болады? Бұл, бір қызығы, көптеген айналмалы векторлардың проекциясы, дәлірек айтқанда, олардың қосындысы және бәрі келесідей көрінеді:


Векторлық суретті аралау.

Жалпы, мен сілтемеге өзіңіз баруды және параметрлермен өзіңіз ойнауға тырысуды және сигналдың қалай өзгеретінін көруді ұсынамын. IMHO Мен ешқашан түсіну үшін көрнекі ойыншықты көрген емеспін.

Сондай-ақ, Фурье түрлендіруі деп аталатын берілген сигналдан жиілікті, амплитуданы және бастапқы фазаны (бұрышты) алуға мүмкіндік беретін кері процедура бар екенін атап өткен жөн.


Кейбір белгілі периодтық функциялардың Фурье қатарын кеңейту (осы жерден)

Мен оған егжей-тегжейлі тоқталмаймын, бірақ оны өмірде қалай қолдануға болатынын көрсетемін. Библиографияда мен материал туралы көбірек оқуға болатын жерді ұсынамын.

Практикалық жаттығуларға көшейік!

Меніңше, әрбір студент лекцияда отырғанда сұрақ қояды, мысалы, математика: маған бұл сандырақ не үшін керек? Ал, әдетте, жақын болашақта жауап таба алмағандықтан, өкінішке орай, ол пәнге деген қызығушылығын жоғалтады. Сондықтан мен сізге бірден көрсетемін практикалық қолданубұл білім, және сіз бұл білімді өзіңіз меңгересіз :).

Әрі қарай барлығын өз күшіммен жүзеге асырамын. Мен, әрине, Linux астында бәрін жасадым, бірақ ешқандай ерекшеліктерді пайдаланбадым; теорияда бағдарлама басқа платформаларда құрастырылады және жұмыс істейді.

Алдымен аудио файлды генерациялайтын программа жазайық. 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 файлын ашайық және сигнал графигі шын мәнінде таза синус толқынына сәйкес келетінін көрейік:


Таза түтік синусы

Осы синустың спектрін қарастырайық (Талдау->Плоттық спектр)


Спектр графигі

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(header.bytes_in_data/header.bytes_by_capture));

Бір нүктедегі байт санына бөлінген деректердегі байт санының логарифмі.

Осыдан кейін біз айналу коэффициенттерін есептейміз:

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 Гц. Нәтижесінде біз әр нүктеге сәйкес келетін жиілікті есептеуіміз керек, ол дельта жиілігімен ерекшеленеді:

Double delta=((float)header.frequency)/(float)size_array; //жиым өлшеміне дискреттеу жиілігі.

Амплитудалық массивтің бөлінуі:

Double * амп; ampl = calloc(өлшем_жиым*2, өлшем(қос));

Ал суретке қараңыз: амплитуда – вектордың ұзындығы. Ал бізде оның нақты және қиял осіне проекциялары бар. Нәтижесінде бізде тікбұрышты үшбұрыш болады және бұл жерде біз Пифагор теоремасын еске түсіреміз және әрбір вектордың ұзындығын санаймыз және оны бірден мәтіндік файлға жазамыз:

үшін(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\ Гц.wav пішімі: 16 бит, PCM қысылмаған, 1-арна, жиілік 44100, секундына 88200 байт, түсіру арқылы 2 байт, үлгіге 2 бит, деректердегі 882000 байт= 441000 log2=18 өлшемді массив=262144 wav пішімі Макс жиілік = 99,928 , амп =7216,136

Біз жиілік реакциясының мәтіндік файлын аламыз. Біз оның графигін gnuplot көмегімен құрастырамыз

Құрылысқа арналған сценарий:

#! /usr/bin/gnuplot -persist жиыны терминалы postscript eps жақсартылған түсті тұтас жиын шығысы "result.ps" #set terminal png өлшемі 800, 600 #set шығысы "result.png" жиынтығы тор xtics ytics жинағы log xy жинағы xlabel "Жиілік, Гц" ylabel орнату "Amp, dB" xrange орнату #set yrange сюжетін орнату "test.txt" 1:2 атауын пайдаланып "AFC)" with lines linestyle 1 !}

Сценарийдегі X бойындағы нүктелер санының шектеуіне назар аударыңыз: xrange орнату. Біздің таңдау жиілігіміз 44100, ал егер Котельников теоремасын еске түсірсек, онда сигнал жиілігі дискретизация жиілігінің жартысынан жоғары болуы мүмкін емес, сондықтан бізді 22050 Гц-тен жоғары сигнал қызықтырмайды. Неліктен бұлай болды, мен сізге арнайы әдебиеттерді оқуға кеңес беремін.
Сонымен (барабан), сценарийді іске қосыңыз және қараңыз:


Біздің сигналдың спектрі

100 Гц жиіліктегі күрт шыңға назар аударыңыз. Осьтер логарифмдік шкалада екенін ұмытпаңыз! Оң жақтағы жүн - бұл Фурье түрлендіру қателері деп ойлаймын (бұл жерде терезелер еске түседі).

Көңілге алайық?

Кәне! Басқа сигналдардың спектрлерін қарастырайық!

Айналада шу бар...
Алдымен шу спектрін сызып көрейік. Тақырып шу, кездейсоқ сигналдар және т.б. бөлек курсқа лайық. Бірақ біз оған жеңіл-желпі тоқталамыз. Wav файлын құру бағдарламамызды өзгертіп, бір процедураны қосамыз:

Double d_random(екі еселік мин, екі есе макс) (қайтару мин + (макс - мин) / RAND_MAX * rand(); )

Ол берілген ауқымда кездейсоқ санды жасайды. Нәтижесінде негізгі келесідей болады:

Int main(int argc, char * argv) ( int i; қалқымалы амплитуда = 32000; srand((таңбасыз 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 және т.б., яғни. біртүрлі гармоникалар. Біздің бірінші гармоникамыз 25 Гц, келесі (үшінші) 75 Гц, содан кейін 125 Гц және т.б., ал амплитудамыз біртіндеп төмендейтінін көреміз. Теория практикамен кездеседі!
Енді назар аударыңыз! Нақты өмірде шаршы толқынды сигналда жоғары және жоғары жиіліктердің гармоникасының шексіз қосындысы бар, бірақ, әдетте, нақты электр тізбектері белгілі бір жиіліктен жоғары жиіліктерді (жолдардың индуктивтілігі мен сыйымдылығына байланысты) өте алмайды. Нәтижесінде осциллограф экранында келесі сигналды жиі көруге болады:


Темекі шегетін меандра

Бұл сурет Википедиядағы суретке ұқсайды, мұнда меандр мысалы үшін барлық жиіліктер емес, тек алғашқы бірнешеу ғана алынады.

Бірінші гармоникалардың қосындысы және сигнал қалай өзгереді

Меандр радиотехникада да белсенді түрде қолданылады (бұл барлық цифрлық технологияның негізі екенін айту керек) және ана оны танымауы үшін ұзын тізбектермен оны сүзуге болатындығын түсіну керек. Ол сонымен қатар әртүрлі құрылғылардың жиілік реакциясын тексеру үшін қолданылады. Тағы бір қызық факт, теледидар кептелістері микросұлбаның өзі ондаған МГц меандр жасаған кезде дәл жоғары гармоника принципі бойынша жұмыс істеді, ал оның жоғары гармоникалары теледидардың жұмыс жиілігінде жүздеген МГц жиіліктерге ие болуы мүмкін және жоғары гармоника теледидар хабар тарату сигналын сәтті бөгеп тастады.

Жалпы, мұндай эксперименттердің тақырыбы шексіз, енді сіз оны өзіңіз жалғастыра аласыз.


Кітап

Мұнда не істеп жатқанымызды түсінбейтіндерге немесе керісінше, түсінетін, бірақ одан да жақсырақ түсінгісі келетіндерге, сондай-ақ DSP оқитын студенттерге мен бұл кітапты өте ұсынамын. Бұл осы посттың авторы болып табылатын манекендерге арналған DSP. Онда күрделі ұғымдар тіпті балаға да қолжетімді тілде түсіндіріледі.

Қорытынды

Қорытындылай келе, математика ғылымдардың патшайымы екенін айтқым келеді, бірақ нақты қолданбай көптеген адамдар оған қызығушылықты жоғалтады. Бұл пост сізді сигналдарды өңдеу және жалпы аналогтық схемалар сияқты тамаша тақырыпты зерттеуге ынталандырады деп үміттенемін (миыңыз ағып кетпес үшін құлақтарыңызды тығындаңыз!). :)
Іске сәт!