- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WALSH码产生与特性分析实验
实验二 WALSH码产生实验
一、实验目的
1、掌握WALSH码产生的原理和WALSH码的特性。
2、掌握WALSH码的产生和特性分析的软件仿真。
3、掌握WALSH码的硬件产生方法。
二、预习要求
1、掌握WALSH码的产生原理和特性。
2、熟悉matlab的应用和仿真方法。
3、熟悉Quatus的应用和FPGA的开发方法。
三、实验原理
1、WALSH码简介
WALSH函数集是完备的非正弦型正交函数集,相应的离散WALSH函数简称为WALSH序列或WALSH码,可由Hadamard矩阵的行(或列)构成。二阶Hadamard矩阵为:
高阶Hadamard矩阵可以由以下递推公式构成:
其中:N=2m,m=1,2,……
例如:
N阶Hadamard矩阵的通式可以表示为:
由Hadamard的行(或列)构成WALSH序列。例如由H4的行(列)构成的长度为4(即包含4个元素)的WALSH序列为:
Wh(0):1 1 1 1 Wh(0):1 -1 1 -1
Wh(0):1 1 -1 -1 Wh(0):1 -1 -1 1
长度为N的WALSH序列可以表示为N维向量:
[hi1hi2……hiN] ,i=1,2,…..N
对应的(i-1)号WALSH函数可以表示为:
其中:称为码片波形。
WALSH码可以由图所示的电路框图产生:
图 1 WALSH序列产生电路框图
2、WALSH码的性质
正交码的重要作用之一用作同步码分多址系统的地址码。它具有以下性质:
(1) 在[0,1)区间正交;
(2) 除了第一个序列外,其他WALSH序列的均值为0;
(3) 两个WALSH序列相乘可以得到一个新的WALSH序列;
(4) WALSH序列是完备的,即长度为N的WALSH序列集里有N个相互正交的WALSH序列;
四、WALSH码产生和特性分析
1、建立仿真文件(wlashsim.mdl)
WALSH1…WALSH8的Sample Time均设置为1/10;index分别设置为0,…,7。
2、生产程序文件
sim(walshsim);
len=length(walsh1);
N=8;
N_sample=64;
gt=ones(1,N_sample); %每码元对应的载波信号
walsh1=walsh1 %输出walsh码1
walshtemp1=sigexpand(walsh1,N_sample); %码元扩展
walshx1=conv(walshtemp1,gt); %码元成形
……
walsh8=walsh8 %输出walsh码8
walshtemp8=sigexpand(walsh8,N_sample); %码元扩展
walshx8=conv(walshtemp8,gt); %码元成形
swalsh=conv(1-2*walsh1,1-2*walsh1(N:-1:1))/N;
dwalsh=conv(1-2*walsh1,1-2*walsh2(N:-1:1))/N;
t=0:1/N_sample:len-1/N_sample;
figure(1)
subplot(5,2,1);
plot(t,walshx1(1:length(t)));
axis([0 61 -0.5 1.5]);
title(walsh1波形);
……
subplot(5,2,8);
plot(t,walshx8(1:length(t)));
axis([0 61 -0.5 1.5]);
title(walsh8波形);
subplot(5,2,9);
stem(1:61,swalsh(15:75));
axis([0 61 -1.5 1.5]);
title(walsh1自相关波形);
subplot(5,2,10);
stem(1:61,dwalsh(15:75));
axis([0 61 -1.5 1.5]);
title(walsh1和walsh2互相关波形);
3、输出WALSH波形
五、本实验的walsh码产生方法
1、输出WALSH码
process(g_clk)
begin
if rising_edge(g_clk) then
counter=counter+1;
walsh0=walsh(0); walsh1=walsh(1); w
文档评论(0)