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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? v29tx.h

?? 傳真通信V27 V29 V17 T38解調(diào)與解碼
?? H
字號(hào):
/* * SpanDSP - a series of DSP components for telephony * * v29tx.h - ITU V.29 modem transmit part * * Written by Steve Underwood <steveu@coppice.org> * * Copyright (C) 2003 Steve Underwood * * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: v29tx.h,v 1.28 2007/05/12 12:25:39 steveu Exp $ *//*! \file */#if !defined(_SPANDSP_V29TX_H_)#define _SPANDSP_V29TX_H_/*! \page v29tx_page The V.29 transmitter\section v29tx_page_sec_1 What does it do?The V.29 transmitter implements the transmit side of a V.29 modem. This canoperate at data rates of 9600, 7200 and 4800 bits/s. The audio output is astream of 16 bit samples, at 8000 samples/second. The transmit and receive sideof V.29 modems operate independantly. V.29 is mostly used for FAX transmission,where it provides the standard 9600 and 7200 bits/s rates (the 4800 bits/s modeis not used for FAX). \section v29tx_page_sec_2 How does it work?V.29 uses QAM modulation. The standard method of producing a QAM modulatedsignal is to use a sampling rate which is a multiple of the baud rate. The rawsignal is then a series of complex pulses, each an integer number of sampleslong. These can be shaped, using a suitable complex filter, and multiplied by acomplex carrier signal to produce the final QAM signal for transmission. The pulse shaping filter is only vaguely defined by the V.29 spec. Some of theother ITU modem specs. fully define the filter, typically specifying a rootraised cosine filter, with 50% excess bandwidth. This is a pity, since itincreases the variability of the received signal. However, the receiver'sadaptive equalizer will compensate for these differences. The currentdesign uses a root raised cosine filter with 25% excess bandwidth. Greaterexcess bandwidth will not allow the tranmitted signal to meet the spectralrequirements.The sampling rate for our transmitter is defined by the channel - 8000 persecond. This is not a multiple of the baud rate (i.e. 2400 baud). The baudinterval is actually 10/3 sample periods. Instead of using a symmetricFIR to pulse shape the signal, a polyphase filter is used. This consists of10 sets of coefficients, offering zero to 9/10ths of a baud phase shift as wellas root raised cosine filtering. The appropriate coefficient set is chosen foreach signal sample generated.The carrier is generated using the DDS method. Using two second order resonators,started in quadrature, might be more efficient, as it would have less impact onthe processor cache than a table lookup approach. However, the DDS approachsuits the receiver better, so the same signal generator is also used for thetransmitter. The equation defining QAM modulation is:    s(n) = A*cos(2*pi*f*n + phi(n))where phi(n) is the phase of the information, and A is the amplitude of the informationusing the identity    cos(x + y) = cos(x)*cos(y) - sin(x)*sin(y)    we get    s(n) = A {cos(2*pi*f*n)*cos(phi(n)) - sin(2*pi*f*n)*sin(phi(n))}    substituting with the constellation positions    I(n) = A*cos(phi(n))    Q(n) = A*sin(phi(n))    gives    s(n) = I(n)*cos(2*pi*f*n) - Q(n)*sin(2*pi*f*n)*/#define V29_TX_FILTER_STEPS     9/*!    V.29 modem transmit side descriptor. This defines the working state for a    single instance of a V.29 modem transmitter.*/typedef struct{    /*! \brief The bit rate of the modem. Valid values are 4800, 7200 and 9600. */    int bit_rate;    /*! \brief The callback function used to get the next bit to be transmitted. */    get_bit_func_t get_bit;    /*! \brief A user specified opaque pointer passed to the callback function. */    void *user_data;    /*! \brief Gain required to achieve the specified output power, not allowing               for the size of the current constellation. */    float base_gain;    /*! \brief Gain required to achieve the specified output power, allowing               for the size of the current constellation. */#if defined(USE_FIXED_POINT)    int32_t gain;#else    float gain;#endif    /*! \brief The route raised cosine (RRC) pulse shaping filter buffer. */#if defined(USE_FIXED_POINT)    complexi16_t rrc_filter[2*V29_TX_FILTER_STEPS];#else    complexf_t rrc_filter[2*V29_TX_FILTER_STEPS];#endif    /*! \brief Current offset into the RRC pulse shaping filter buffer. */    int rrc_filter_step;    /*! \brief The register for the data scrambler. */    unsigned int scramble_reg;    /*! \brief The register for the training scrambler. */    uint8_t training_scramble_reg;    /*! \brief TRUE if transmitting the training sequence, or shutting down transmission.               FALSE if transmitting user data. */    int in_training;    /*! \brief A counter used to track progress through sending the training sequence. */    int training_step;    /*! \brief An offset value into the table of training parameters, used to match the               training pattern to the bit rate. */    int training_offset;    /*! \brief The current phase of the carrier (i.e. the DDS parameter). */    uint32_t carrier_phase;    /*! \brief The update rate for the phase of the carrier (i.e. the DDS increment). */    int32_t carrier_phase_rate;    /*! \brief The current fractional phase of the baud timing. */    int baud_phase;    /*! \brief The code number for the current position in the constellation. */    int constellation_state;    /*! \brief The get_bit function in use at any instant. */    get_bit_func_t current_get_bit;    /*! \brief Error and flow logging control */    logging_state_t logging;} v29_tx_state_t;#if defined(__cplusplus)extern "C"{#endif/*! Adjust a V.29 modem transmit context's power output.    \brief Adjust a V.29 modem transmit context's output power.    \param s The modem context.    \param power The power level, in dBm0 */void v29_tx_power(v29_tx_state_t *s, float power);/*! Initialise a V.29 modem transmit context. This must be called before the first    use of the context, to initialise its contents.    \brief Initialise a V.29 modem transmit context.    \param s The modem context.    \param rate The bit rate of the modem. Valid values are 4800, 7200 and 9600.    \param tep TRUE is the optional TEP tone is to be transmitted.    \param get_bit The callback routine used to get the data to be transmitted.    \param user_data An opaque pointer.    \return A pointer to the modem context, or NULL if there was a problem. */v29_tx_state_t *v29_tx_init(v29_tx_state_t *s, int rate, int tep, get_bit_func_t get_bit, void *user_data);/*! Reinitialise an existing V.29 modem transmit context, so it may be reused.    \brief Reinitialise an existing V.29 modem transmit context.    \param s The modem context.    \param rate The bit rate of the modem. Valid values are 4800, 7200 and 9600.    \param tep TRUE is the optional TEP tone is to be transmitted.    \return 0 for OK, -1 for bad parameter */int v29_tx_restart(v29_tx_state_t *s, int rate, int tep);/*! Release a V.29 modem transmit context.    \brief Release a V.29 modem transmit context.    \param s The modem context.    \return 0 for OK */int v29_tx_release(v29_tx_state_t *s);/*! Change the get_bit function associated with a V.29 modem transmit context.    \brief Change the get_bit function associated with a V.29 modem transmit context.    \param s The modem context.    \param get_bit The callback routine used to get the data to be transmitted.    \param user_data An opaque pointer. */void v29_tx_set_get_bit(v29_tx_state_t *s, get_bit_func_t get_bit, void *user_data);/*! Generate a block of V.29 modem audio samples.    \brief Generate a block of V.29 modem audio samples.    \param s The modem context.    \param amp The audio sample buffer.    \param len The number of samples to be generated.    \return The number of samples actually generated.*/int v29_tx(v29_tx_state_t *s, int16_t *amp, int len);#if defined(__cplusplus)}#endif#endif/*- End of file ------------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品1区二区.| 蜜桃视频在线观看一区| 99久久婷婷国产综合精品电影| 久久久三级国产网站| 国产精品中文字幕欧美| 久久久久国产精品人| 懂色av一区二区三区免费看| 亚洲欧洲成人精品av97| 色偷偷88欧美精品久久久| 亚洲国产欧美在线| 欧美一级在线免费| 国产成人免费在线观看不卡| 中文字幕制服丝袜成人av| 日本高清不卡aⅴ免费网站| 日韩精品久久理论片| 精品久久久久久久一区二区蜜臀| 国产成人8x视频一区二区| 中文字幕一区三区| 欧美久久久久久久久| 国模大尺度一区二区三区| 国产精品国产自产拍高清av| 欧美网站一区二区| 青青草国产精品亚洲专区无| 国产三级欧美三级| 色先锋aa成人| 精品一区二区三区免费观看| 中文字幕欧美一区| 欧美精品在线观看播放| 国产一区999| 亚洲精品高清在线| 亚洲精品一区二区三区影院| 成a人片亚洲日本久久| 午夜国产精品影院在线观看| 久久久久国产精品厨房| 欧美性色aⅴ视频一区日韩精品| 麻豆精品在线观看| 亚洲欧美一区二区三区极速播放| 欧美久久久久久久久久| 成人福利电影精品一区二区在线观看| 亚洲成年人影院| 26uuu亚洲综合色| 欧美三级电影网| 成人性生交大片免费看在线播放| 日韩精品每日更新| 亚洲黄色性网站| 国产午夜亚洲精品理论片色戒| 欧美福利一区二区| 91亚洲精品久久久蜜桃| 国产一区二区在线观看视频| 亚洲一区二区黄色| ●精品国产综合乱码久久久久| 91麻豆精品国产91久久久更新时间| 成人深夜福利app| 久久精品国产亚洲a| 亚洲成人av中文| 成人免费在线播放视频| 久久久不卡网国产精品二区| 欧美精品1区2区| 在线亚洲免费视频| 粉嫩av一区二区三区在线播放| 九色综合狠狠综合久久| 五月婷婷另类国产| 亚洲综合免费观看高清完整版 | 亚洲激情六月丁香| 中文字幕免费观看一区| 久久综合色天天久久综合图片| 欧美理论在线播放| 欧美日韩高清一区| 在线观看亚洲一区| 色婷婷av一区二区| 91亚洲男人天堂| 成人高清伦理免费影院在线观看| 国产不卡视频在线观看| 国产精品白丝jk黑袜喷水| 国模套图日韩精品一区二区| 久久99精品久久久久久动态图| 免费成人深夜小野草| 日本麻豆一区二区三区视频| 天堂va蜜桃一区二区三区漫画版| 亚洲一二三级电影| 亚洲图片欧美视频| 午夜精品视频在线观看| 婷婷成人激情在线网| 日韩不卡在线观看日韩不卡视频| 午夜电影网亚洲视频| 国产成人在线免费| 国产一区激情在线| 国产精品夜夜爽| 北岛玲一区二区三区四区| 99综合电影在线视频| 色婷婷久久综合| 欧美三级三级三级爽爽爽| 欧美一区欧美二区| 精品国产91九色蝌蚪| 久久久精品国产免大香伊| 国产精品久久久久久久裸模| 亚洲精品大片www| 丝袜美腿亚洲色图| 国产自产视频一区二区三区| 国产凹凸在线观看一区二区| 91农村精品一区二区在线| 欧美在线免费观看视频| 欧美一区二区三区在线观看| 欧美精品一区二区三区很污很色的| 精品成人佐山爱一区二区| 中文在线一区二区| 一区二区在线观看免费视频播放| 婷婷久久综合九色国产成人| 美女看a上一区| 成人免费视频视频| 欧美日韩精品一区二区| 欧美精品一区二区精品网| 中文字幕一区二区三区在线播放| 亚洲h动漫在线| 国产在线国偷精品产拍免费yy| 波多野结衣一区二区三区| 欧美三级电影一区| 久久久精品国产免大香伊| 亚洲精品高清在线观看| 精品一区二区三区的国产在线播放| 成人网页在线观看| 这里只有精品电影| 国产精品成人网| 欧美男同性恋视频网站| 久久人人爽爽爽人久久久| 一卡二卡三卡日韩欧美| 九九精品视频在线看| 色婷婷综合久久久中文一区二区| 日韩视频在线你懂得| 亚洲丝袜另类动漫二区| 精品在线你懂的| 欧美在线不卡视频| 国产精品视频免费看| 日韩精品一级中文字幕精品视频免费观看| 国产成人欧美日韩在线电影| 欧美丰满美乳xxx高潮www| 国产精品白丝在线| 精品一区二区三区久久久| 欧美日韩精品一区二区在线播放| 国产精品美日韩| 久久激情五月激情| 欧美日韩国产综合久久| 亚洲欧美日韩国产手机在线| 国产伦理精品不卡| 日韩视频在线永久播放| 亚洲高清免费一级二级三级| www.亚洲免费av| 国产欧美一区二区三区沐欲| 美女任你摸久久| 欧美精品在线观看一区二区| 亚洲精品高清在线观看| 99国产精品久久久久久久久久| 久久久精品国产免费观看同学| 日韩电影免费一区| 欧美三级电影精品| 亚洲日穴在线视频| 大陆成人av片| 久久久久国色av免费看影院| 久久99精品视频| 日韩欧美一区二区三区在线| 天堂一区二区在线免费观看| 欧美午夜精品久久久久久超碰 | 26uuu精品一区二区| 蜜臀av一区二区在线免费观看| 欧美撒尿777hd撒尿| 一区二区三区四区不卡在线| 91亚洲精品乱码久久久久久蜜桃| 国产精品国产三级国产有无不卡| 成人毛片老司机大片| 国产精品美女久久久久久久久| 国产成人免费视频精品含羞草妖精| 26uuu久久天堂性欧美| 国产一区二区不卡老阿姨| 久久久无码精品亚洲日韩按摩| 国产精品自拍毛片| 日本一区二区三区国色天香| 国产99久久精品| 亚洲欧美怡红院| 欧美综合一区二区| 亚洲二区视频在线| 56国语精品自产拍在线观看| 麻豆精品视频在线观看免费| 精品日韩一区二区| 丁香婷婷综合色啪| 亚洲欧洲综合另类在线 | 制服.丝袜.亚洲.中文.综合| 日本亚洲电影天堂| 精品国产一区二区精华| 国产精品 日产精品 欧美精品| 国产精品美女久久久久高潮| 91在线视频免费观看| 亚洲午夜久久久久久久久电影网| 制服丝袜亚洲网站| 国产一区二区三区观看| 国产精品不卡视频| 欧美日韩国产乱码电影| 国内精品第一页| 亚洲欧美日韩一区二区 | ...av二区三区久久精品| 在线免费观看日本一区|