Carrier-phase synchronization can be approached in a general manner by estimating the multiplicative distortion (MD) to which a baseband received signal in an RF or coherent optical transmission system is subjected. This paper presents a unified modeling and estimation of the MD in finite-alphabet digital communication systems. A simple form of MD is the camer phase exp GO) which has to be estimated and compensated for in a coherent receiver. A more general case with fading must, however, allow for amplitude as well as phase variations of the MD. We assume a state-variable model for the MD and generally obtain a nonlinear estimation problem with additional randomly-varying system parameters such as received signal power, frequency offset, and Doppler spread. An extended Kalman filter is then applied as a near-optimal solution to the adaptive MD and channel parameter estimation problem. Examples are given to show the use and some advantages of this scheme.
標(biāo)簽: synchronization Carrier-phase multiplicativ approached
上傳時(shí)間: 2013-11-28
上傳用戶:windwolf2000
We have a group of N items (represented by integers from 1 to N), and we know that there is some total order defined for these items. You may assume that no two elements will be equal (for all a, b: a<b or b<a). However, it is expensive to compare two items. Your task is to make a number of comparisons, and then output the sorted order. The cost of determining if a < b is given by the bth integer of element a of costs (space delimited), which is the same as the ath integer of element b. Naturally, you will be judged on the total cost of the comparisons you make before outputting the sorted order. If your order is incorrect, you will receive a 0. Otherwise, your score will be opt/cost, where opt is the best cost anyone has achieved and cost is the total cost of the comparisons you make (so your score for a test case will be between 0 and 1). Your score for the problem will simply be the sum of your scores for the individual test cases.
標(biāo)簽: represented integers group items
上傳時(shí)間: 2016-01-17
上傳用戶:jeffery
1) Write a function reverse(A) which takes a matrix A of arbitrary dimensions as input and returns a matrix B consisting of the columns of A in reverse order. Thus for example, if A = 1 2 3 then B = 3 2 1 4 5 6 6 5 4 7 8 9 9 8 7 Write a main program to call reverse(A) for the matrix A = magic(5). Print to the screen both A and reverse(A). 2) Write a program which accepts an input k from the keyboard, and which prints out the smallest fibonacci number that is at least as large as k. The program should also print out its position in the fibonacci sequence. Here is a sample of input and output: Enter k>0: 100 144 is the smallest fibonacci number greater than or equal to 100. It is the 12th fibonacci number.
標(biāo)簽: dimensions arbitrary function reverse
上傳時(shí)間: 2016-04-16
上傳用戶:waitingfy
The LM628/LM629 are dedicated motion-control processors designed for use with a variety of DC and brushless DC servo motors
標(biāo)簽: motion-control processors dedicated designed
上傳時(shí)間: 2014-01-23
上傳用戶:aa17807091
1. 通過8255A并口來控制LED發(fā)光二極管的亮滅。 2. A口控制紅燈,B口控制黃燈,C口控制綠燈。 3. 輸出為0則亮,輸出為1則滅。 4. 用8253定時(shí)來控制變換時(shí)間 。
上傳時(shí)間: 2013-12-06
上傳用戶:cccole0605
【問題描述】 在一個(gè)N*N的點(diǎn)陣中,如N=4,你現(xiàn)在站在(1,1),出口在(4,4)。你可以通過上、下、左、右四種移動(dòng)方法,在迷宮內(nèi)行走,但是同一個(gè)位置不可以訪問兩次,亦不可以越界。表格最上面的一行加黑數(shù)字A[1..4]分別表示迷宮第I列中需要訪問并僅可以訪問的格子數(shù)。右邊一行加下劃線數(shù)字B[1..4]則表示迷宮第I行需要訪問并僅可以訪問的格子數(shù)。如圖中帶括號(hào)紅色數(shù)字就是一條符合條件的路線。 給定N,A[1..N] B[1..N]。輸出一條符合條件的路線,若無解,輸出NO ANSWER。(使用U,D,L,R分別表示上、下、左、右。) 2 2 1 2 (4,4) 1 (2,3) (3,3) (4,3) 3 (1,2) (2,2) 2 (1,1) 1 【輸入格式】 第一行是數(shù)m (n < 6 )。第二行有n個(gè)數(shù),表示a[1]..a[n]。第三行有n個(gè)數(shù),表示b[1]..b[n]。 【輸出格式】 僅有一行。若有解則輸出一條可行路線,否則輸出“NO ANSWER”。
標(biāo)簽: 點(diǎn)陣
上傳時(shí)間: 2014-06-21
上傳用戶:llandlu
該程序?qū)崿F(xiàn)兩個(gè)機(jī)器人在一個(gè)二維網(wǎng)格中的自動(dòng)追捕。通過方向鍵手動(dòng)控制機(jī)器人A走步,機(jī)器人B根據(jù)設(shè)定的追捕或逃避方式自動(dòng)對(duì)機(jī)器人A進(jìn)行追捕或逃避。
上傳時(shí)間: 2017-08-31
上傳用戶:pkkkkp
#include <stdlib.h> #include<stdio.h> #include <malloc.h> #define stack_init_size 100 #define stackincrement 10 typedef struct sqstack { int *base; int *top; int stacksize; } sqstack; int StackInit(sqstack *s) { s->base=(int *)malloc(stack_init_size *sizeof(int)); if(!s->base) return 0; s->top=s->base; s->stacksize=stack_init_size; return 1; } int Push(sqstack *s,int e) { if(s->top-s->base>=s->stacksize) { s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base) return 0; s->top=s->base+s->stacksize; s->stacksize+=stackincrement; } *(s->top++)=e; return e; } int Pop(sqstack *s,int e) { if(s->top==s->base) return 0; e=*--s->top; return e; } int stackempty(sqstack *s) { if(s->top==s->base) { return 1; } else { return 0; } } int conversion(sqstack *s) { int n,e=0,flag=0; printf("輸入要轉(zhuǎn)化的十進(jìn)制數(shù):\n"); scanf("%d",&n); printf("要轉(zhuǎn)化為多少進(jìn)制:\n"); scanf("%d",&flag); printf("將十進(jìn)制數(shù)%d 轉(zhuǎn)化為%d 進(jìn)制是:\n",n,flag); while(n) { Push(s,n%flag); n=n/flag; } while(!stackempty(s)) { e=Pop(s,e); switch(e) { case 10: printf("A"); break; case 11: printf("B"); break; case 12: printf("C"); break; case 13: printf("D"); break; case 14: printf("E"); break; case 15: printf("F"); break; default: printf("%d",e); } } printf("\n"); return 0; } int main() { sqstack s; StackInit(&s); conversion(&s); return 0; }
標(biāo)簽: 整數(shù) 棧 基本操作 十進(jìn)制 轉(zhuǎn)化 進(jìn)制
上傳時(shí)間: 2016-12-08
上傳用戶:愛你198
#include "iostream" using namespace std; class Matrix { private: double** A; //矩陣A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //為向量b分配空間并初始化為0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //為向量A分配空間并初始化為0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析構(gòu)中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"請(qǐng)輸入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"請(qǐng)輸入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"個(gè):"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分別求得U,L的第一行與第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分別求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"計(jì)算U得:"<<endl; U.Disp(); cout<<"計(jì)算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
標(biāo)簽: 道理特分解法
上傳時(shí)間: 2018-05-20
上傳用戶:Aa123456789
在包 hugeinteger 中創(chuàng)建功能類 HugeInteger,該類用來存放和操作一個(gè)不超過 40 位的大整數(shù)。 (1) 定義一個(gè)構(gòu)造函數(shù),用來對(duì)大整數(shù)進(jìn)行初始化。參數(shù)為一個(gè)字符串。 (2) 定義 input 成員函數(shù),實(shí)現(xiàn)大整數(shù)的重新賦值。參數(shù)為一個(gè)字符串,無返回 值。 (3) 定義 output 成員函數(shù),將大整數(shù)輸出到屏幕上。無參數(shù)無返回值。 (4) 定義 add 成員函數(shù),實(shí)現(xiàn)兩個(gè)大整數(shù)的加法。參數(shù)為一個(gè) HugeInteger 對(duì) 象,無返回值,例如: HugeInteger A = new HugeInteger("12345"); HugeInteger B = new HugeInteger("1234"); A.add(B); 此時(shí),A 為 13579,B 為 1234。 (5) 定義 sub 成員函數(shù),實(shí)現(xiàn)兩個(gè)大整數(shù)的減法。參數(shù)和返回值同 add 函數(shù)。 (6) 定義若干大整數(shù)關(guān)系運(yùn)算的成員函數(shù),包括 isEqualTo(等于,=)、 isNotEqualTo(不等于,≠)、isGreaterThan(大于,>)、isLessThan(小 于,<)、isGreaterThanOrEqualTo(大于等于,≥)和 isLessThanOrEqualTo (小于等于,≤)。這些函數(shù)的參數(shù)為一個(gè) HugeInteger 對(duì)象,返回值為一個(gè) 布爾類型,表示關(guān)系運(yùn)算的結(jié)果,例如: HugeInteger A = new HugeInteger("12345"); HugeInteger B = new HugeInteger("1234"); 那么此時(shí) A.isGreaterThan(B)的結(jié)果應(yīng)當(dāng)為 True,表示 12345>1234。
標(biāo)簽: java 整數(shù) 運(yùn)算
上傳時(shí)間: 2019-06-01
上傳用戶:idealist
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1