基于Matlab的m序列发生器的00
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章绪论..................................................................................................................1
1.1背景及意义 ....................................................................................................1
1.2设计内容及要求...............................................................................................1
1.2.1 设计内容................................................................................................1
1.2.2 设计要求................................................................................................2
1.3系统框图..........................................................................................................2第二章 m序列的分析.......................................................................................................3
2.1 m序列的原理...........................................................................................................3
2.2 m序列的相关特性 ...................................................................................................4
2.2.1均衡特性(平衡性) ...............................................................................4
2.2.2游程分布(游程分布的随机性) ...............................................................4
2.2.3移位相加特性(线性叠加性) ..................................................................4
2.2.4自相关特性.............................................................................................5第三章 m序列的设计............................................................................................................. 6
3.1特征多项式确定..............................................................................................6
3.2本原多项式的确定...........................................................................................7
3.3 m序列的发生..............................................................................................8第四章程序调试及结果分析................................................................................ 10结论. (24)
参考文献 (25)
附录一:程序代码 (26)
第一章绪论
1.1 背景及意义
扩展频谱通信是一种不同于常规通信系统的新调制理论和技术,简称扩频通信。
其设计思想是将待传输的信息信号用特定的扩频码扩展频谱后成为宽带信号进行传输;接收时再采用相应的技术手段将频谱压缩,恢复原来待传信息信号的带宽,从而实现通信。
扩频通信具有两个特点:传输信号的带宽远大于原始信息信号的带宽;传输信号的带宽主要由扩频码决定,此扩频码通常是伪随机码。
伪随机码(pseudo randomcode)简称PN码,可以人为产生与复制,具有类似白噪声的性质,相关函数具有尖锐的特性,功率谱占据很宽的频带,易于从其他信号或干扰中分离出来,具有优良的抗干扰特性,其特点是:具有尖锐的自相关函数;互相关函数值应足够小;有足够长的码周期,以确保抗侦破与抗干扰的要求;码的数量足够多,以实现码分多址的要求;平衡性好,以满足抗干扰的要求;工程上易于产生、加工、复制与控制。
扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。
而随着扩频速率的不断提高,扩频码的长度急剧增加,利用计算机设计并验证扩频码的各项指标能大大提高效率。
通过对伪随机码中常用的m序列的结构和性质进行了分析,给出了基于MATLAB平台的m序列生成算法及代码伪随机序列分析. 软件平台选择Matlab,Malab是美国Math Works公司推出的一种以矩阵为基本编程单位的高效数值计算语言。
Matlab在编程效率、可读性、可移植性与可扩充性上,远远优于其他高级编程语言,是公认的最优秀的科技应用软件。
1.2设计内容及要求
1.2.1 设计内容
基于Matlab的m序列发生器的设计。
1.2.2 设计要求
m序列的本原多项式为:52
=++,移位寄存器结构为:
()1
A x x x
各寄存器初值分别为[0 0 0 0 1]1-5,参照该移位寄存器的结构图,用Matlab语言编写程序,生成m序列。
1.3 系统框图
图1-1 程序框图
图1-1 系统框图
第二章 m 序列的分析
2.1 m 序列的原理
伪随机信号具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。
目前广泛使用的伪随机信号都是由数字电路产生的周期序列得到的。
产生伪随机序列的电路包括线性反馈的移位寄存器:m 序列和非线性反馈移存器;M 序列
m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n 级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
m 序列码发生器是一种反馈移位型结构的电路,它由n 位移位寄存器加异或反馈网络组成,其序列长度M =2n-1,只有一个多余状态即全0状态,所以称为最大线性序列码发生器。
由于其结构已定型,且反馈函数和连接形式都有一定的规律,因此利用查表的方式就设计出m 序列码。
列出部分m 序列码的反馈函数F 和移存器位数n 的对应关系。
如果给定一个序列信号长度M ,则根据M =2n-1求出n ,由n 查表2-1便可以得到相应的反馈函数F 。
表2-1 反馈函数F
n 12-=n
m
反馈函数F
3 7 31Q Q ⊕,
3
2Q Q ⊕ 4 15 4341,Q Q Q Q ⊕⊕ 5 31 5
352,Q Q Q Q ⊕⊕
6 63 6
1Q Q ⊕
7
127
7
371,Q Q Q Q ⊕⊕
8 255 8
381,Q Q Q Q ⊕⊕
9 511 94Q Q ⊕ 10 1023 107Q Q ⊕ 11 2047 11
2Q Q ⊕
12 4095
12
541Q Q Q Q ⊕⊕⊕
2.2 m 序列的相关特性 2.2.1均衡特性(平衡性)
伪随机序列的平衡性是指序列中“1”的数目只比“0” 的数目多l 。
码的平衡性由码序列中的直流分量决定。
平衡性好,则载波抑制度大,从而有利扩频通信的抗干扰能力以及保密和抗侦破能力。
其物理意义是不平衡码会使扩频后的信号中出现一些稳定的信号,从而易于被检测而导致保密能力的降低。
2.2.2 游程分布(游程分布的随机性)
游程是一个序列中取值(1 或 0)相同连在一起的元素的统称 ,所谓的游程长度就是一个游程中元素的个数。
而m 序列的分布特性为
1.m 序列的一个周期(p=2n-1)中,游程总数为2n-1。
2. 当1 <游程长度k ≤n -1,游程数目占总数2-k 当1 ≤k ≤n -2,连“1”和连”0“游程各占一半
2.2.3移位相加特性(线性叠加性)
m 序列和其移位后的序列逐位模2 相加,所得的序列还是m 序列,只是相移不同而已. 例如1110100与向右移3 位后的序列1001110逐位模2相加后的序列为0111010 ,相当于原序列向右移1位后的序列,仍是m 序列.
2.2.4自相关特性
周期为p 的m 序列的自相关函数为:
其中:
A - 该序列与其j 次移位序列一个周期中对应元素相同数目 D - 该序列与其j 次移位序列一个周期中对应元素不同目 P - 序列周期 上式可改写为: 式中xi= 0或1。
由移位相加特性和均衡特性,可知m 序列的自相关函数为:
j=0 j= 1,2,……p -1 从m 序列的自相关系数可以看出,m 序列是一个狭义伪随机码.知当m 序列的移位值为其周期的整数倍时,其自相关值取得最大值为2n 一1,移位值取其他值时,其自相关值恒为一1。
其自相关函数如图2-1所示。
图2-1m 序列的自相关函数
p
D A D
A D
A j R -=
+-=
)(p
a a a a j R j i i j i i ]
1[]0[)(的数目的数目=⊕-=⊕=
++⎪
⎩⎪
⎨⎧-
=p
j R 11)(R (j )
1123-1
-2-3-P
P -1P
j
第三章 m 序列的设计
3.1 特征多项式确定
n 级线性移位寄存器的如图3-1所示:
图3-1 n 级线性移位寄存器
图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为:
112201
(m od 2)n
n n n n i
n i
i a C a C a C a C a
---==⊕⊕⊕=
∑
将上式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为
1
00n
i
n i C a -==
∑
定义一个与上式相对应的多项式
()n
i
i
i F x C
x
==
∑
根据上式可以确定m 序列的特征多项式:
f(x)的次数n 表示移存器的级数。
Ci 取值(1或0)确定反馈线连接状态。
线性移位寄存器的相继状态具有周期性,周期p ≤ 2n -1。
用多项式f(x)来描述线性反馈移位寄存器的反馈连接状态。
其中x 的幂次表示元素的相应位置。
上式称为线性反馈移位寄存器的特征多项式。
a n -1
1
a n -2
2
a 1
n -1a 0
+
c 1+
c 2
+
c n -1c n =1
c 0=1
n
输出a k
∑==
+++=n
i i
i
n
n x
c
x
c x c c x f 0
10)(
3.2本原多项式的确定
特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m 序列:
(1) F(x)是不可约的,即不能再分解多项式; (2) F(x)可整除1p x +,这里21n p =-; (3) F(x)不能整除1q x +,这里q<p.
满足上述条件的多项式称为本原多项式.这样产生m 序列的充要条件就变成了如何寻找本原多项式。
寻找本原多项式是一件繁琐的工作,计算的到的结果已列表。
表2-2 本原多项式系数
n
本原多项式的八进制系数表达式
代数式
2 7 12
++x x
3 13 13
++x x 4 23 14
++x x
5 45 12
5
++x x
6 103 16
++x x 7 211 13
7++x x
8 435 13
4
8
++++x x x x
9 1021 14
9++x x 10 2011 13
10++x x 11 4005 12
11
++x x
12
10123
14
6
12
++++x x x x
表2-2给出其中部分结果,每个n 只给出一个本原多项式为了使序列发生器尽量简单,常用的只有3项的本原多项式表中列出的本原多项式都是项数最少的,为了简便起见,用八进制数字记载本原多项式的系数。
由系数写出本原多项式非
常方便。
本文探讨n=5时,本多项式系数的八进制表示为45,将45写为二进制码100 101,从右向左第一个1对应于
C ,按系数可写出
()
x F =
12
5++x x 。
从左向右的第一个1对应于0C ,按系数可写出对
应的寄存器函数[1C 2C 3C 4C 5C ]=[0 0 1 0 1]。
3.3 m 序列的发生
根据m 序列的特征方程:
(1)
可知本原多项式为52()1f x x x =++的5阶移位寄存器为 [1C 2C 3C 4C
5C ]=[0 0 1 0 1],移位寄存器结构为
初始化寄存器为[ 5D 4D 3D 2D 1D ] =[0 0 0 0 1],寄存器首先左移位可知()0m =0,这时依据(1)式得知反馈351c c D ⊕=。
由于为5阶寄存器,码长
31125
=-=L 。
故要循环31
次,得到所需的m 序列。
程序代码如下:
function [mseq]=mseries(coefficients)
len=length(coefficients); %所需的移位寄存器的长度 L=2^len-1;
registers=[zeros(1,len-1),1];%初始寄存器内容 mseq(1)=registers(1); %m 序列的第一个输出码元 for i=2:L
newregisters(1:len-1)=registers(2:len);
∑
1
D 2D 3D 4D 5
D 0
C 3
C 5
C m 序列
2
0120
()n
n
i
n i i f x c c x c x c x c x ==++++=∑
newregisters(len)=mod(sum(coefficients.*registers),2); registers=newregisters;
mseq(i)=registers(1);
end
将以上代码命名为mseries.m
第四章 程序调试及结果分析
以 5 阶移位寄存器为例来产生m 序列,由文献可知其特征多项式
5
2
()1
f x x x =++为本原多项式,亦及其反馈连接形式为[1C 2C 3C 4C
5C ]=[0 0 1 0 1];
移位寄存器结构为
程序代码为:
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients); stairs(mseq); 保存为m_run.m
在MATLAB 的command window 里 运行 m_run ,
得到图3-1所示:
∑
1
D 2D 3D 4D 5
D 0
C 3
C 5
C m 序列
图3-1 运行结果
得到m序列返回值为:
Columns 1 through 11
0 0 0 0 1 1 1 0 1 0 0 Columns 12 through 22
1 1 1 0 1 0 0 1 1 1 0 Columns 23 through 31
1 0 0 1 1 1 0 1 0
通过运行结果可以看出是由0、1组成的阶梯形图形,Stairs函数功能是画阶梯形,生成一系列的m序列,成功实现了要求。
由于m序列全为0 1的集合,直接的stairs绘制使得0,1的位置不清楚,使用stem(mseq)重新运行得到图3-2。
图3-2新运行图形这样就明显看到m序列的位置。
GUI工具设计的图形显示界面及其程序如下:在按钮“图形1”的M文件中输入程序:
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'color','red')
set(handles.radiobutton2,'value',0)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton5,'value',0)
set(handles.radiobutton6,'value',0)
set(handles.radiobutton7,'value',0)
set(handles.radiobutton8,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.pushbutton2,'value',0)
运行得到如下图形:
在按钮“图形2”的M文件中输入程序:
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','red')
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.radiobutton4,'value',0) set(handles.pushbutton1,'value',0) 运行得到如下图形:
图形1加宽程序:coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linewidth',3)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0)
set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 运行得到:
图形2加宽程序:coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linewidth',3)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 运行得到:
图形1虚线程序:coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linestyle',':')
set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 运行得到:
其余按钮程序如下:
图形1:
实线程序
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linestyle','-')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 变细
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linewidth',0.5)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 图形2:
虚线
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linestyle',':')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 实线
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linestyle','-')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 变细
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linewidth',0.5)
set(handles.radiobutton2,'value',0)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.radiobutton5,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton7,'value',0)
set(handles.radiobutton6,'value',0)
set(handles.pushbutton1,'value',0)
set(handles.pushbutton2,'value',0)
背景颜色程序:
红色
set(gcbf,'color','r');
set(gcbo,'checked','on');
set(handles.hwcyellow,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off');
黄色
set(gcbf,'color','y');
set(gcbo,'checked','on');
set(handles.hwccyan,'checked','off'); set(handles.hwcred,'checked','off');
set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
青色
set(gcbf,'color','c');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
蓝色
set(gcbf,'color','blue');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcblack,'checked','off');
set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
黑色
set(gcbf,'color','black');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
紫色
set(gcbf,'color','magenta');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcgreen,'checked','off')
绿色
set(gcbf,'color','green');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwccyan,'checked','off')
在菜单上点击yellow得到如下图形:
改变m序列图形颜色程序如下:红色
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','red');
黄色
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','yellow');
青色
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','cyan');
蓝色
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','blue');
黑色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','black');
紫色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','magenta');
绿色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','green');
点击菜单上magenta得到如下图形:
窗口颜色程序:
绿色
disp('Untitled_20 callback not implemented yet.') set(handles.axes1,'color',[0 1 0])
set(handles.Untitled_21,'value',0)
set(handles.Untitled_22,'value',0)
黄色
disp('Untitled_21 callback not implemented yet.') set(handles.axes1,'color',[1 1 0])
set(handles.Untitled_20,'value',0)
set(handles.Untitled_22,'value',0)
青色
disp('Untitled_22 callback not implemented yet.') set(handles.axes1,'color',[0 1 1])
set(handles.Untitled_21,'value',0)
set(handles.Untitled_20,'value',0)
点击菜单上cyan得到如下图形:
结论
本文设计的题目是m序列发生器的设计,文中介绍的扩频伪随机码m序列的Matlab生成源程序是基于线性反馈移位寄存器结构而编写的,更清楚的描述了m 序列的生成过程中的数字逻辑。
本方法应用移位寄存器理论,从m序列的本原多项式出发,其算法核心是找到m序列本原多项式与线性m序列移位寄存器反馈逻辑式之间的关系,然后采用C语言编程,并借助Matlab开发平台实现序列。
m序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。
在课程设计的过程中,查询了大量的资料,通过相关资料的查阅,还掌握了通信领域的有关知识,扩大了知识面。
参考文献
[1]查光明.熊贤祚.扩频通信[M].西安:西安电子科技大学出版社.1990
[2]田日才.扩频通信[M].北京:清华大学出版社.2007.
[3]孙屹,李妍. MATLAB 通信仿真开发手册[M]. 北京:国防工业工业出版社,2006,5.
[4]王哲.伪随机序列的Matlab实现与分析[J].科技创新导报.2008. 23
[5]樊昌信,张甫翊,吴成柯.现代通信[M].北京:高等教育出版社,2001.
附录一:程序代码
m序列图形主代码:
function [mseq]=mseries(coefficients)
len=length(coefficients); %所需的移位寄存器的长度
L=2^len-1;
registers=[zeros(1,len-1),1];%初始寄存器内容
mseq(1)=registers(1);%m序列的第一个输出码元
for i=2:L
newregisters(1:len-1)=registers(2:len);
newregisters(len)=mod(sum(coefficients.*registers),2); registers=newregisters;
mseq(i)=registers(1);
end
显示界面:
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
stairs(mseq);
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
stem(mseq);
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'color','red')
set(handles.radiobutton2,'value',0)
set(handles.radiobutton1,'value',0)
set(handles.radiobutton3,'value',0)
set(handles.radiobutton5,'value',0)
set(handles.radiobutton6,'value',0)
set(handles.radiobutton7,'value',0)
set(handles.radiobutton8,'value',0)
set(handles.radiobutton4,'value',0)
set(handles.pushbutton2,'value',0)
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','red')
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.radiobutton4,'value',0) set(handles.pushbutton1,'value',0)
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linewidth',3)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0)
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linewidth',3)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0)
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linestyle',':')
set(handles.radiobutton2,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0)
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linestyle','-')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 变细
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stairs(mseq);
set(h,'linewidth',0.5)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0) set(handles.pushbutton2,'value',0) 图形2:
虚线
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linestyle',':')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton6,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0)
set(handles.pushbutton2,'value',0)
实线
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linestyle','-')
set(handles.radiobutton1,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton2,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton8,'value',0) set(handles.pushbutton1,'value',0)
set(handles.pushbutton2,'value',0)
变细
coefficients=[0 0 1 0 1]; mseq=mseries(coefficients);
h=stem(mseq);
set(h,'linewidth',0.5)
set(handles.radiobutton2,'value',0) set(handles.radiobutton1,'value',0) set(handles.radiobutton4,'value',0) set(handles.radiobutton5,'value',0) set(handles.radiobutton3,'value',0) set(handles.radiobutton7,'value',0) set(handles.radiobutton6,'value',0) set(handles.pushbutton1,'value',0)
set(handles.pushbutton2,'value',0)
背景颜色程序:
红色
set(gcbf,'color','r');
set(gcbo,'checked','on');
set(handles.hwcyellow,'checked','off'); set(handles.hwccyan,'checked','off');
set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off');
黄色
set(gcbf,'color','y');
set(gcbo,'checked','on');
set(handles.hwccyan,'checked','off'); set(handles.hwcred,'checked','off');
set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
青色
set(gcbf,'color','c');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
蓝色
set(gcbf,'color','blue');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
黑色
set(gcbf,'color','black');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwcgreen,'checked','off')
紫色
set(gcbf,'color','magenta');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwccyan,'checked','off'); set(handles.hwcgreen,'checked','off')
绿色
set(gcbf,'color','green');
set(gcbo,'checked','on');
set(handles.hwcred,'checked','off');
set(handles.hwcyellow,'checked','off'); set(handles.hwcblue,'checked','off'); set(handles.hwcblack,'checked','off'); set(handles.hwcmagenta,'checked','off'); set(handles.hwccyan,'checked','off')
改变m序列图形颜色程序如下:
红色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','red');
黄色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','yellow');
青色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','cyan');
蓝色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','blue');
黑色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','black');
紫色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','magenta');
绿色
coefficients=[0 0 1 0 1];
mseq=mseries(coefficients);
h=stem(mseq);
set(h,'color','green');
窗口颜色程序:
绿色
disp('Untitled_20 callback not implemented yet.') set(handles.axes1,'color',[0 1 0])
set(handles.Untitled_21,'value',0)
set(handles.Untitled_22,'value',0)
黄色
disp('Untitled_21 callback not implemented yet.') set(handles.axes1,'color',[1 1 0])
set(handles.Untitled_20,'value',0)
set(handles.Untitled_22,'value',0)
青色
disp('Untitled_22 callback not implemented yet.') set(handles.axes1,'color',[0 1 1])
set(handles.Untitled_21,'value',0)
set(handles.Untitled_20,'value',0)。