10 '-------------------------------------------------------------------------- 20 ' フーリエ解析プログラム H21.11.06 T.Tsuji 30 '-------------------------------------------------------------------------- 40 CLS 3 50 N=100 'データ数 60 N=N-1 70 DIM X(N) 80 FOR I=0 TO N 90 READ X(I) 100 NEXT I 110 '------------------原波形再生 120 X1=30:Y1=140:Z=4:L1=550/N 130 LINE (X1,Y1-100)-(X1,Y1+100),7 140 LINE (X1,Y1)-(X1+(N+1)*L1,Y1),7 150 PSET (X1,Y1),7 160 FOR I=0 TO N 170 LINE -(X1+I*L1,Y1-X(I)*Z),7 171 circle (x1+I*L1,y1-x(i)*z),3 180 NEXT I 190 '-------------------フーリエ級数 計算 200 PI=3.141592# 210 DT=PI*2/N 220 INPUT "次数:";M 230 DIM C1(M),C2(M),C(M) 240 FOR NN=0 TO M 250 C1(NN)=0:C2(NN)=0 260 NEXT NN 270 FOR NN=0 TO M 280 FOR I=0 TO N 290 C1(NN)=C1(NN)+DT/PI*X(I)*COS(NN*I*DT) 300 C2(NN)=C2(NN)+DT/PI*X(I)*SIN(NN*I*DT) 310 C(NN)=SQR(C1(NN)^2+C2(NN)^2) 320 NEXT I 330 NEXT NN 340 '----------------パワースペクトル表示 350 X0=30:Y0=370:Z2=5:L=8 360 LINE (X0-1*Z2,Y0)-(X0+(M+5)*L ,Y0),7 370 FOR I=0 TO M 380 LINE (X0+I*L,Y0-2)-(X0+I*L,Y0+2),7 390 NEXT I 400 PSET(X0,Y0),7 410 FOR I=0 TO M 420 LINE -(X0+I*L ,Y0-C(I)*Z2),6 430 NEXT I 431 'n$="s" 432 'n$=inkey$ : if n$=" " then 440 else 431 440 '---------------波形を再生 441 for i=0 to N 442 circle (x1+I*L1,y1-x(i)*z),3,0 443 next i 450 LNG=360 460 DIM XP(LNG) 470 L3=550/LNG 480 DT=2*PI/LNG 490 FOR I= 0 TO LNG 500 XP=0 510 FOR NN=1 TO M 520 XP=XP+C1(NN)*COS(NN*I*DT)+C2(NN)*SIN(NN*I*DT) 530 NEXT NN 540 XP(I)=XP+C1(0)/2 550 NEXT I 560 PSET (X1,Y1) 570 '-------------再生波形描画 580 FOR I=0 TO LNG 590 LINE -(X1+I*L3,Y1-XP(I)*Z),3 600 NEXT I 610 END 620 '-------------------原波形データ 630 DATA 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 640 DATA -10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10 650 data 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10 660 data -10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10