当前位置:文档之家› M序列的matlab产生方法

M序列的matlab产生方法

M序列的matlab产生方法
M序列的matlab产生方法

M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。下面介绍M序列的matlab产生方法。

idinput函数

产生系统辨识常用的典型信号。

格式

u = idinput(N,type,band,levels)

[u,freqs] = idinput(N,'sine',band,levels,sinedata)

N

产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu 指定通道数,P为周期,M*P为信号长度。默认情况下,nu=1,M=1,即一个通道,一个周期。

Type

指定产生信号的类型,可选类型如下

Band

指定信号的频率成分。对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果是白噪声信号,则band=[0, 1],这也是默认值。指定非默认值时,相当于有色噪声。对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。Levels

指定输入的水平。Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u 的值总是在minu和maxu之间。对于type=’rgs’,minu指定信号的均值减标准差,maxu 指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也是默认值。

说明

对于PRBS信号,如果M>1,则序列的长度和PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期是大于N的相应阶数的值。在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。

上面的意思可如下理解:对于M=1时,

ms = idinput(12, 'prbs', [0 1], [0 1]);

figure

stairs(ms)

title('M序列')

ylim([-0.5 1.5])

结果如下

同时,matlab给出如下警告

Warning: The PRBS signal delivered is the 12 first values of a full sequence of length 15.

即函数的输出为周期为15(大于12的第一个2^n-1的值)PRBS信号的前12个值组成的序列。如

ms = idinput(15, 'prbs', [0 1], [0 1]);

figure

stairs(ms)

title('M序列')

ylim([-0.5 1.5])

可以看到指定12时的序列为指定15时的序列的前面部分。

对于M>1时,

ms = idinput([12,1,2], 'prbs', [0 1], [0 1]);

figure

stairs(ms)

title('M序列')

ylim([-0.5 1.5])

结果如下

Matlab给出的响应警告为

Warning: The period of the PRBS signal was changed to 7. Accordingly, the length of the generated signal will be 14.

对于正弦信号和的产生,貌似用的不多,语法还挺复杂,等用的时候再看吧。

方法

产生’rgs’信号的带通信号使用的是一个8阶巴特沃斯滤波器,使用idfilt做的非因果滤波,这个是可信赖的方法。

对于’rbs’信号,使用的是相同的滤波器,但是是在二值化之前,这意味着频率成分并不保证是精确的。

产生高斯随机信号

clc

clear all

close all

% 高斯随机信号

u = idinput(1000, 'rgs');

figure

stairs(u)

title('高斯随机信号')

figure

hist(u, -4:4)

title('高斯随机信号的分布')

产生二值随机信号

clc

clear all

close all

% 二值随机信号

u = idinput(100, 'rbs');

figure

stairs(u)

title('二值随机信号')

ylim([-1.5 1.5])

产生二值伪随机信号(M序列)

合理的选择输入激励信号,能有效的激励起系统的动态信号。白噪声的平稳谱的性质决定了它是一个很好的输入信号,但它在工程中不易实现,而M序列具有近似白噪声的性质,可保证良好的辨识精度。

clc

clear all

close all

% 二值伪随机信号(M序列)

n = 8; % 阶次

p = 2^n -1; % 循环周期

ms = idinput(p, 'prbs');

figure

stairs(ms)

title('M序列')

ylim([-1.5 1.5])

结果

验证M序列的性质如下

?-1和1的个数差1

sum(ms==1) % 1的个数

sum(ms==-1) % -1的个数

ans =

127

ans =

128

?存在直流分量

mean(ms) % 直流分量

ans =

-0.0039

?相关函数

a = zeros(length(ms)*10, 1); % 采样for i = 1:10

a(i:10:end) = ms;

end

c = xcorr(a, 'coeff'); % 自相关函数figure

plot(c)

title('相关函数')

自相关函数接近于δ函数。?谱密度

figure

pwelch(a) % 谱密度

说明M序列不含基频的整数倍的频率成分。

产生逆M序列

谱分析表明,M序列含有直流成分,将造成对辨识系统的“净扰动”,这通常不是所希望的。而逆M序列将克服这一缺点,是一种比M序列更为理想的伪随机码序列。

clc

clear all

close all

% 二值伪随机信号(M序列)

n = 8; % 阶次

p = 2^n -1; % 循环周期

ms = idinput(p, 'prbs', [], [0 1]);

figure

stairs(ms)

title('M序列')

ylim([-0.5 1.5])

% 产生逆M序列

s = 0;

ims = zeros(2*p, 1);

mstemp = [ms; ms];

for i = 1:2*p

ims(i) = xor(mstemp(i), s);

s = not(s);

end

ims(ims==0) = -1;

figure

stairs(ims)

title('逆M序列')

ylim([-1.5 1.5])

?-1和1的个数差1

sum(ims==1) % 1的个数

sum(ims==-1) % -1的个数

ans =

255

ans =

255

?无直流分量

mean(ims) % 直流分量

ans =

?相关函数

a = zeros(length(ims)*10, 1); % 采样for i = 1:10

a(i:10:end) = ims;

end

c = xcorr(a, 'coeff');

figure

plot(c)

?谱密度

figure

pwelch(a)

MATLAB中产生高斯白噪声

MATLAB中产生高斯白噪声,涉及到awgn和wgn函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或 'linear'。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或 'complex'。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER 以瓦特为单位。 注释 1. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。 2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。 3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。 0 dBm = 1 mW 10 dBm = 10 mW 20 dBm = 100 mW 也可直接用randn函数产生高斯分布序列,例如: 程序代码 y=randn(1,2500); y=y/std(y);

matlab实现:常见的离散时间信号

1. 单位抽样序列,或称为离散时间冲激,单位冲激: ? ??=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ? ??01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。 );,1(N ones x = 3.正弦序列 )(cos )(0φω+=n A n x 这里, ,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( 6. 随机序列 长度为N 的随机序列 基本数学函数参考教材P69页以及随后的使用说明。 注意使用行向量,特别是冒号运算符。 举例,长度为N 的实指数序列在MATLAB 中实现: n a x N n .^1 :0=-= 1. 单位采样 长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:

u=[1 )1,1(-N zeros ]; 延迟M 个采样点的长度为N 的单位采样序列ud(n)(M

常用信号的MATLAB表示

5 常用信号的MATLAB表示5.1单位冲激函数、单位冲激序列 示例7: t = -5:0.01:5; y = (t==0); subplot(121); plot(t, y, 'r'); n = -5:5; x = (n==0); subplot(122); stem(n, x); 图5 运行结果如图5所示。

程序说明: (1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。这样得到的向量x也是1×11数组,且正好就是单位冲激序列。 (2)在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。在信号的表示和运算中,这一点请务必注意;只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。 (3)单位冲激函数的实现方法实际上与单位冲激序列是完全相同的,都是用序列表示。只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。 由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。 % delta.m function [x, n] = delta(n1,n2,k) % 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2

白噪声的测试MATLAB程序

白噪声的测试MATLAB程序 学术篇 2009-11-13 22:18:03 阅读232 评论0 字号:大中小订阅 clear; clc; %生成各种分布的随机数 x1=unifrnd(-1,1,1,1024);%生成长度为1024的均匀分布 x2=normrnd(0,1,1,1024);%生成长度为1024的正态分布 x3=exprnd(1,1,1024);%生成长度为1024的指数分布均值为零 x4=raylrnd(1,1,1024);%生成长度为1024的瑞利分布 x5=chi2rnd(1,1,1024);%生成长度为1024的kaifang分布%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的均值 m1=mean(x1),m2=mean(x2),m3=mean(x3),m4=mean(x4),m5=mean(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的方差 v1=var(x1),v2=var(x2),v3=var(x3),v4=var(x4),v5=var(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的自相关函数 figure(1);title('自相关函数图'); cor1=xcorr(x1);cor2=xcorr(x2);cor3=xcorr(x3);cor4=xcorr(x4);cor5=xcorr(x5); subplot(3,2,1),plot(1:2047,cor1);title('均匀分布自相关函数图'); subplot(3,2,2),plot(1:2047,cor2);title('正态分布'); subplot(3,2,3),plot(1:2047,cor3);title('指数分布'); subplot(3,2,4),plot(1:2047,cor4);title('瑞利分布'); subplot(3,2,5),plot(1:2047,cor5);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的概率密度函数 y1=unifpdf(x1,-1,1); y2=normpdf(x2,0,1); y3=exppdf(x3,1); y4=raylpdf(x4,1); y5=chi2pdf(x5,1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的频数直方图 figure(2); subplot(3,2,1),hist(x1);title('均匀分布频数直方图'); subplot(3,2,2),hist(x2,[-4:0.1:4]);title('正态分布'); subplot(3,2,3),hist(x3,[0:.1:20]);title('指数分布'); subplot(3,2,4),hist(x4,[0:0.1:4]);title('瑞利分布'); subplot(3,2,5),hist(x5,[0:0.1:10]);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的概率密度估计 figure(3);

实验1 常见离散信号的MATLAB产生和图形显示

实验1 常见离散信号的MATLAB 产生和图形显示 一、实验目的:加深对常用离散信号的理解 二、实验原理: 1.单位抽样序列:???=01)(n δ 00 ≠=n n 在MATLAB 中可以利用zeros()函数实现。 ; 1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n ?δ即:? ??=?01)(k n δ 0≠=n k n 2.单位阶越序列:???0 1 )(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。(1,)x ones N = 3.正弦序列:)/2sin()(?π+=Fs fn A n x 在MATLAB 中 ) /***2sin(*1 :0fai Fs n f pi A x N n +=?= 4.复正弦序列:n j e n x ?=)( 在MATLAB 中 ) **exp(1 :0n w j x N n =?= 5.指数序列:n a n x =)( 在MATLAB 中 n a x N n .^1:0=?= 三、实验内容: 1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。 2、讨论正弦序列、复指数序列的性质: (1)绘出信号()zn x n e =,当1126z j π=?+、1126z j π=+、112 z =、62πj z +=、6π j z =时 信号的实部和虚部图;当6 π j z =时信号的周期为多少?

(2)绘出信号() 1.5sin(2*0.1)x n n π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。 3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc 函数,并绘图。 四、实验要求: 1、预先阅读MATLAB 基础; 2、讨论复指数序列的性质。

白噪声产生程序

第二章的白噪声产生程序 例2.2 用乘同余法产生(见光盘FLch2bzsheg2.m) ①编程如下: A=6; x0=1; M=255; f=2; N=100;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声') ②程序运行结果如图2.6所示。 图2.6 采用MA TLAB产生的(-1,+1)均匀分布的白噪声序列 ③产生的(-1,1)均匀分布的白噪声序列 在程序运行结束后,产生的(-1,1)均匀分布的白噪声序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):

v2 = -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 *另外,书中图2.3白噪声的产生如下: 显然,只要在例2.2程序的初始化部分中给N=300,f=6,运行程序就可以得到如图2.3所示的(-3,3)的白噪声过程. ①编程如下: A=6; x0=1; M=255; f=6; N=300;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数

现代通信原理作业一 姓名:张英伟学号:8036 班级:13级理工部3班 利用matlab完成: ●产生正弦波信号、均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦 波信号上,绘出波形。 ●分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,绘出波 形。 一、白噪声区别及产生方法 1、定义: 均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。 高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。 2、matlab仿真函数: rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式: z2=a+(b-(a))*rand(m,n)............(公式1) randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生均值为0、方差为1的正态分布白噪声,即N(0,12)。利用公式: z1=a+b*randn(1,n).................(公式2) 可以产生均值为a,方差为b2 高斯白噪声,即N(a,b2)。 二、自相关函数与功率谱密度之间的关系 1、功率谱密度:每单位频率波携带的功率,这被称为信号的功率谱密度。 2、自相关函数:描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度。 3、维纳-辛钦定理: 由于平均值不为零的信号不是平方可积的,所以在这种情况下就没有傅里叶变换。幸运的是维纳-辛钦定理提供了一个简单的替换方法,如果信号可以看作是平稳随机过程,那么功率谱密度就是信号自相关函数的傅里叶变换。 4、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)

常见连续信号的MATLAB表示

实验名称:常见连续信号的MATLAB 表示 报告人: 姓名班级学号 一、实验目的 1、熟悉常见连续时间信号的意义、特性及波形; 2、学会使用MATLAB 表示连续时间信号的方法; 3、学会使用MATLAB 绘制连续时间信号的波形。 二、实验内容及运行结果 1、运行以上5个例题的程序,保存运行结果。 2、已知信号()t f 的波形如下图所示,试用MATLAB 绘出满足下列要求的信号波形。 <1)()t f -; <2)()2-t f ; <3)()at f <其中a 的值分别为 21= a 和2=a ); <4)? ?? ??+12 1t f 。 第一题 例题1

程序如下: >> t1=-10:0.5:10。 >> f1=sin(t1>./t1。 >> figure(1> >> plot(t1,f1> >> xlabel('取样间隔p=0.5'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。>> t2=-10:0.1:10。 >> f2=sin(t2>./t2。 >> figure(2> >> plot(t2,f2> >> xlabel('取样间隔p=0.1'>。 >> title('f(t>=Sa(t>=sin(t>/t'>。运行结果如下:

f(t)=Sa(t)=sin(t)/t 取样间隔p=0.5 f(t)=Sa(t)=sin(t)/t 取样间隔p=0.1例题2 程序如下: >> syms t >> f=sin(t>/t。 >> ezplot(f,[-10,10]>运行结果如下:

sin(t)/t t 例题3: 程序如下: >> t=-1:0.01:4。 >> t0=0。 >> ut=stepfun(t,t0>。>> plot(t,ut> >> axis([-1,4,-0.5,1.5]>运行结果如下:

M序列的matlab产生方法

M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。下面介绍M序列的matlab产生方法。 idinput函数 产生系统辨识常用的典型信号。 格式 u = idinput(N,type,band,levels) [u,freqs] = idinput(N,'sine',band,levels,sinedata) N 产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu 指定通道数,P为周期,M*P为信号长度。默认情况下,nu=1,M=1,即一个通道,一个周期。 Type 指定产生信号的类型,可选类型如下 Band 指定信号的频率成分。对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果是白噪声信号,则band=[0, 1],这也是默认值。指定非默认值时,相当于有色噪声。 对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。 Levels 指定输入的水平。Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u的值总是在minu和maxu之间。对于type=’rgs’,minu指定信号的均值减标准差,maxu指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也是默认值。 说明 对于PRBS信号,如果M>1,则序列的长度和PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期是大于N的相应阶数的值。在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。 上面的意思可如下理解:对于M=1时, ms = idinput(12, 'prbs', [0 1], [0 1]); figure stairs(ms) title('M序列') ylim([-0.5 1.5])

基于matlab的直接序列扩频通信系统仿真

基于MATLAB的直接序列扩频通信系统仿真 1.实验原理:直接序列扩频(DSSS)是直接利用具有高码率的扩频码系列采用各种调 制方式在发端与扩展信号的频谱,而在收端,用相同的扩频码序去进行解扩,把扩展宽的扩频信号还原成原始的信息。它是一种数字调制方法,具体说,就是将信源与一定的PN码(伪噪声码)进行摸二加。例如说在发射端将"1"用11000100110,而将"0"用00110010110去代替,这个过程就实现了扩频,而在接收机处只要把收到的序列是11000100110就恢复成"1"是00110010110就恢复成"0",这就是解扩。这样信源速率就被提高了11倍,同时也使处理增益达到10DB以上,从而有效地提高了整机倍噪比。 1.1 直扩系统模型 直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端用与发送端相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信号。对干扰信号而言,与伪随机码不相关,在接收端被扩展,使落入信号通频带的干扰信号功率大大降低,从而提高了相关的输出信噪比,达到了抗干扰的目的。直扩系统一般采用频率调制或相位调制的方式来进行数据调制,在码分多址通信中,其调制多采用BPSK、DPSK、QPSK、MPSK等方式,本实验中采取BPSK方式。 直扩系统的组成如图1所示,与信源输出的信号a(t)是码元持续时间为Ta的信息流,伪随机码产生器产生伪随机码c(t),每个伪随机码的码元宽度为Tc (Tc<

实验一--常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号的MATLAB 产生和图形显示 授课课时:2学时 一、实验目的: (1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。 (2)掌握MATLAB 在时域内产生常用离散时间信号的方法。 (3)掌握离散信号的基本运算。 (4)掌握简单的绘图命令。 二、实验原理: (一)信号的表示和产生 ① 单位抽样序列 ? ??=01)(n δ 00 ≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-0 1)(k n δ ≠=n k n 参考程序: 例1-1:)2010(()(<<-=n n n x )δ clear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。 n=n1:n2;%生成离散信号的时间序列 x=[n==n0];%生成离散信号x(n) stem(n,x);%绘制脉冲杆图

xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。 title('Unit Sample Sequence');%图形上方标注图名 axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围 ② 单位阶跃序列 ???=0 1 )(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x ) clear all n1=-2;n2=20;n0=0; n=n1:n2;%生成离散信号的时间序列 x=[n>=n0];%生成离散信号x(n) stem(n,x,'filled'); xlabel('n');ylabel('x(n)'); title('Unit step Sequence'); axis([-2 20 0 1.2]); ③ 正弦序列 )sin()(?+=wn A n x 例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。 参考程序: clear f=1; A=1;nt=2;

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数

现代通信原理作业一 姓名:张英伟学号:133320085208036 班级:13级理工部3班 利用matlab完成: ●产生正弦波信号、均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦 波信号上,绘出波形。 ●分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,绘出波 形。 一、白噪声区别及产生方法 1、定义: 均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。 高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。 2、matlab仿真函数: rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式: z2=a+(b-(a))*rand(m,n)............(公式1) randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生均值为0、方差为1的正态分布白噪声,即N(0,12)。利用公式: z1=a+b*randn(1,n).................(公式2) 可以产生均值为a,方差为b2 高斯白噪声,即N(a,b2)。 二、自相关函数与功率谱密度之间的关系 1、功率谱密度:每单位频率波携带的功率,这被称为信号的功率谱密度。 2、自相关函数:描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度。 3、维纳-辛钦定理: 由于平均值不为零的信号不是平方可积的,所以在这种情况下就没有傅里叶变换。幸运的是维纳-辛钦定理提供了一个简单的替换方法,如果信号可以看作是平稳随机过程,那么功率谱密度就是信号自相关函数的傅里叶变换。 4、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)

用MATLAB实现常用的离散时间信号及其时域运算

用M A T L A B实现常用的离散时间信号及其时域 运算 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

实验四用M A T L A B实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0 若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为:

MATLAB环境下的正弦信号及高斯白噪声仿真程序说明

姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033 MATLAB 环境下的正弦信号及高斯白噪声仿真程序说明 一、信号的产生及时域观察 1、设定正选信号的频率为10HZ ,抽样频率为100HZ ; 2、设定N(0,0.25)高斯白噪声,及噪声功率为0.25W ; 3、最后将噪声叠加到正弦信号上,观察其三者时域波形。 二、信号频谱及白噪声功率谱的求解与观察 1、对原正弦信号直接进行FFT ,得出其频谱; 2、求白噪声的自相关函数,随机序列自相关函数的无偏估计公式为: 1 ^ 01()()()N m xx n r m x n x n m N m --==+-∑ 01m N ≤≤- ^^ ()()xx xx r m r m =- 01m N <<- 对所求自相关函数进行FFT 变换,求的白噪声的功率谱函数。 三、仿真结果:

附源程序代码: fs=100; fc=10; x=(0:1/fs:2); n=201; y1=sin(2*pi*fc*x); %原正弦信号,频率为10 a=0;b=0.5; %均值为a,方差为b^2 subplot(3,2,1); plot(x,y1,'r'); title('y=sin(20pi*x)'); ylabel('y'); xlabel('x/20pi'); grid; y2=a+b*randn(1,n); %高斯白噪声 subplot(3,2,2); plot(x,y2,'r'); title('N(0,0.25)的高斯白噪声'); ylabel('y'); xlabel('x/20pi'); grid; y=y1+y2; %加入噪声之后的信号 subplot(3,2,3); plot(x,y,'r'); title('叠加了高斯白噪声的sinx'); ylabel('y'); xlabel('x/20pi'); grid; FY=fft(y); %傅里叶变换得出频谱函数 FY1=fftshift(FY); %频谱校正 f=(0:200)*fs/n-fs/2; subplot(3,2,4); plot(f,abs(FY1),'r'); title('函数频谱图'); ylabel('F(jw)'); xlabel('w'); grid; %求高斯白噪声的自相关函数 m=50; i=-0.49:1/fs:0.49;

Matlab实现M序列的产生及其自相关序列学习资料

M a t l a b实现M序列的产生及其自相关序 列

电子信息工程专业课程设计任务书

1 需求分析 伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性. 因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数, 有随机噪声的优点,又避免了随机噪声的缺点. 伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能. 因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用. m序列是伪随机序列中最重要的一种,是最长线性移位寄存器序列,m序列易于实现,具有优良的自相关特性,在直扩通信系统中用于扩展要传递的信号。可以通过移位寄存器,利用MATLAB编程产生m序列。 2 概要设计 m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的. 由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。 带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。 n级线性移位寄存器的如图1所示: 图1 n级线性移位寄存器

图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。 因此,一般形式的线性反馈逻辑表达式为 112201 (mod 2)n n n n n i n i i a C a C a C a C a ---==⊕⊕⊕=∑L 将等式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为 10 0n i n i C a -==∑ 定义一个与上式相对应的多项式 ()n i i i F x C x ==∑ 其中x 的幂次表示元素的相应位置。式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m 序列: (1) F(x)是不可约的,即不能再分解多项式; (2) F(x)可整除1p x +,这里21n p =-; (3) F(x)不能整除1q x +,这里q

M序列的matlab产生方法

M序列就是工程中常用的输入信号,它的性质类似于白噪声,而白噪声就是理论上最好的输入信号,可见M序列的价值。下面介绍M序列的matlab产生方法。 idinput函数 产生系统辨识常用的典型信号。 格式 u = idinput(N,type,band,levels) [u,freqs] = idinput(N,'sine',band,levels,sinedata) N 产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu指定通道数,P为周期,M*P为信号长度。默认情况下,nu=1,M=1,即一个通道,一个周期。 Type 指定产生信号的类型,可选类型如下 Band 指定信号的频率成分。对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果就是白噪声信号,则band=[0, 1],这也就是默认值。指定非默认值时,相当于有色噪声。 对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。 Levels 指定输入的水平。Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u的值总就是在minu与maxu之间。对于type=’rgs’,minu指定信号的均值减标准差,maxu指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也就是默认值。 说明 对于PRBS信号,如果M>1,则序列的长度与PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期就是大于N的相应阶数的值。在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。 上面的意思可如下理解:对于M=1时, ms = idinput(12, 'prbs', [0 1], [0 1]); figure stairs(ms) title('M序列') ylim([-0、5 1、5]) 结果如下

几种简单连续信号的matlab实现

连续信号及其MATLAB实现(原创) 连续信号又称为模拟信号,其信号存在于整个时间范围内,包括单位冲激信号,单位阶跃信号,斜坡信号,实指数信号,正弦信号,指数调制正弦信号,等等。以下我们将这几种常见的连续信号用MATLAB实现。 1、单位冲激信号 【例1】t=1/A=1/50时,单位脉冲δ(t)的MATLAB实现程序如下: clear all t1=-0.5:0.001:1; K=3; n1=length(t1); u=zeros(1,n1); t2=-0.5:0.001:0; n2=length(t2); u(n2)=K; plot(t1,u) 2、任意函数 【例2】脉冲序列: f(n)=0.4δ(n-2)+0.8δ(n-1)+1.2δ(n)+1.5δ(n+1)+1.0δ(n+2)+0.7δ(n+3),其MATLAB实现程序如下: clear all t=-2:1:3; N=length(t); x=zeros(1,N); x(1)=0.4; x(2)=0.8; x(3)=1.2; x(4)=1.5; x(5)=1.0; x(6)=0.7; stem(t,x) axis([-2.2 3.2 0 1.7]) 3、单位阶跃函数

【例3】单位阶跃函数的MATLAB实现程序: clear all t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.6 1 -0.2 1.2]) 4、斜坡函数 【例4】斜坡函数:g(t)=3(t-1),其MATLAB实现程序如下: clear all t=0:0.001:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2]) 5、实指数函数 【例5】实指数函数:f(t)=3exp(0.5t),其实现程序: clear all t=0:0.001:3; B=3; A=3; a=0.5; u=A*exp(a*t); plot(t,u)

通过matlab产生wav的白噪声

MATLAB 中产生高斯白噪声 MATLAB 中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN 用于产生高斯白噪声,AWGN 则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m 行n 列的高斯白噪声的矩阵,p 以dBW 为单位指定输出噪声的强 度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN 的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p 的单位。POWERTYPE 可以是’dBW’, ‘dBm’或’linear’。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE 可以是’real’或’complex’。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x 中加入高斯白噪声。信噪比SNR 以dB 为单位。x 的强度假定为0dBW。 如果x 是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER 是数值,则其代表以dBW 为单位的信号强度;如 果SIGPOWER 为’measured’,则函数将在加入噪声之前测定信号强度。 y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN 的状态。 y = awgn(…,POWERTYPE) 指定SNR 和SIGPOWER 的单位。POWERTYPE 可以是’dB’或’linear’。如果POWERTYPE 是’dB’,那么SNR 以dB 为单位,而SIGPOWER 以dBW 为单位。如果POWERTYPE 是’linear’,那么SNR 作为比值来度量,而SIGPOWER 以瓦特为单位。 注释 2.1 分贝(decibel, dB) 分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个 能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流 作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20 作为电平的分贝数(功率 的电平值改乘10)。 2.2 分贝瓦(dBW, dB Watt) 指以1W 的输出功率为基准时,用分贝来测量的功率放大器的功率值。 2.3 dBm (dB-milliWatt) 即与1milliWatt(毫瓦)作比较得出的数字。 0 dBm = 1 mW 10 dBm = 10 mW 20 dBm = 100 mW 补充: 也可直接用randn 函数产生高斯分布序列,例如: y=randn(1,2500); y=y/std(y); y=y-mean(y); a=0.0128; b=sqrt(0.9596); y=a+b*y;

相关主题
文本预览
相关文档 最新文档