白噪声的产生以及Matlab仿真
- 格式:docx
- 大小:69.74 KB
- 文档页数:2
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为单位。
现代通信原理作业一姓名:张英伟学号: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、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。
(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)二、源代码及仿真结果1、正弦波x=(0:0.01:2); %采样频率100Hzy1=sin(10*pi*x); %产生频率5Hz的sin函数plot(x,y1,'b');2、高斯白噪声+正弦波z1=0.1*randn(1,201); %产生方差N(0,0.12)高斯白噪声(b=0.01/0.1/1)plot(x,z1,'b');y2=y1+z1; %叠加高斯白噪声的正弦波plot(x,y2,'b');3、均匀白噪声+正弦波z2=-.3+.6*rand(1,201); %产生-0.3到0.3的均匀白噪声plot(x,z2,'b');y3=y1+z2; %叠加均匀白噪声的正弦波plot(x,y3,'b');4、高斯白噪声序列自相关函数及功率谱密度z1=0.1*randn(1,201); %产生方差N(0,0.12)高斯白噪声[r1,lags]=xcorr(z1); %自相关函数的估计plot(lags,r1);f1=fft(r1);f2=fftshift(f1); %频谱校正l1=(0:length(f2)-1)*200/length(f2)-100; %功率谱密度x轴y4=abs(f2);plot(l1,y4);5、均匀白噪声序列自相关函数及功率谱密度z2=-.3+.6*rand(1,201); %产生-0.3到0.3的均匀白噪声[r2,lags]=xcorr(z2); %自相关函数的估计plot(lags,r2);f3=fft(r2);f4=fftshift(f3); %频谱校正l2=(0:length(f4)-1)*200/length(f4)-100; %功率谱密度x轴y5=abs(f4);plot(l2,y5);。
matlab 白噪声功率谱白噪声是一种具有平坦功率谱密度的信号,即在所有频率上具有相同的能量。
在MATLAB中,我们可以使用一些内置函数来生成白噪声信号的功率谱密度。
首先,我们可以使用`wgn`函数来生成一个特定长度和功率的白噪声信号。
例如,以下代码将生成一个长度为1024的白噪声信号:matlab.fs = 1000; % 采样频率。
T = 1/fs; % 采样间隔。
t = 0:T:1-T; % 时间向量。
x = wgn(length(t), 1, 0); % 生成功率为0的白噪声信号。
接下来,我们可以使用`pwelch`函数来计算白噪声信号的功率谱密度估计。
`pwelch`函数可以对信号进行傅立叶变换,并计算出每个频率点上的功率值。
例如,以下代码将计算白噪声信号的功率谱密度估计:matlab.[pxx, f] = pwelch(x, [], [], [], fs); % 计算白噪声信号的功率谱密度估计。
plot(f, 10log10(pxx)); % 绘制功率谱密度图。
xlabel('Frequency (Hz)'); % x轴标签。
ylabel('Power/Frequency (dB/Hz)'); % y轴标签。
title('Power Spectral Density of White Noise'); % 图标题。
在这段代码中,我们使用`pwelch`函数计算了白噪声信号的功率谱密度估计,并使用`plot`函数绘制了功率谱密度图。
这样我们就可以清晰地看到白噪声在所有频率上具有均匀的功率分布。
除了使用`pwelch`函数,还可以使用`periodogram`函数来计算白噪声信号的功率谱密度估计。
这两种方法都可以用来分析白噪声信号的频谱特性。
总之,MATLAB提供了丰富的函数和工具,可以帮助我们生成白噪声信号并分析其功率谱密度,从而更好地理解和处理白噪声信号的特性。
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 变换,求的白噪声的功率谱函数。
源程序:1.产生正弦信号fs=100;fc=10;x=(0:1/fs:2);n=201;y1=sin(2*pi*fc*x); %原正弦信号,频率为10a=0;b=0.5; %均值为a ,方差为b^2subplot(2,2,1);plot(x,y1,'r');title('y=sin(20pi*x)');ylabel('y');xlabel('x/20pi');grid;2.产生高斯白噪声y2=a+b*randn(1,n); %高斯白噪声subplot(2,2,2);plot(x,y2,'r');title('N(0,0.25)的高斯白噪声');ylabel('y');xlabel('x/20pi');grid;3.复合信号y=y1+y2; %加入噪声之后的信号subplot(2,2,3);plot(x,y,'r');title('混合信号');ylabel('y');xlabel('x/20pi');grid;4.复合信号功率谱密度%求复合信号的自相关函数m=50;i=-0.49:1/fs:0.49;for j=1:mR(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j);%无偏自相关函数的估计Rx(49+j)=R(j);Rx(51-j)=R(j);endFy2=fft(Rx); %傅里叶变换得出复合信号功率谱函数Fy21=fftshift(Fy2); %功率谱校正f=(0:98)*fs/99-fs/2;subplot(2,2,4);plot(f,abs(Fy21),'r');axis([-50 50 -0.5 1]);title('复合信号功率谱函数图');ylabel('F(Rx)');xlabel('w');grid;。
白噪声的产生和分析①理想白噪声均值为零而功率谱密度为非零常数,即()012N S N ωω=-∞<<+∞,的平稳随机过程()N t 称为白噪声。
利用维纳—辛钦公式,不难得到白噪声的自相关函数为()()12j N N R S e d ωττωωπ∞-∞=⎰04j N e d ωτωπ∞-∞=⎰()012N δτ= ②若一个具有零均值的平稳随机过程()X t ,其功率谱密度在某一个有限频率范围内均匀分布,而在此范围外为零,则称这个过程为带限白噪声。
带限白噪声又可分为低通型的和带通型的。
低通型带限白噪声的功率谱密度满足()0, 0,X S WS Wωωω≤⎧=⎨>⎩ 自相关函数为()()12j X XR S e d ωττωωπ∞-∞=⎰012Wj WS e d ωτωπ-=⎰0sin WS W W τπτ=带通型带限白噪声的功率谱密度满足()000,220,X W W S S ωωωω⎧-<<+⎪=⎨⎪⎩其它自相关函数为()()00sin 2cos 2X W WS R W ττωττπ= Matlab 相关函数rand(m,n) 产生m 行n 列的均匀分布 randn(m,n) 产生m 行n 列的高斯分布 [c,lags] =xcorr(x,maxlags,'option') 自相关函数,'option'选择'unbiased'无偏估计,时域区间[-maxlags:maxlags] ,序列长度2*maxlags+1[Pxx,f] = periodogram(x,window,nfft,fs) 功率谱密度,偶数点时,Pxx 长度(nfft/2 + 1),w 范围[0,pi][f,xi] = ksdensity(x) 一维概率密度 fft(X) 傅里叶变换[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') 巴特沃斯滤波器,Wp 为通带边界频率,Ws 为阻带边界频率,Rp 通带最大衰减,Rs 为阻带最小衰减,n 为阶数,Wn 为归一化频率[z,p,k] = buttap(n) 巴特沃斯模拟低通滤波器模型[h,w] = freqz(hd,n) 离散时域滤波器的频率响应,h、w长度为n,w范围[0,pi] filter(b,a,X) 滤波器[b,a]=ellip(n, Rp, Rs, Wn,'option') 椭圆滤波器实验设计与实现(1)用Matlab编写和仿真程序。
课程设计任务书计算机与通信工程学院通信工程专业噪声产生器的MATLAB实现及性能分析——噪声带宽为1.7MHz学生姓名:袁清欣指导老师:曹敦摘要本课程设计的目的主要是仿真噪声产生器, 分析其性能并与同组同学对比。
首先利用MATLAB中的Simulink产生m序列来模拟高斯白噪声,再将其送入一带宽为1.7MHz的带通滤波器,得到带宽为1.7MHz的带限白噪声,示波器上观察该噪声波形。
在本课程设计中采用的是一个4级的m序列模拟高斯白噪声,仿真后得到了1.7MHz的带限白噪声,通过对其性能分析达到设计要求。
关键词噪声产生器;高斯白噪声;MATLAB/Simulink1 引言噪声产生器可以用来测量通信系统在不同信噪比条件下的性能。
而噪声二极管做成的噪声产生器,在测量数字通信系统的性能时不很适用。
因为它在一段观察时间内产生的噪声的统计特性,不一定和同样长的另一段观察时间内的统计特性相同。
测量得到的误码率常常很难重复得到。
本课程设计主要是借助MATLAB中的Simulink为平台,用m序列的一部分频谱作为噪声产生器的噪声输出,产生带限高斯白噪声,进行噪声产生器的仿真。
虽然是伪噪声,但有可重复性。
1.1 课程设计的目的本课程设计的目的主要是仿真噪声产生器。
利用m序列模拟高斯白噪声,调制频率搬移到17MHz后,送入一带宽为1.7MHz的带通滤波器,得到带宽为1.7MHz的带限白噪声,示波器上观察该噪声波形,并观察其频谱,与同组同学比较各种不同带宽噪声的波形和性能。
从而加深对m序列伪噪声特性的理解,增强独立思考与解决问题的能力,为以后的研究和就业带来一定的帮助。
1.2课程设计的要求(1)本设计开发平台为MATLAB中的Simulink。
(2)模型设计应该符合工程实际,模块参数设置必须与原理相符合。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
1.3设计平台本设计开发平台为MATLAB中的Simulink。
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 以瓦特为单位。
matlab 协方差白噪声
在Matlab中,可以使用'randn'函数生成服从高斯白噪声(随机数)的向量,然后使用'cov'函数计算该向量的协方差矩阵。
下面是一个示例代码:
```matlab
N = 1000; % 数据长度
x = randn(N, 1); % 生成服从高斯分布的白噪声
C = cov(x); % 计算x的协方差矩阵
% 显示结果
disp('协方差矩阵:');
disp(C);
```
上述代码首先设置了数据长度N为1000,然后使用'randn'函数生成一个N行1列的服从高斯分布的随机向量x。
接着,使用'cov'函数计算x的协方差矩阵C。
最后,使用'disp'函数显示协方差矩阵C的结果。
注意,由于是随机生成的白噪声,每次运行代码生成的随机数序列和协方差矩阵都会略有不同。
实验一、Matlab/Simulink上机练习一、实验内容1、系统辨识信号的产生:U=idinput(N,type,Band,levels,auxvar);2、用simulink产生Noise,Sine,PRBS,用示波器观测波形;3、产生白噪声信号,计算其平均值,方差(和功率谱);4、选一模型对象,求其阶跃响应,然后再用白噪声作输入,计算某系统输出。
二、实验结果1、idinput函数产生系统辨识常用的典型信号。
格式u = idinput(N,'sine',band,levels,sinedata)指定产生信号的类型,可选类型如下%产生高斯随机信号u1=idinput(500,'rgs')stairs(u1)title('高斯随机信号')ylim([-5 5])%产生二值随机信号u2=idinput(500,'rbs')stairs(u2)title('二值随机信号')ylim([-1.5 1.5])%产生二值伪随机信号u3=idinput(500,'prbs') stairs(u3)title('二值伪随机信号') ylim([-1.5 1.5])m=mean(u3)2、3、% 产生白噪声N=100 a=idinput(100,'prbs') stairs(a)title('白噪声N=100') ylim([-1.5 1.5])m1=mean(a)v1=var(a)结果m1 =-0.1200v1 =0.99564、。
实验一基于MATLAB的白噪声信号u(n)、sinc函数、chirp信号产生实验一、实验目的:1.学会使用MATLAB2.通过实验了解MATLAB如何产生各种常用信号3.掌握MATLAB的编程方法二、实验内容:1.用MATLAB编程产生一均匀分布的白噪声信号u(n),画出其波形,并检验其分布情况。
代码:clear;N = 50000;u = rand(1,N);u_mean = mean(u);power_u = var(u);subplot(211);plot(u(1:100));grid on;ylabel('u(n)');xlabel('n');subplot(212);hist(u,100);grid on;ylabel('histogranm of u(n)');运行结果:2.用MATLAB编程产生一均匀分布、均值为零、功率为0.01的白噪声信号u(n),画出其波形。
代码:clear;p = 0.01;N = 50000;u = rand(1,N);u = u - mean(u);a = sqrt(12*p);u1 = u*a;power_u1 = dot(u1,u1)/N;subplot(111);plot(u1(1:200));grid on;ylabel('u(n)');xlabel('n');运行结果:3.用MATLAB编程产生高斯分布的白噪声信号,使功率为p,并观察数据分布的直方图。
代码:p = 0.1;N = 50000;u = rand(1,N);u = u*a;power_u = var(u);subplot(211);plot(u(1:200));grid on;ylabel('u(n)');xlabel('n');subplot(212);hist(u,50);grid on;ylabel('histgram of u(n)');运行结果:4.用MATLAB编程产生一sinc函数,画出其波形。
一、白噪声和有色噪声定义
1.白噪声(white noise)
系统辨识中所用到的数据通常都是含有噪声的。
从工程实际出发,这种噪声往往可以视为具有有理谱密度的平稳随机过程。
白噪声是一种最简单的随机过程,是有一系列不相关的随机变量组成的理想化随机过程。
其自相关函数为dirac函数。
2.有色噪声(colored noise)
理想的白噪声只是一种理论上的抽象,在物理上是很难实现的,现实中并不存在这样的噪声。
因而,工程实际中测量数据所包含的噪声往往是有色造势。
所谓有色噪声(或相关噪声)是指序列中没一时刻的噪声相关。
有色噪声可以看成是由白噪声序列驱动的线性环节的输出。
二、白噪声与有色噪声区别
(1)其实由定义可以看出,白噪声不同时刻是不相关的,自相关函数为脉冲函数;有色噪声则是相关的。
(2)实际测试可以通过测试功率谱来区别,白噪声的功率谱在各频率的值都比较平均,有色噪声则会有较为明显的峰值。
白噪声
功率谱。