m序列的自相关 自相关为什么不能直接用xcorr来求,而是用下面的程序(这个程序是论文上看到的)

m序列的生成及其相关性的matlab分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
11页1下载券5页免费19页3下载券2页1下载券20页免费68页1下载券15页2下载券3页免费2页免费4页3下载券
喜欢此文档的还喜欢7页免费11页1下载券2页免费52页免费19页3下载券
m序列的生成及其相关性的matlab分析|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢如何从带回波的信号中用自相关函数算出延迟,原理加MATLAB程序。_百度知道
如何从带回波的信号中用自相关函数算出延迟,原理加MATLAB程序。
我只有50分全拿出来了,b,N1,N1,最好有MATLAB程序!!,N2都不清楚,有一种方法可以用y[n]的自相关函数估算出a!,b,N2来,及算法。哪位大虾能告诉我原理,救急,课程设计要用x[n]为原信号(没有回波),回波y[n]=x[n]+a*x[n-N1]+b*x[n-N2]。现在a
提问者采纳
给个例子.0000
4,&#39.0000
3;但是,在调用xcorr函数求自相关时;unbiased'M.
&#39:dt=,matlab中查看帮助时: C(m) = E[A(n+m)*conj(B(n))] = E[A(n)*conj(B(n-m))];
- scales the raw cross-correlation by 1&#47: - scales the raw correlation by 1&#47.1;
- normalizes the sequence so that the auto-correlations
at zero lag are identically 1;unbiased&#39,'coeff&#39,SCALEOPT)SCALEOPT有
't=[0,a)上面代码是求自相关函数并作图.0000
- no scaling (this is the default),t2的取值之间的相关程度:s = [1 2 3]r = xcorr(s).0000当用r=xcorr(s;none&#39.0000
8.设原函数是f(t).
4自相关函数是描述随机信号X(t)在任意两个不同时刻t1;(M-abs(lags));[a,则自相关函数定义为R(u)=f(t)*f(-t).
'biased'plot(b*dt,有 scaleopt参数r=xcorr(s,help xcorr 解释其意思是.0;unbiased'r =
3;x=cos(t).0000
4,其中*表示卷积,b]=xcorr(x;)时就能得到r =3:100];).注意观察下面的测试
提问者评价
谢谢了,不过我已经找到更详细的了。还是很感谢。
其他类似问题
自相关函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Matlab生成循环移位M序列,并计算M序列的自相关
标题:Matlab生成循环移位M序列,并计算M序列的自相关
Matlab生成循环移位M序列,并计算M序列的自相关
1、产生循环移位M序列&&&
&&& 最近做一个扩频通信方面的东西,需要产生一组扩频码,最简单的就是用一个M序列,循环移位产生过。在用Matlab产生的时候发现Matlab有两个移位命令:
(1)、矩阵循环移位:circshift
&&& 例如:b = circshift(a,[x,y]) 其中a为待移位的矩阵,x表示上下移位位数(正数表示向下移位),y表示左右移位位数(正数表示向右移位)
&& x = [1,2,3;4,5,6;7,8,9]
&&&& 1&&&& 2&&&& 3
&&&& 4&&&& 5&&&& 6
&&&& 7&&&& 8&&&& 9
&& y = circshift(x,[1,-1])
&&&& 8&&&& 9&&&& 7
&&&& 2&&&& 3&&&& 1
&&&& 5&&&& 6&&&& 4
(2)、比特移位:bitshift(不能做循环移位)
&&& 例如:b = bitshift(a,k,n) 其中a是待移位数据,k是移位的位数(正数表示左移),n为移位后保留的位数(当左移,超出的位数将被舍弃)
&& x = 131;
&& x_bit = dec2bin(x)
&& y = dec2bin(bitshift(x,2,8))
&&& 要想完成bit的循环移位,可以采用这样的方法:
&&& 例如,待移位的数据为x = ,它是一个32bit的M序列,现在需要产生x依此循环左移一位所产生的共32个数据,可以采用以下程序完成,将产生的32个数据写入一个.mif文件:
y = dec2bin(x);&&&& //将10进制变为2进制,这时二进制数据的0,1其实是用字符表示的,这样就形成了一个1x32的行向量
for i = 2 : 32
&&& y = circshift(y,[0,-1]);&&& //对与每一行的数据进行左移
&&& z(i) = bin2dec(y);&&&&&&&&& //将移位后的数据再次变为十进制
miffile('dsss_code.mif',z,32,32);&& //调用miffile函数,将数据写入.mif文件
一下是mif文件的内容:
&&& 这种方法自己还是感觉有些麻烦,不知道Matlab还有没有更好的函数可以实现bit的循环移位。
2、计算M序列的自相关
&&& 计算相关可以利用xcorr函数,计算自相关y = xcorr(x)
a = bitget(, 32:-1:1);&&& //是一个32bit的M序列对应的10进制数,所以先变成32个0,1数据。
b = xcorr(a);
本文引用通告地址:
| 浏览(4274) 引用(0)
如果您想出现在此位置,请您先【】!
Copyright (C)2000-.cn[转载]自相关(autocorrelaction), 互相关(crosscorrelation)
已有 1068 次阅读
|系统分类:
自相关函数表达了同一过程不同时刻的相互依赖关系,而互相关函数表示不同过程的某一时刻的相互依赖关系。互相关函数是描述随机信号X(t),Y(t)在任意两个不同时刻t1,t2,的取值之间的相关程度。自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2,的取值之间的相关程度。自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积;设两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。那么,如何在matlab中实现这两个相关并用图像显示出来呢?dt=.1;t=[0:dt:100];x=cos(t);[a,b]=xcorr(x,'unbiased');plot(b*dt,a)上面代码是求自相关函数并作图,对于互相关函数,稍微修改一下就可以了,即把[a,b]=xcorr(x,'unbiased');改为[a,b]=xcorr(x,y,'unbiased');便可。自相关的定义如下:应用于离散数字信号处理中,在matlab里面描述如下:xcorr表示对于x和y两个随机序列求出互相关估计The output vector c has elements given by c(m) = cxy(m-N), m=1, ..., 2N-1实验如下:&& a=[1 2 3 4];b=[1 j 2 j];&& c=xcorr(a,b);&& cc =& Columns 1 through 6& -0.0000 - 1.0000i & 2.0000 - 2.0000i & 4.0000 - 4.0000i & 7.0000 - 6.0000i
10.0000 - 3.0000i &3.0000 - 4.0000i& Column 7&& 4.0000 + 0.0000i其中当上面式子中的m=0时,即c(4),这里c长度为6,表示Rxy(n)从n=-3:0:3.经过xcorr函数运算得到的c长度为2*N-1,例子中N=4;因此得到c(4)= Rxy(0)= 1-2j+6-4j=7-6j;这里就比较清楚互相关的计算了,实际的物理意义就使用积分标量来表示两个序列之间的相似程度度。可以翻阅随机过程.那么,对于序列x的自相关,R_coeff=xcorr(x,'coeff');等效于:R=xcorr(x,x); R_coeff = 1/max(R) * R;因为是自身和自身的相关,因此其中max(R)一定是R(N),m=0的情况下,即此时相关序列无延迟&二.自相关矩阵&& 对于一个有限长度的随机序列,知道了其Rxx的估计后.自相关矩阵定义如下:&&&n*n的方阵。它的主对角线上都是R(0),主对角线旁边两个是R(1),然后再旁边两个是R(2),等等,最右上角和最左下角是R(N)。在上面的式子中R(m)=[x(n)*x(n+m)]/n,m=0,1,2,....,n。&& 即Rij = Rxx(i-j) = Rxx(j-i) = R&& 在信号处理中,具体的关于上面的数字信号概念讨论见:&&&&三.相关性的具体应用&& 最后,附上一个高斯噪声进行估计信噪比的程序.来作为具体的相关矩阵应用的例子.下面的程序只是对于信号功率具有固定的幅度的信号做的,也就是恒包罗.不适合16QAM等非恒包罗的调幅信号.如果需要做非恒包罗的SNR估计,具体参考 非恒包罗的AGWN的SNR计算方法.&amp_e = SNR_Estimate(ComplexSignal)yn=real(ComplexSignal);c=xcorr(yn,'coeff');len=length(ComplexSignal);m=100;rk = c(len:len+m-1);Rxx = zeros(m,m);Rxx(1,:)=Rxx(m,:)=fliplr(rk);for i=2:m-1&&& if i&1&&&&&&& Rxx(i,:)=[fliplr(rk(2:i)),rk(1:m-i+1)];&&& endend[U,S,V]=svd(Rxx);for i=1:m&&& s_x(i) = S(i,i);ends_xd = s_x(2:m)-s_x(1:m-1);s_xd (60:80);for i =1:m-1&&& if abs(s_xd(i))&0.1 &abs(s_xd(i+1))&0.1&&&&&&& p = i-1;&&&&&&&&&& end&&& noise_p = 1/(m-p)*sum(s_x(p+1:m));&&& SNR = 10*log10((sum(s_x(1:p))-p*noise_p)/(m*noise_p);&&& amp_e = SNR;最后估计得到的误差CDF如下图,其中可以看到65%估计到的SNR与真实的相差1DB
本文引用地址:&此文来自科学网张迪博客
上一篇:下一篇:
当前推荐数:0
评论 ( 个评论)
作者的其他最新博文
热门博文导读
Powered by
Copyright &

我要回帖

更多关于 m序列的自相关 的文章

 

随机推荐