亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? infoseqs_f.txt

?? Fax and soft modem library source code.
?? TXT
字號:
#include <stdio.h>	// ???
#include <math.h>
#include <coro.h>

#include <complex.h>
#include <filters.h>
#include <phrdec.h>
#include <debug.h>
#include <myaudio.h>
#include <mystdio.h>
#include <sinegen.h>
#include <goertzel.h>

#include "modem.h"

#define SECS(f) ((int) (f * SAMPLERATE + 0.5))

#define SYMBLEN (SAMPLERATE/600)    /* 600 bps */
#define DELAY	SECS(0.04)	    /* 40 ms */

struct Bitsample
  { Bitsample(float fx, float tx) { f = fx; t = tx; }
    float f;	/* phase output from phase reversal detector */
    float t;	/* timing resonator output */
  };

static fspec *fefs = mkfilter("-Bu -Bp -o 4 -a 0.21875 0.28125");   /* 2100 .. 2700 Hz bandpass     */
static fspec *bpfs = mkfilter("-Re 500 -Bp -a 0.25");               /* 2400 Hz resonator            */   // was Q=100
static fspec *trfs = mkfilter("-Re 100 -Bp -a 0.0625");             /* 600 Hz resonator             */
static fspec *lpfs1 = mkfilter("-Av 8");                            /* removes harmonics of 1200 Hz */
static fspec *lpfs2 = mkfilter("-Bu -Lp -o 4 -a 0.03125");          /* 300  Hz lowpass              */

static phr_detector *pdec;
static filter *fef, *lpf, *tres;
static debugger *rdbg;
static int mstate;
static sinegen *carrier;

static void rxside(), tidydebug(), getranging(), getinfo(), getreversal();
static int gbit();
static Bitsample nextsample();
static void getprobing();
static void txside();
static void pbit(int), outsymbol(float);


global void infoseqs()
  { my_alarm(10);		    /* 10 secs timeout */
    setduplex(DELAY - 2*SYMBLEN);   /* 40 ms minus RC filter delay */
    mstate = 0;
    coroutine *rx = new coroutine(rxside);
    coroutine *tx = new coroutine(txside);
    inparallel(rx, tx);
    my_alarm(0);		    /* cancel alarm */
  }

static void rxside()
  { rdbg = new debugger(3, 4000);
    atexit(tidydebug);
    getranging();
    getprobing();
    callco(mainco);
  }

static void tidydebug()
  { rdbg -> print("debug_rg.grap");
  }

static void getranging()
  { pdec = new phr_detector(bpfs, lpfs1);
    lpf = new filter(lpfs2);
    fef = new filter(fefs);
    tres = new filter(trfs);
    int t1;
    getinfo();
    mstate++;					/* 0 to 1 */
    bool got = false;
    until (got)
      { getinfo();
	int t = samplecount;
	getreversal();
	t1 = samplecount;
	if (after(t1, t+460)) got = true;	/* got a genuine phase reversal */
      }
    mstate++;					/* 1 to 2 */
    getreversal();
    int nt = samplecount - t1;
    float ms = (float) (nt - 2*DELAY) / (float) SAMPLERATE * 1000.0f;
    char nts[32]; sprintf(nts, "%.1f", ms); infomsg("NT=%d; actual RTD = %sms", nt, nts);
    delete pdec; delete lpf; delete fef; delete tres;
  }

static void getinfo()
  { uchar bits = 0xff;
    until (bits == 0x72) bits = (bits << 1) | gbit();	/* look for sync byte */
    for (int i=0; i<37; i++)
      { int b = gbit();
	putc('0' + b, stderr);
	if (i%8 == 7) putc(' ', stderr);
      }
    putc('\r', stderr); putc('\n', stderr);
  }

static void getreversal()
  { while (pdec -> reversal()) nextsample();	/* wait for phase to stabilize */
    until (pdec -> reversal()) nextsample();	/* wait for phase change */
  }

static int gbit()
  { static uchar bits = 0;
    Bitsample z = nextsample();
    while (z.t > 0.0) z = nextsample();
    while (z.t <= 0.0) z = nextsample();
    for (int i = 0; i < SYMBLEN/4; i++) z = nextsample();
    rdbg -> tick('X');
    bits = (bits << 1) | (z.f > 0.0);
    uchar tab[] = { 0, 1, 1, 0 };
    return tab[bits & 3];   /* diff. decode */
  }

static Bitsample nextsample()
  { float x = insample();
    x = fef -> fstep(x);
    pdec -> insert(x);
    float fz = lpf -> fstep(pdec -> phase);
    float tz = tres -> fstep(fz*fz);
    rdbg -> insert(x, fz, tz);
    return Bitsample(fz, tz);
  }

inline float hypot(complex z) { return hypot(z.im, z.re); }
inline float atan2(complex z) { return atan2(z.im, z.re); }

static void getprobing()
  { for (int i = 0; i < SECS(0.18); i++) insample();	/* discard 10 ms A + 160 ms L1 + 10 ms */
    goertzel **gvec = new goertzel*[25];
    for (int i = 0; i < 25; i++) gvec[i] = new goertzel((i+1)*150.0);
    for (int i = 0; i < 6000; i++)
      { float x = insample();
	for (int j = 0; j < 25; j++) gvec[j] -> insert(x);
      }
    uint pm = 0x07a4402;	/* says which cosines are inverted */
    for (int i = 0; i < 25; i++)
      { complex z = gvec[i] -> result();
	float mag = hypot(z) / 6000.0, ph = atan2(z) / M_PI;
	if (pm & 1) ph += 1.0;
	while (ph < -1.0) ph += 2.0;
	while (ph >= 1.0) ph -= 2.0;
	printf("%4d   mag=%6.3f   ph=%6.3f PI\r\n", (i+1)*150, mag, ph);
	pm >>= 1;
	delete gvec[i];
      }
    delete gvec;
  }

static uchar info0c[] = { 0xf7, 0x2f, 0xf8, 0x00, 0x76, 0x8f, 0x80 };

static float shapetab[2*SYMBLEN+1] =
  { +1.0000000000, +0.9926801157, +0.9709416672, +0.9354394838,
    +0.8872360730, +0.8277597175, +0.7587485480, +0.6821831650,
    +0.6002108802, +0.5150649954, +0.4289827154, +0.3441252800,
    +0.2625037258, +0.1859133401, +0.1158793838, +0.0536160576,
    -0.0000000000, -0.0444411170, -0.0795250663, -0.1053974855,
    -0.1225017354, -0.1315382297, -0.1334156708, -0.1291968976,
    -0.1200421673, -0.1071526632, -0.0917168476, -0.0748619803,
    -0.0576127231, -0.0408582688, -0.0253289076, -0.0115824006,
    +0.0000000000,
  };

static void txside()
  { carrier = new sinegen(1200.0);
    pbit(0);	/* the "point of arbitrary phase" */
    while (mstate < 1)
      { int p = 0; uchar w;
	for (int i=0; i<45; i++)
	  { if (i%8 == 0) w = info0c[p++];
	    pbit(w >> 7);
	    w <<= 1;
	  }
      }
    while (mstate < 2) pbit(0);
    pbit(1);	/* phase reversal */
    for (int i=0; i<38; i++) pbit(0);
    for (;;) outsymbol(0.0);	/* silence */
  }

static void pbit(int b)
  { static float x = 1.0;
    if (b) x = -x;  /* diff. encode */
    outsymbol(x);
  }

static void outsymbol(float x)
  { static float a0 = 0.0, a1 = 0.0, a2 = 0.0, a3 = 0.0;
    a0 = a1; a1 = a2; a2 = a3; a3 = x;
    for (int k = 0; k < SYMBLEN; k++)
      { /* baseband pulse shaping */
	float s = shapetab[SYMBLEN + k]	  * a0
		+ shapetab[k]		  * a1
		+ shapetab[SYMBLEN - k]	  * a2
		+ shapetab[2*SYMBLEN - k] * a3;
	/* modulate onto carrier */
	float cx = carrier -> fnext();
	outsample(s*cx);
      }
  }



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久免费观看| 亚洲国产精品影院| 亚洲人成7777| 国内精品伊人久久久久av影院| 久久99久久99精品免视看婷婷 | 亚洲一区免费视频| 国产精品一二二区| 欧美高清www午色夜在线视频| 国产日韩欧美精品电影三级在线| 日韩不卡一区二区三区| 91久久精品国产91性色tv| 久久综合九色欧美综合狠狠| 午夜精品福利一区二区三区蜜桃| 国产91精品露脸国语对白| 91精品国产综合久久福利软件| 亚洲欧美另类图片小说| 国产69精品久久久久毛片| 日韩免费一区二区| 日本一不卡视频| 欧美r级电影在线观看| 亚洲成年人网站在线观看| 91免费观看视频| 国产精品久久久久影院亚瑟| 成人av在线播放网址| 国产欧美视频一区二区| 激情都市一区二区| 精品久久久久一区二区国产| 久久精品99久久久| 日韩一区二区三区免费看 | 久久99精品视频| 欧美大胆一级视频| 久久精品国产亚洲高清剧情介绍| 欧美一区欧美二区| 日韩不卡一二三区| 日韩欧美色综合网站| 久久99热狠狠色一区二区| 欧美一区二区久久| 毛片不卡一区二区| www亚洲一区| 国产九色sp调教91| 国产女同性恋一区二区| 成人黄色免费短视频| 亚洲乱码国产乱码精品精小说 | 久久久www成人免费无遮挡大片| 久久精品国产精品亚洲精品| 欧美电影免费观看完整版| 久久99久久久欧美国产| 久久综合九色综合欧美98| 国内精品第一页| 中文字幕五月欧美| 欧美自拍偷拍一区| 蜜臀精品久久久久久蜜臀| 久久久噜噜噜久久中文字幕色伊伊 | 国产成人综合精品三级| 久久久久久久综合| av日韩在线网站| 亚洲网友自拍偷拍| 精品视频在线免费看| 久久成人精品无人区| 国产欧美精品日韩区二区麻豆天美 | 亚洲二区在线视频| 欧美一区二区不卡视频| 久久国产视频网| 亚洲欧美在线视频观看| 欧美巨大另类极品videosbest| 国产精品888| 亚洲一区二区三区四区的 | 亚洲视频在线一区二区| 欧美另类高清zo欧美| 国产一区不卡视频| 亚洲小少妇裸体bbw| 国产丝袜欧美中文另类| 欧美性猛片xxxx免费看久爱 | 日本欧美韩国一区三区| 国产精品剧情在线亚洲| 欧美日本在线播放| 不卡电影一区二区三区| 蜜芽一区二区三区| 亚洲精品一二三四区| 久久久精品综合| 欧美一区二区播放| 色8久久人人97超碰香蕉987| 国产成人夜色高潮福利影视| 亚洲bt欧美bt精品| 亚洲欧美日韩国产另类专区| 久久人人97超碰com| 欧美日本视频在线| 91浏览器打开| www.亚洲国产| 国产精品99久| 激情欧美一区二区三区在线观看| 亚洲一区在线电影| 中文字幕五月欧美| 欧美国产精品v| 精品va天堂亚洲国产| 56国语精品自产拍在线观看| 91福利精品视频| 成人av手机在线观看| 国产一区二区不卡老阿姨| 美女诱惑一区二区| 香蕉久久夜色精品国产使用方法| 亚洲三级在线播放| 国产精品久久毛片av大全日韩| 2020国产成人综合网| 日韩一卡二卡三卡四卡| 91精品蜜臀在线一区尤物| 欧美色图片你懂的| 欧美三区在线观看| 欧美日韩综合在线免费观看| 欧美丝袜丝nylons| 欧美系列一区二区| 欧美午夜视频网站| 欧美日本高清视频在线观看| 欧美伊人久久久久久久久影院| 一本高清dvd不卡在线观看| 91麻豆视频网站| 99国产精品一区| 91污片在线观看| 在线观看中文字幕不卡| 欧美男人的天堂一二区| 欧美一级片免费看| 亚洲精品在线免费观看视频| 精品国产制服丝袜高跟| 久久久久国产一区二区三区四区| 久久影视一区二区| 国产视频一区不卡| 国产精品久久99| 亚洲男同1069视频| 亚洲一级在线观看| 日本不卡高清视频| 国产精品一区二区男女羞羞无遮挡| 国产精品综合视频| 91在线小视频| 欧美嫩在线观看| 久久久国产精华| 亚洲毛片av在线| 久久国产精品72免费观看| 国产乱人伦偷精品视频免下载| www.性欧美| 91精品久久久久久久91蜜桃 | 日韩精品中文字幕在线一区| 久久久国产午夜精品 | 欧美亚洲图片小说| 日韩精品自拍偷拍| 亚洲欧美怡红院| 日日摸夜夜添夜夜添精品视频| 久久99在线观看| 91美女在线观看| 日韩一区二区免费在线观看| 国产欧美日韩另类视频免费观看| 亚洲精选一二三| 国产一区二区福利| 欧美三电影在线| 日本一区二区成人| 强制捆绑调教一区二区| 99综合影院在线| 日韩午夜精品视频| 综合欧美亚洲日本| 国精品**一区二区三区在线蜜桃| 99久久久久久| 精品日韩在线观看| 亚洲精品va在线观看| 国产精品一二三| 日韩一区二区三区视频在线| 亚洲精品高清在线| 丁香婷婷综合激情五月色| 欧美色区777第一页| 中文字幕不卡的av| 久久99精品久久久久久| 欧美精品在线观看一区二区| 久久久久久亚洲综合影院红桃| 亚州成人在线电影| 北岛玲一区二区三区四区| 精品区一区二区| 五月天一区二区三区| 欧洲精品中文字幕| 亚洲欧洲日韩av| 成人小视频免费在线观看| 日韩精品一区二| 另类调教123区 | 国产亚洲午夜高清国产拍精品| 亚洲欧美偷拍三级| 成人深夜福利app| 欧美sm极限捆绑bd| 美女网站视频久久| 69av一区二区三区| 婷婷中文字幕一区三区| 日本精品免费观看高清观看| 国产精品久久久久久久久免费相片| 精品制服美女久久| 欧美一区二区观看视频| 日韩电影免费在线看| 欧美日韩视频专区在线播放| 一区二区三区国产精品| 在线视频一区二区三区| 一区二区三区四区在线免费观看| av网站一区二区三区| 亚洲伦在线观看| 日本丰满少妇一区二区三区| 亚洲女同ⅹxx女同tv|