|
Главная -> Справочник по алгоритмам 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 Пример. Для у\ = 1; «/2=4; уз=5; 1/4=4; 1/5=3; Уб=3,5; .у7=3,5; i/e=3; 1/9= 1; 1/10=0,5; 1/11 = 0,2 и 1/12 = 0 получим Ci = 1,34 И 8572; а=0,5484827557; аз = - 0,6166666667; С4 = - 0,1732050808; 05 = 0,04214761383; fco=2,391666667; 61 = 1,556655773; 62 = - 0,733333333; 63= -0,1666666667; 64= -0.01666666667; 65 = - 0,02667755999; бе=0,1083333333. Отметим, что в отличие от введенных в § 5.1 обозначений здесь использованы обратные (а, обозначено как й,-, а 6, как а,), что связано с применением ряда Фурье, у которого члены ряда - синусы, а не косинусы. Последовательный спектральный анализ кусочно-линейных функций с разрывами обеспечивает точное вычисление спектров функций, которые могут быть синтезированы из треугольников, прямоугольников и трапеций. При этом каждый отсчет у, задается моментом времени ti и двумя значениями: У/ (ti-Q) слева и у, (<,+0) справа, где О понимается как бесконечно малое приращение и. Если yi {ti-0)=yi (/,+0), то в точке и зависимость у (/,) не имеет разрыва. Если имеется разрыв, он задается соответствующими значениями функции до и после разрыва. Например, прямоугольный импульс единичной амплитуды задается значениями h, I/, (Л-0)=0, 1/1 (fl-fO)=l, к, 1/2 (<2- - 0)=1 и 1/2 (<2-f 0) =0. Нумерация отсчетов i далее идет с 1, число отсчетов у {t) равно n. Отсчеты могут идти с произвольным расположением точек u на оси времени. На произвольном участке [u-1, u] функция у (t) аппроксимируется прямой, уравнение которой y(t)-yi~y t-ti\ yi-yi-i ti-ti-i Следовательно, взяв отсчеты с соответствующей стороны, получим для у (t) в ин- тервале (<, -]-0, ti-Q) следующее выражение: (0 = У (<,-.-fO)- i/(f,-0)-i/(f,-i-fO) ti-ti-, l/(<.-0)-!/(<<-+0) Подставляя это. выражение в (5.11) и (5.12), получим (x = nfkAt): г. Со 1 Y[y (г.-1+0)+г/ (<.-0)!. -у (ti-i+G) sin (2х- (/-l))i- -у (fi-i+O)) sin (X (2i-l))l, TnL (<.-i+0) cos (2x (i-1))- -y (/,.-0) cos {2xi)\+ lyit,-0)- -y (i-i+O)) cos (X (Й-1))1. Алгоритм последовательного спектрального анализа для данного случая подобен описанному в § 5.1. Программа 5.8. 10 PRIHTПОСЛЕДОВАТЕЛЬНЫЙ СПЕКТРАЛЬНЫЙ АНАЛИЗ КУСОЧНО-ЛИНЕЙНОЙ 20 PRIHT ФУНКЦИИ,ЗАДАННОЙ Н ОТСЧЕТАМИ,НАЧИНАЯ С 1=0 30 PRIHT С ПРОИЗВОЛЬНЫМ РАСПОЛОИЕНИЕИ ОТСЧЕТОВ 48 INPUTВВЕДИТЕ ОБШУ» ДЛИТЕЛЬНОСТЬ ВРЕМЕННОГО ИНТЕРВАЛА Т=Т 58 1НРиТЗАДАйТЕ ЧИСЛО ОТСЧЕТОВ N=HsliIM CKN),Yil/N) 68 FOR 1=1 TO N:PRINT!3.0!ВВЕДИТЕ Tl-IMNPUT U<I> 70 ШРиТВВЕДИТЕ ЗНАЧЕНИЯ У<:Т-8>» V<T+8> V<8, I),V<bI>!NEXT I 98 ШРиТВВЕДИТЕ ЧАСТОТУ F=F! IF F>8 GOTO 158 180 LET A=8: FOR 1=2 TO H 118 LET A=A+<g<I)-M<I-l))iii<V<lfI-l>+V<:8f 0><2жТ>!НЕХТ I 120 PR INT !F 1.9!ПОСТОЯННАЯ СОСТАВЛЯЮЩАЯ М<;8>=AsLETS=T!«ABS<A> 138 PRIHTСПЕКТРАЛЬНАЯ ПЛОТНОСТЬ S<:8)=S! GOTO 98 158 LET A=8!LET 8=8:LET R=0!LET X8=#Pl!«Fi«T!F0R 1=2 TO N 168 LET Х1=2ж#Р1жржи<1-1>! LET Х2=2ж#Р1жРжи<1) 178 LET ХЗ=<У<8,1>-У<Ы-1)>/<Х2-Х1> 175 LET D=F!«U<I-1)!IF D-INTCIlXl.E-S THEN LETX1=8 188 LET D=Fi«U<I>!. IF Ii-INT<D)<l.E-5 THEN LETX2=e 185 LETS1=SIN<X1>s LETS2=SIN<X2)s LETC1=C0S<X1> s LETC2=C0S<X2> 198 LET А=А+<ХЗж<С2-С1)+У<0г.1)ж82-У<1».1-1>*31)/Х0 288 LET В=В+<ХЗж<32-31)-У<8П)жС2+УС1И-1>жС1>/Х8 218 NEXT Is LET 6=вОР<АжА+ВжВ>: IF G=8 GOTO 238 215 LET Z=A/-G! IF ABS<Z><1.E-11 THEN LET Z=8 228 LET R=-ACS<Z>! IF B<0 THEN LET R=-R 238 PRINT!F1.9! АМПЛИТУДА M<F)=G 240 PRINT СПЕКТРАЛЬНАЯ ПЛОТНОСТЬ 3<Р>=бжТ/2 258 PRINT ФАЗА В ГРАДУСАХ a<F>=IiE8<R)!G0T0 98!ENIi Пример. Для примера к программе 5.1 (вычисление спектра прямоугольного импульса) вводим Г = 4-10- с, N = 32. ti = Q, F(t-0}=0, F(t+Q) = l, t2=l-\Q- с, F{t - G) = l, F{t + 0}=0. /=250000. Получим G (0) =0.25. S (0) = 1 • 10- .G if) = = 0,4501581581, S (f) =9,003163162-10" и Ф (f) = -45° (эти значения совпадают с точными). В этой программе нумерация отсчетов i идет с1,у (О =f (Г), М (П =G (f), S(f)S{F) и ф(ПФ(£). Параллельный спектральный анализ кусочно-линейной функции с разрывами основан на применении описанной выше методики при одновременном вычислении рядов fit, Программа 5.9. А (f) =АЬ if) +А% (/)", а ФЧХ ф(П = = -arctg И5 (f)/c(f)]. Здесь а(t)-производная ПХ fi (0. а (0) значение а (t) при 1 = 0. Численный метод расчета АЧХ и ФЧХ по ПХ базируется на кусочно-линейной аппроксимации а (/) в интервале между ее отсчетами у,. Тогда а it) Аа(0 При этом а {t) представляется ступенчатой линией, смещенной иа~-Д</2, что создает значительные погрешности в вычислении ФЧХ. Сместив эту линию на - Д 2, можно значительно уменьшить эти погрешности. Далее, 18 РР1НТПЙРйЛЯЕЯЬНЫй СПЕКТРАЛЬНЫЙ АНАЛИЗ И ТРИГОНОМЕТРИЧЕСКАЯ 28 PRINTИНТЕРПОЛЯЦИЯ КУСОЧНО-ЛИНЕЙНОЙ ФУНКЦИИ С РАЗРЫВАМИ ПРИ 38 PRINT ПРОИЗВОЛЬНОМ РАСПОЛОЖЕНИИ ОТСЧЕТОВ 40 PRINT" 50 ШРИТЗАДАЙТЕ КРАТНОСТЬ ЧАСТОТ M=M!IiIM A<M>i.E<M> 60 INPUTЗАДАЙТЕ ЧАСТОТУ F=F 78 FOR К=0 ТО M:LETA«)=0sLETB«)=0:NEXT К 88 ЬЕТХ=2ж#Р1жР:1ЫРиТЗАДАйТЕ ДЛИТЕЛЬНОСТЬ ВСЕГО ИНТЕРВАЛА Т=Т 90 LETZ=X*T/2: INPUTЗАДАЙТЕ ЧИСЛО ОТСЧЕТОВ N=N 100 INPUTВВЕДИТЕ МОМЕНТ ВРЕМЕНИ Т 0=Т0 118 INPUTВВЕДИТЕ ЗНАЧЕНИЕ ФУНКЦИИ F<T 0+0>=V0 120 FOR 1=1 ТО N-lSPRINTВВЕДИТЕ МОМЕНТ ВРЕМЕНИ Т!3.0!1 130 INPUT Т1! INPUTВВЕДИТЕ ЗНАЧЕНИЯ F<T-0>i.F<T+0) VlrV2 148 LETV=V1-V0SFOR К=1 ТО М!ЬЕТХ0=ХжКжТ0!ЬЕТХ1=ХжКжТ1 150 LETX2=V/<Xl-X0):LETD=Zi«K!LETS0=SIN<X0> 160 LETS1=SIN<X1)!LETC0=COS<X0>!LETC1=COS<X1> 170 ЬЕТА<К>=А<К) + <У1ж81-У0ж30+Х2жа1-С0>>/11 188 ЬЕТВ<К)=В<к:>+<У0жС0-У1жС1+Х2ж«1-30>)/11!НЕХТ К 190 LETA<:0)=A<0)+<Tl-T0>iii<V0-i-Vl>/2/T!LETV0=V2 200 LETT0=T1!NEXT IsLETE=0 210 PRINT К МОДУЛЬ М<К) СПЕКТР.ПЛ0ТН.5<К> ФАЗА 0<ГРАД) 220 PRINT!3.0!0i !F1.5!A<8>; А<8)жТ 230 LETE=0:FOR К=1 ТО М!ЬЕТ8=ЗаР<А<К>жА<К>+Е<К)жВ<К>> 235 IF К=1 THEN LETG1=G 240 LETE=E-bGi«G:LETe=0slF 0=8 THEN 260 250 LETQ=-ACS<A<K)/G>!IF B<K><0 THEN LETa=-a 260 PRINT !3.e!K; !F1.5!Gi бжТ/2; DEG<Q>!HEXT К 265 PR INTКОЭФФИЦИЕНТ ГАРМОНИК КГ=SaR<E-Gli«Gl Jz-Gl 270 PRINT: INPUTВВЕДИТЕ ВРЕМЯ TX=U:LETV=A<0>:LETP=X!«U 280 FOR K=l TO M:LETF=W!SiK:LETV=V+A<K>iiiCOS<W>+B<K>*SIN<W>:NEXT К 298 PRINTЗНАЧЕНИЕ V<tX>=V:GOTO 270!END Эту программу можно проверить по примеру, приведенному к программам 5.1 и 5.2. Программа 5.9 обеспечивает одновременно и тригонометрическую интерполяцию, т. е. вычисление у (О для любого заданного t с помощью гармонического синтеза. Расчет амплитудно-частотной (АЧХ) и фазо-частотной (ФЧХ) характеристик линейной системы по ее переходной характеристике (ПХ) а (t) является одним из важных практических приложений спектрального анализа. Он основан на следующей связи этих характеристик: А (/ш) =а (0) +Ас (<й) +Ms (ш). г" где Aq (<й) =] fi (t) cos bit dt, Л5 (<й) = о =\a {t\,s\n(iitdt, причем АЧХ (f = to/2n) о применяя для вычисления Aq (<й) и Л5 (<й) метод численного интегрирования с поправочными коэффициентами (см. § 5.1), получим [9, 10]: Ас(П = sin Ш М) V = nfM L ~ > (2 -1)), As (f) = =:ШУ. («,.-a,. Osin (л/ДМ2/-1)). щ д/ i- По вводимым отсчетам ПХ а, = а (<,) находим Aq (ш). As (<й) для. заданных ) и Д после чего находим точки АЧХ А (f) и ФЧХ Ф(П- 05 PRINT-ВЫЧИСЛЕНИЕ ЙЧХ И ФЧХ ПО ПХ 10 INPUT ЧИСЛО ОТСЧЕТОВ ПХ М=М 20 INPUT ft=X! LETM=M-l: DIM ft<M) 30 FOR 1=1 TO M! INPUT ft=V 40 LETfta.)=V-X! LETX=V 58 NEXT I! INPUT ШАГ T=T 68 LETC=8! LETS=8 78 INPUT ЧАСТОТА F=F 75 иЕТР=<#Р1>жРжТ 88 FOR 1=1 TO M 90 ЬЕТС=А<1>жС03<Рж<2ж1-1>)+С 108 1£Т5=А<Пж31И<:Рж<2*1-1)>+5!НЕХТ I 118 LETC1=C*SIN<P>/P! LET31=Si«SIN<P>/P 128 PRINTКОЭФ. ПЕРЕДАЧИ ФАЗОВЫЙ УГОЛ 138 PRINT !2.3! 3G!R<:C1"2+Sl"2>fDEG<-ATN<S/C)) 148 GOTO 68! END Пример. Для ai = 0,05; 02 = 0,4; 03 = = 0,75; 04=1; 05=1,16; Об = 1,2; 07=l,16; 08=1,08; 09=1,02; Oi„=l,0 и Д; = 0,1 получим /4 (2)=0,2367203833, Ф(2)= = -160,4352421°. Метод Берга служит для расчета спектра усеченных косинусоид, получаемых при воздействии X (О =хм cos -f Хп, действующем на входе системы с передаточной характеристикой y = f (х), аппроксимированной двумя отрезками прямых: у {х) =0 при хх„, y{x)=Sx при а:> хо, где S - крутизна передаточной характеристики. При этом косинусоидальный импульс характеризуется амплитудой и углом отсечки 0 = arccos [(xo-Xn}/xf\. Метод Берга сводится к расчетам по формулам <ч=Уа/Ум= (sin G -G cos 6)/я (I -cos G), "=Ум I/Ум = (G - sin G cos G) /л (1 - cos G), Умк 2 sin feG cos 0 -fe cos feG sin G ""m fe (fe-l) (1-cosG) Программа 5.11. Пример. Для заданной амплитуды хд, = Л = 10, сдвига Xo = F = 0 и порога xo = = Х0=0 получим угол G = Q = 90°, ао = =/10 = 0,3183098862, а, =Л 1=0,5 и К2 = = Л2 = 0,2122065908.- § 5.3. Статистический анализ и подготовка гистрограмм Одномерный массив из N некоторых цифровых данных Xi характеризуется совокупностью статистических характеристик (одномерная статистика), перечисленных ниже. Начальные моменты fe-ro порядка Обычно fe = l, 2, 3 и 4 (точность вычисления гпк при fe> 4 низкая). Центральные моменты к-го порядка Мк (x-)=-J [х-,-от, (х)]. 1=1 Момент М] (а:)=0. 10 PRIHTPAC4ET КОЭФФИЦИЕНТОВ БЕРГА 20 PRINTВВЕДИТЕ КОД n 30 PRINT ЕСЛИ УГОЛ ОТСЕЧКИ НЕ ЗАДАЕТСЯ 40 IWUT If ЕСЛИ УГОЛ ОТСЕЧКИ ЗАДАЕТСЯ n=n 50 IF Н=0 GOTO 80 60 IF N=1 GOTO 125 78 PRINTКОД НАБРАН НЕВЕРНОsGOTO 15 80 I №UTЗАДАЙТЕ АМПЛИТУДУ A=A 90 I №UTЗАДАЙТЕ ПОСТОЯННЫЙ СДВИГ F=F 188 INPUTЗАДАЙТЕ ПОРОГ X8=X 110 LETQ=ACS<<X-F>/A> 128 PRINT!F1.9!УГОЛ ОТСЕЧКИ В ГРАДУСАХ a=I€G<G!>!GOTO 138 125 INPUTBBEAHTE УГОЛ ОТСЕЧКИ В ГРАДУСАХ e!=G!!leta=RAD<a) 138 иЕТУ0=<В1НШ)-ажСО5Ш) >/<#Р1ж< l-COS<a) ) > 148 PRINTКОЭФФИЦИЕНТ A8=V0 158 letvi=<:e-sin<e>s«cos<a>v<#pi*a~cos<:G!>>> 160 PRINTКОЭФФИЦИЕНТ A1=V1 170 ШРиТЗАДАйТЕ НОМЕР ВЫСШЕЙ ГАРМОНИКИ К>2 К=К 180 1£ТУ=2ж<8Ш<КжО)жС05<е)-КжС08<Кже)ж31Н<а)) 190 LETV=V/<#PIi«Ki«<: <К"2)-1 >ш< l-COSQ) » 200 PRINT!2.0!КОЭФФИЦИЕНТ АК=!1.9!V!60T0 178SEND 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 0.0327 |
|