ノスタルジアpc-9801 その10
概要
整理していたら、フロッピーディスクが出てきた。
せっかくなので、エミュで動かしてみた。
環境
- windows vista
- t98-next
- disk explorer
n88basicで、AM変調、復調。
サンプルコード
10 CLS 3
20 DEFSNG A-Z
30 PI = 3.14159265#
40 DIM SRC(300)
50 DIM AM(300)
60 DIM I(300)
70 DIM Q(300)
80 DIM I2(300)
90 DIM Q2(300)
100 DIM O(300)
110 FOR T = 0 TO 299
120 SRC(T) = SIN(T / 8000 * 2 * PI * 220) * 2 - 1
130 NEXT
140 FOR T = 0 TO 299
150 AM(T) = (.6 * SIN(T / 8000 * 2 * PI * 220) + 1!) * SIN(T / 8000 * 2 * PI * 3000) * 2 - 1
160 NEXT
170 FOR T = 0 TO 299
180 I(T) = AM(T) * COS(T / 8000 * 2 * PI * 2800)
190 Q(T) = AM(T) * SIN(T / 8000 * 2 * PI * 2800)
200 NEXT
210 Q = 1!
220 OMEGA = 2! * PI * 300 / 8000
230 ALPHA = SIN(OMEGA) / (2! * Q)
240 A0 = 1! + ALPHA
250 A1 = -2! * COS(OMEGA)
260 A2 = 1! - ALPHA
270 B0 = (1! - COS(OMEGA)) / 2!
280 B1 = 1! - COS(OMEGA)
290 B2 = (1! - COS(OMEGA)) / 2!
300 IN1 = 0
310 IN2 = 0
320 OUT1 = 0
330 OUT2 = 0
340 FOR T = 0 TO 299
350 I2(T) = B0 / A0 * I(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
360 IN2 = IN1
370 IN1 = I(T)
380 OUT2 = OUT1
390 OUT1 = I2(T)
400 NEXT
410 IN1 = 0
420 IN2 = 0
430 OUT1 = 0
440 OUT2 = 0
450 FOR T = 0 TO 299
460 Q2(T) = B0 / A0 * Q(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
470 IN2 = IN1
480 IN1 = Q(T)
490 OUT2 = OUT1
500 OUT1 = Q2(T)
510 NEXT
520 FOR T = 0 TO 299
530 O(T) = SQR(I2(T) * I2(T) + Q2(T) * Q2(T)) * 4 - 6
540 NEXT
550 FOR T = 0 TO 299
560 X = T
570 Y = 25 + SRC(T) * 2
580 PSET (T, Y)
590 Y = 50 + AM(T) * 2
600 PSET (T, Y)
610 Y = 75 + O(T) * 2
620 PSET (T, Y)
630 NEXT
10 CLS 3
20 DEFSNG A-Z
30 PI = 3.14159265#
40 DIM SRC(300)
50 DIM AM(300)
60 DIM I(300)
70 DIM Q(300)
80 DIM I2(300)
90 DIM Q2(300)
100 DIM O(300)
110 FOR T = 0 TO 299
120 SRC(T) = SIN(T / 8000 * 2 * PI * 220) * 2 - 1
130 NEXT
140 FOR T = 0 TO 299
150 AM(T) = (.6 * SIN(T / 8000 * 2 * PI * 220) + 1!) * SIN(T / 8000 * 2 * PI * 3000) * 2 - 1
160 NEXT
170 FOR T = 0 TO 299
180 I(T) = AM(T) * COS(T / 8000 * 2 * PI * 2800)
190 Q(T) = AM(T) * SIN(T / 8000 * 2 * PI * 2800)
200 NEXT
210 Q = 1!
220 OMEGA = 2! * PI * 300 / 8000
230 ALPHA = SIN(OMEGA) / (2! * Q)
240 A0 = 1! + ALPHA
250 A1 = -2! * COS(OMEGA)
260 A2 = 1! - ALPHA
270 B0 = (1! - COS(OMEGA)) / 2!
280 B1 = 1! - COS(OMEGA)
290 B2 = (1! - COS(OMEGA)) / 2!
300 IN1 = 0
310 IN2 = 0
320 OUT1 = 0
330 OUT2 = 0
340 FOR T = 0 TO 299
350 I2(T) = B0 / A0 * I(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
360 IN2 = IN1
370 IN1 = I(T)
380 OUT2 = OUT1
390 OUT1 = I2(T)
400 NEXT
410 IN1 = 0
420 IN2 = 0
430 OUT1 = 0
440 OUT2 = 0
450 FOR T = 0 TO 299
460 Q2(T) = B0 / A0 * Q(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
470 IN2 = IN1
480 IN1 = Q(T)
490 OUT2 = OUT1
500 OUT1 = Q2(T)
510 NEXT
520 FOR T = 0 TO 299
530 O(T) = SQR(I2(T) * I2(T) + Q2(T) * Q2(T)) * 4 - 6
540 NEXT
550 FOR T = 0 TO 299
560 X = T
570 Y = 25 + SRC(T) * 2
580 PSET (T, Y)
590 Y = 50 + AM(T) * 2
600 PSET (T, Y)
610 Y = 75 + O(T) * 2
620 PSET (T, Y)
630 NEXT
以上。
Author And Source
この問題について(ノスタルジアpc-9801 その10), 我々は、より多くの情報をここで見つけました https://qiita.com/ohisama@github/items/dcb71d506f17c957052b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .