选择特殊符号
选择搜索类型
请输入搜索
m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。
m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。
在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。它容易产生,规律性强,有很好的自相关性和较好的互相关特性。在IS-95的反向信道中,选择了m序列的PN码作为地址码,利用不同相位m序列几乎正交的特性来为每个用户的业务信道分配了一个相位。
对于一个n级反馈移位寄存器来说,最多可以有2^n 个状态,对于一个线性反 馈移位寄存器来说,全"0"状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 2^n-1。当n级线性移位寄存器产生的序列{ai}的周期为T= 2^n-1时,称{ai}为n级m序列。
当反馈函数f(a1,a2,a3,…an)为非线性函数时,便构成非线性移位寄存器,其输出序列为非线性序列。输出序列的周期最大可达 2^n ,并称周期达到最大值的非线性移位寄存器序列为M序列。
1. 信息安全
主要用在加密解密上面
2. 通信行业
CDMA通信的行业的信息
广义上的“动态范围”是指某一变化的事物可能改变的跨度,即其变化值的最低端极点到最高端极点之间的区域,此区域的描述一般为最高点与最低点之间的差值。这是一个应用非常广泛的概念,在谈及摄像机产品的拍摄图像指...
1.[Hotel]∶设备好的大旅馆 2.[Restaurant]∶饭馆。[1] 一般有两种解释:〈1〉多数汉语词典之类的语文工具书解释为规模较大,内部设施优良,能提供食宿的场所,类似的名称有宾馆,酒店...
零排放,就其内容而言,一方面是要控制生产过程中不得已产生的废弃物排放,将其减少到零;另一方面是将不得已排放的废弃物充分利用,最终消灭不可再生资源和能源的存在。就其过程来讲,是指将一种产业生产过程中排放...
钢结构基本概念
第一节 钢结构的一些基本概念 结构是由构件组成的 构件的种类:梁、柱、板、墙体、桁架、网架、悬索 变力性能:拉、压、弯、剪、扭、疲劳、裂缝扩展 (断裂 ) 杆件系统:梁、柱、桁架、网架都属杆件系统 结构计算的内容包括: 强 度 稳 定 结构在静力或动力荷载作用下的 变 形 振 动 疲 劳 其中:强度,稳定和变形在结构设计中常要予以计算。 振动是在设计跨度大而轻 的楼层和楼梯时考虑,主要是防止因人行走或使用时结构产生令人不适的振动。 疲劳计算仅在多次反复荷载下才予以考虑。 § 1 强 度 强度:可指杆件的强度或结构的强度。 一.杆件的强度:杆件抵抗破坏的能力。 荷载引起的外力≤ 构件的承载力 (由材料强度,构件截面的大小和形状确定 ) 影响因素: 荷载:大小,作用方式 (拉、压、弯、剪、扭,静力或动力 ) 材料:屈服强度、极限强度、弹性模量等 构件截面的大小和形状: 截面越大,承载力越
pn序列是一种伪噪声序列,这类序列具有类似随机噪声的一些统计特性,但和真正的随机信号不同,它可以重复产生和处理,故称作伪随机噪声序列。
PN序列(Pseudo-noise Sequence)
PN序列有多种,其中最基本常用的一种是最长线形反馈移位寄存器序列,也称作m序列,通常由反馈移位寄存器产生。
PN序列一般用于扩展信号频谱。
m序列的随机特性:1,、平衡特性 2,、游程特性 3、相关特性
(一)绝对数时间序列
1.时期序列:由时期总量指标排列而成的时间序列。
时期序列的主要特点有:
1)序列中的指标数值具有可加性。
2)序列中每个指标数值的大小与其所反映的时期长短有直接联系。
3)序列中每个指标数值通常是通过连续不断登记汇总取得的。
2.时点序列:由时点总量指标排列而成的时间序列
时点序列的主要特点有:
1)序列中的指标数值不具可加性。
2)序列中每个指标数值的大小与其间隔时间的长短没有直接联系。
3)序列中每个指标数值通常是通过定期的一次登记取得的。
(二)相对数时间序列
把一系列同种相对数指标按时间先后顺序排列而成的时间序列叫做相对数时间序列。
(三)平均数时间序列
平均数时间序列是指由一系列同类平均指标按时间先后顺序排列的时间序列。
最长上升子序列
Longest Increasing Subsequence
最长上升子序列:
有两种基本方法:两个时间复杂度分别为O(n^2)和O(nlogn)
对于给定数列a,元素个数为n,f[i]为以元素i结尾的最长子上升序列的最大长度。
最长上升子序列f满足对任意1<=j<i<=n(a[j]<a[i]),有f[j]<f[i]。
容易得出O(n^2)的DP状态转移方程:
f[i]=max{f[j]}+1;(1<=j<i且a[j]<a[i])
我们不妨把f的初值设为0,并在末尾添加一个元素inf,并将n++
这样经过两重循环,f[n]即为LIS长度
代码如下:
又称作CMI算法
时间复杂度为O(nlogn)
其操作如下:
开辟一个栈b,每次取栈顶元素s和读到的元素a做比较,如果a>s,则置为栈顶;如果a<s,则二分查找栈中的比a大的第1个数,并替换。最终栈的大小即为最长递增子序列为长度
考察b栈内每个元素的含义,b[i] 表示所有长度为i的上升子序列中最小的最后一个数.
·举例:原序列为3,4,5,2,4,2
栈为3,4,5,此时读到2,则用2替换3,得到栈中元素为2,4,5,再读4,用4替换5,得到2,4,4,再读2,得到最终栈为2,2,4,最终得到的解是:
长度为1的上升子序列中最小的最后一个数是2 (2)
长度为2的上升子序列中最小的最后一个数是2 (2,2)长度为3的上升子序列中最小的最后一个数是4 (3,4,4)
可知没有长度为4的上升子序列,最长递增子序列长度为3. (3,4,4)
CMI本质是LIS问题的另一种动态规划思路
注意:CMI只能求LIS的长度和最后一个数,不能求LIS的序列!
代码如下:
#include<iostream>
using namespace std;
int n;
int a[1001],b[1001];
int rear;
int solve(int t)
{ int l=1,r=rear;
while(l<=r)
{ int mid=(l+r)>>1;
if(b[mid]>=t)//若为非递减序列,则为b[mid]>t
r=mid-1;
else
l=mid+1;
}
if(l>rear)
rear=l;
return l;
}
int main()
{ int i,j;
scanf("%d",&n);
rear=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[solve(a[i])]=a[i];
}
printf("%d\n",rear);
system("pause");
return 0;
}