matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数
- 格式:doc
- 大小:89.50 KB
- 文档页数:4
关于matlab 中噪声功率谱密度与方差之间的关系的理解1. 连续时间系统高斯白噪声的定义为:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
故对于连续时间系统,理想的高斯白噪声的功率谱密度是一个常数,设为n0,而带宽是无限宽的,其功率为:0*n ∞=∞ (1) 在n0不是为无穷小的情况下,理想的噪声功率Pn 是无限大的。
而实际当中,噪声带宽是有限宽的,只需要在我们所关心的频带范围内,噪声功率谱密度是个常数,则我们可认为其是高斯白噪声。
设噪声单边功率谱密度为0n ,低通带宽为W ,则其噪声功率为:0*2n n P W = (2)如图1.1所示:W 频率/HZ图1.1我们知道,高斯白噪声的分布为2~(0,)X N σ,则其功率为:222()()()()n P E x D x E x D x σ==+== (3)故对于低通系统有:20/2n W σ= (4) 而对于带通系统,如图1.2所示,有: 200*2*2n n P W n W σ=== (5)W -W 频率/HZ2. 离散时间系统对于离散时间系统而言,带宽受到抽样速率fs 的限制。
设WGN 一秒内抽取的一组数据样本为:12[],,....fs x n x x x =22([])0;([])([])E x n D x n E x n σ===2.1理论分析由于时间为单个的离散点,故理想功率为0;但有下列定义:对于序列[]x n 的能量E 定义为序列各抽样值的平方和,则数据样本的能量为: 2221()*[()]*s f s s E x n f E x n f σ===∑(6)将功率定义为序列能量除以序列的时间,即2*s b E P f T σ== (7)式中,Tb 为序列时间,此处等于1S 。
2.2另一种理解而实际当中,抽样点是一个时间段,认为1/s s T f =时间内的幅值就等于此抽样时刻的幅值,则噪声能量为:22***t s s s E E T f T σσ===(6)则噪声功率为: 222221234222{[]*[]*[]*[]*......[]*}*[]*[]n s s s s S s s sP E n n T n n T n n T n n T n n T f E N T E N σ=++++===高斯白噪声经过抽样之后,其带宽如下所示:W -W 频率/HZ -fs fs Fs+W -Fs-W 故抽样之后功率谱密度仍然为常数,设此时的功率谱密度为n0,其带宽为fs/2,故其功率为:20*2n fs p n σ== (6) 3. 结论故在连续系统跟离散系统中,噪声功率谱密度与方差的实际关系可以认为是相同的。
matlab高斯噪声函数(原创版)目录1.Matlab 中生成高斯噪声的方法2.高斯噪声的特点和应用3.椒盐噪声与高斯噪声的区别4.如何在 Matlab 中生成椒盐噪声和高斯白噪声5.滤波器在噪声抑制中的应用正文在 Matlab 中,生成高斯噪声常用的函数是 randn。
该函数可以生成服从正态分布的随机数。
其使用方法为:y = randn(m,n),其中 m 和 n 分别为矩阵的大小。
生成的随机数矩阵 y 中,每个元素都服从均值为 0、方差为 1 的高斯分布。
高斯噪声的特点是其噪声幅度随机,且在图像中的位置固定。
这种噪声在图像处理中很常见,例如在图像传输过程中,信号可能受到高斯噪声的影响。
因此,研究如何生成和处理高斯噪声对于图像处理具有重要意义。
椒盐噪声是一种特殊的高斯噪声,其特点是在图像中的某些位置上噪声幅度较大,形成“椒盐”状。
椒盐噪声与高斯噪声的主要区别在于噪声的幅度分布,椒盐噪声的噪声幅度分布不是正态分布,而是具有较高的峰值和较低的谷值。
在 Matlab 中,可以通过 imnoise 函数生成椒盐噪声。
例如,使用imnoise(I, "salt", m, v) 可以生成椒盐噪声,其中 I 为要添加噪声的图像,m 和 v 分别表示噪声的强度和方差。
除了椒盐噪声,Matlab 中也可以生成高斯白噪声。
高斯白噪声是在频域上呈高斯分布的噪声,其能量分布均匀。
在 Matlab 中,可以使用awgn 函数生成高斯白噪声。
例如,使用 awgn(x, snr) 可以生成高斯白噪声,其中 x 为信号,snr 为信噪比。
在实际应用中,噪声抑制滤波器可以用于去除图像中的噪声。
常见的噪声抑制滤波器包括均值滤波器、中值滤波器和边界保持类滤波器。
均值滤波器的原理是在图像上,对待处理的像素给定一个模板,该模板包括了其周围的邻近像素。
将模板中的全体像素的均值来替代原来的像素值。
中值滤波器则通过取图像中每个像素邻域的中值来实现噪声抑制。
高斯白噪声的概率密度函数,功率谱密度函数高斯白噪声(Gaussian White Noise,GWN)是一种随机过程,它应用于计算机领域中处理非常复杂的信号。
这种信号通常具有随机性和动态变化,GWN具有立即响应的特性,可以应用于提取信号的特征,其中包括概率密度函数和功率谱密度函数。
一、概率密度函数
概率密度函数是用来衡量不同随机变量在给定时间的概率的函数。
概率密度函数描述了每一个表示映射过程中的值分布,这样用户就可以确定可能发生的预期结果。
高斯白噪声概率密度函数具有一定的高斯分布,平均值为0,特征值为1,累积概率密度函数以1/2为期望值。
其形式为:
f(x)= 1/√2π * exp(-x2)
其中f(x)为取值的概率,exp(-x2)为高斯函数。
二、功率谱密度函数
功率谱密度函数(PSD)是一种用来表示随机信号功率谱图的函数。
它是指在空间频率域中,将特定时间间隔内的幅度值转换为频率域上对应的功率谱值。
高斯白噪声的功率谱密度函数具有一定形式,可以定义零平均值,即每个取值的功率均相等,其形式如下:
F(f)=(1/2)2/π
其中f为信号的频率,F(f)为功率谱密度的值。
综上,高斯白噪声概率密度函数和功率谱密度函数分别有不同的形式,分别由具有一定的概率分布和频率值密度构成,各取不同的期望值。
这种信号模式可以用于提取信号的特征,从而可以更好地理解特定的
操作规则。
由此可以看出,GWN在探索信号特征中具有很强的实用性,同时也可以用于开发新技术,以实现更高效率的数据处理。
高斯白噪声matlab摘要:1.高斯白噪声的定义和特性2.MATLAB 中生成高斯白噪声的方法3.高斯白噪声在各个领域的应用正文:1.高斯白噪声的定义和特性高斯白噪声(Gaussian White Noise)是一种在各个频率上具有相同能量分布的随机信号,它是信号处理领域中常见的一种噪声模型。
高斯白噪声具有以下特性:- 它的概率密度函数服从正态分布(高斯分布),即均值为0,方差为常数σ的正态分布。
- 在各个频率上的能量分布是均匀的,即具有平坦的功率谱。
- 高斯白噪声是各态历经(ergodic)的,这意味着在一个长时间内,信号的任何一段样本都是可能出现的。
2.MATLAB 中生成高斯白噪声的方法在MATLAB 中,可以使用内置函数`wgn`来生成高斯白噪声。
以下是一个简单的示例:```matlab% 指定信号的长度= 1000;% 生成高斯白噪声oise = wgn(n, 1);% 显示噪声信号figure;plot(noise);title("高斯白噪声示例");```其中,`wgn`函数的第一个参数`n`表示信号的长度,第二个参数`1`表示信号的均值为1。
需要注意的是,`wgn`函数生成的高斯白噪声是在均值为0,标准差为1 的条件下生成的,因此在实际应用中,可能需要根据需要对信号进行缩放。
3.高斯白噪声在各个领域的应用高斯白噪声在许多领域都有广泛的应用,包括通信、信号处理、图像处理等。
例如,在通信系统中,高斯白噪声常常被用作信道噪声的模型,以研究信道对信号传输性能的影响;在图像处理中,高斯白噪声可以作为随机噪声加入到图像中,以生成具有自然随机纹理的效果。
matlab产生高斯白噪声产生一个长度为L、均值为零、功率为N的复数高斯白噪声用这种方法:1,X = sqrt(N/2) * ( randn(1,L) + j * randn(1,L) );根据随机过程理论,功率包含直流功率和交流功率,方差就是交流功率,这里均值为零,也就是总功率等于方差所以保证X的方差为N就行了。
2,X = wgn( L,1,N,'linear','complex');产生长为L的复高斯白噪声,均值为0,功率为N(线性)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',则函数将在加入噪声之前测定信号强度。
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;。
通信系统建模与仿真实验一、高斯白噪声的matlab 实现要求:样本点:100 1000标准差:0.2 2 10均值: 0 0.2白噪声如果噪声的功率谱密度在所有的频率上均为一常数,即)/(),(,)(0Hz W f n f P n +∞<<-∞=式中:0n 为常数,责成该噪声为白噪声,用)(t n 表示。
高斯白噪声的matlab实现1.样本点为1000、均值为0、标准差为0.2时,高斯白噪声分布为下图所示:程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (0.2) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i));endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft));plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (2) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (10) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (0.2) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (2) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:1000;for i = 1:length(f)K = (10) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (0.2) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (2) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (10) * randn(1,1) - 0;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (0.2) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (2) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)程序如下所示:% White background noisclear allf = 1:1:100;for i = 1:length(f)K = (10) * randn(1,1) - 10;P(i) = 10.^(K - 3.95*(10^-5)*f(i));A(i) = sqrt(2*P(i)); endxifft = ifft(A);realx = real(xifft);ti = [1:length(xifft)-1]/1000;realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2)。
现代通信原理作业一班313级理工部学号:133320085208036 班级:姓名:张英伟完成:利用matlab均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦产生正弦波信号、?波信号上,绘出波形。
绘出波分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,?形。
一、白噪声区别及产生方法1、定义:均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。
高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。
2、matlab仿真函数:rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式:z2=a+(b-(a))*rand(m,n)............(公式1)randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生2)。
利用公式:,1 均值为0、方差为1的正态分布白噪声,即N(0z1=a+b*randn(1,n).................(公式2)2 2)。
,b,方差为可以产生均值为ab 高斯白噪声,即N(a二、自相关函数与功率谱密度之间的关系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、高斯白噪声+2)()高斯白噪声0.1Nz1=0.1*randn(1,201); %产生方差(0,b=0.01/0.1/1plot(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实现方法一:实验目的:(1)掌握三种算法的概念、应用及特点;(2)了解谱估计在信号分析中的作用;(3)能够利用burg法对信号作谱估计,对信号的特点加以分析。
二;实验内容:(1)简单说明三种方法的原理。
(2)用三种方法编写程序,在matlab中实现。
(3)将计算结果表示成图形的形式,给出三种情况的功率谱图。
(4)比较三种方法的特性。
(5)写出自己的心得体会。
三:实验原理:1.周期图法:周期图法又称直接法。
它是从随机信号x(n)中截取N长的一段,把它视为能量有限x(n)真实功率谱的估计的抽样.认为随机序列是广义平稳且各态遍历的,可以用其一个样本x(n)中的一段来估计该随机序列的功率谱。
这当然必然带来误差。
由于对采用DFT,就默认在时域是周期的,以及在频域是周期的。
这种方法把随机序列样本x(n)看成是截得一段的周期延拓,这也就是周期图法这个名字的来历。
2.相关法(间接法):这种方法以相关函数为媒介来计算功率谱,所以又叫间接法。
这种方法的具体步骤是:第一步:从无限长随机序列x(n)中截取长度N的有限长序列列第二步:由N长序列求(2M-1)点的自相关函数序列。
(2-1)这里,m=-(M-1)…,-1,0,1…,M-1,MN,是双边序列,但是由自相关函数的偶对称性式,只要求出m=0,。
,M-1的傅里叶变换,另一半也就知道了。
第三步:由相关函数的傅式变换求功率谱。
即以上过程中经历了两次截断,一次是将x(n)截成N长,称为加数据窗,一次是将x(n)截成(2M-1)长,称为加延迟窗。
因此所得的功率谱仅是近似值,也叫谱估计,式中的代表估值。
一般取M<<N,因为只有当M较小时,序列傅式变换的点数才较小,功率谱的计算量才不至于大到难以实现,而且谱估计质量也较好。
因此,在FFT问世之前,相关法是最常用的谱估计方法。
三:Burg法:AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估计须通过levinson_dubin递推算法由Yule-Walker方程求得AR的参数:σ2,α1α2…αp。
如何在Matlab中进行信号频谱分析一、引言信号频谱分析是一种重要的信号处理技术,它可以帮助我们理解信号的频率特性和频谱分布。
在Matlab中,有多种方法可以用来进行信号频谱分析,本文将介绍其中几种常用的方法。
二、时域分析1. 快速傅里叶变换(FFT)快速傅里叶变换(FFT)是最常用的频谱分析工具之一。
在Matlab中,可以使用fft函数对信号进行FFT分析。
首先,将信号数据传入fft函数,然后对结果进行处理,得到信号的频谱图。
通过分析频谱图,我们可以了解信号的频率成分和频谱分布。
2. 窗函数窗函数可以帮助我们减小信号分析过程中的泄漏效应。
在Matlab中,可以使用hamming、hanning等函数生成窗函数。
通过将窗函数乘以信号数据,可以减小频谱中的泄漏效应,得到更准确的频谱图。
三、频域分析1. 功率谱密度(PSD)估计功率谱密度(PSD)估计是一种常见的频域分析方法,用来估计信号在不同频率上的功率分布。
在Matlab中,可以使用pwelch函数进行PSD估计。
pwelch函数需要输入信号数据和采样频率,然后输出信号的功率谱密度图。
2. 自相关函数自相关函数可以帮助我们了解信号的周期性。
在Matlab中,可以使用xcorr函数计算信号的自相关函数。
xcorr函数需要输入信号数据,然后输出信号的自相关函数图。
四、频谱图绘制与分析在进行信号频谱分析后,我们需要将分析结果进行可视化。
在Matlab中,可以使用plot函数绘制频谱图。
通过观察频谱图,我们可以进一步分析信号的频率成分和频谱特性。
可以注意以下几点:1. 频谱图的横轴表示频率,纵轴表示幅度。
通过观察频谱图的峰值位置和幅度大小,可以了解信号中频率成分的分布情况。
2. 根据信号的特点,选择合适的分析方法和参数。
不同的信号可能需要采用不同的分析方法和参数,才能得到准确的频谱分布。
五、实例分析为了更好地理解如何在Matlab中进行信号频谱分析,以下是一个简单的实例分析。
功率谱密度估计方法的MATLAB 实现功率谱密度估计方法的MATLAB实现在应用数学和物理学中,谱密度、功率谱密度和能量谱密度是一个用于信号的通用概念,它表示每赫兹的功率、每赫兹的能量这样的物理量纲。
在物理学中,信号通常是波的形式,例如电磁波、随机振动或者声波。
当波的频谱密度乘以一个适当的系数后将得到每单位频率波携带的功率,这被称为信号的功率谱密度(power spectral density, PSD)或者谱功率分布(spectral power distribution, SPD)。
功率谱密度的单位通常用每赫兹的瓦特数(W/Hz)表示,或者使用波长而不是频率,即每纳米的瓦特数(W/nm)来表示。
信号的功率谱密度当且仅当信号是广义的平稳过程的时候才存在。
如果信号不是平稳过程,那么自相关函数一定是两个变量的函数,这样就不存在功率谱密度,但是可以使用类似的技术估计时变谱密度。
信号功率谱的概念和应用是电子工程的基础,尤其是在电子通信系统中,例如无线电和微波通信、雷达以及相关系统。
因此学习如何进行功率谱密度估计十分重要,借助于Matlab工具可以实现各种谱估计方法的模拟仿真并输出结果。
下面对周期图法、修正周期图法、最大熵法、Levinson递推法和Burg法的功率谱密度估计方法进行程序设计及仿真并给出仿真结果。
以下程序运行平台:Matlab R2015a (8.5.0.197613)一、周期图法谱估计程序1、源程序Fs=100000; %采样频率100kHzN=1024; %数据长度N=1024n=0:N-1;t=n/Fs;xn=sin(2000*2*pi*t); %正弦波,f=2000HzY=awgn(xn,10); %加入信噪比为10db的高斯白噪声subplot(2,1,1);plot(n,Y)二、修正周期图法(加窗)谱估计程序1、源程序Fs=100000; %采样频率100kHzN=512; %数据长度M=32; %汉明窗宽度n=0:N-1;t=n/Fs;xn=sin(2000*2*pi*t); %正弦波,f=2000HzY=awgn(xn,10); %加入信噪比为10db的高斯白噪声subplot(2,1,1);subplot(2,1,1);plot(n,Y)title('信号')xlabel('时间');ylabel('幅度');grid on;window=hamming(M); %汉明窗[Pxx f]=pwelch(Y,window,10,256,Fs); subplot(2,1,2);plot(f,10*log10(Pxx));grid on;title(['修正周期图法谱估计N=',int2str(N),' M=',int2str(M)]);xlabel('频率(Hz)');ylabel('功率谱密度'); 2、仿真结果三、最大熵法谱估计程序1、源程序fs=1; %设采样频率N=128; %数据长度改变数据长度会导致分辨率的变化;f1=0.2*fs; %第一个sin信号的频率,f1/fs=0.2f2=0.3*fs; %第二个sin信号的频率,f2/fs=0.2或者0.3P=10; %滤波器阶数n=1:N;s=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs); %s为原始信号x=awgn(s,10); %x为观测信号,即对原始信号加入白噪声,信噪比10dBfigure(1); %画出原始信号和观测信号subplot(2,1,1);plot(s,'b'),xlabel('时间'),ylabel('幅度'),title('原始信号s');grid;subplot(2,1,2);plot(x,'r'),xlabel('时间'),ylabel('幅度'),title('观测信号x');[Pxx1,f]=pmem(x,P,N,fs); %最大熵谱估计figure(2);plot(f,10*log10(Pxx1));xlabel('频率(Hz) ');ylabel('功率谱(dB) ');title(['最大熵法谱估计模型阶数P=',int2str(P),' 数据长度N=',int2str(N)]);2、仿真结果四、L evinson递推法谱估计程序1、源程序fs=1; %设采样频率为1N=1000; %数据长度改变数据长度会导致分辨率的变化;f1=0.2*fs; %第一个sin信号的频率,f1/fs=0.2 f2=0.3*fs; %第二个sin信号的频率,f1/fs=0.2或者0.3M=16; %滤波器阶数的最大取值,超过则认为代价太大而放弃L=2*N; %有限长序列进行离散傅里叶变换前,序列补零的长度n=1:N;s=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%s为原始信号x=awgn(s,10);%x为观测信号,即对原始信号加入白噪声,信噪比10dBfigure(1); %画出原始信号和观测信号subplot(2,1,1);plot(s,'b'),axis([0 100 -3 3]),xlabel('时间'),ylabel('幅度'),title('原始信号s');grid;subplot(2,1,2);plot(x,'r'),axis([0 100 -3 3]),xlabel('时间'),ylabel('幅度'),title('观测信号x');grid;%计算自相关函数rxx = xcorr(x,x,M,'biased');%计算有偏估计自相关函数,长度为-M到M,%共2M+1r0 = rxx(M+1); %r0为零点上的自相关函数,相对于-M,第M+1个点为零点R = rxx(M+2:2*M+1);% R为从1到第M个点的自相关函数矩阵%确定矩阵大小a = zeros(M,M);FPE = zeros(1,M);%FPE:最终预测误差,用来估计模型的阶次var = zeros(1,M);%求初值a(1,1) = -R(1)/r0;%一阶模型参数var(1) = (1-(abs(a(1,1)))^2)*r0;%一阶方差FPE(1) = var(1)*(M+2)/(M);%递推for p=2:Msum=0;for k=1:p-1%求a(p,p)sum=sum+a(p-1,k)*R(p-k);enda(p,p)=-(R(p)+sum)/var(p-1);for k=1:p-1 %求a(p,k)a(p,k)=a(p-1,k)+a(p,p)*a(p-1,p-k);endvar(p)=(1-a(p,p)^2)*var(p-1); %求方差FPE(p)=var(p)*(M+1+p)/(M+1-p);%求最终预测误差end%确定AR模型的最佳阶数min=FPE(1); %求出FPE最小时对应的阶数p = 1;for k=2:Mif FPE(k)<minmin=FPE(k);p=k;endend%功率谱估计W=0.01:0.01:pi; %功率谱以2*pi为周期,又信号为实信号,只需输出0到PI即可;he=ones(1,length(W)); %length()求向量的长度for k=1:phe=he+(a(p,k).*exp(-j*k*W));endPxx=var(p)./((abs(he)).^2); %功率谱函数;F=W*fs/(pi*2); %将角频率坐标换算成HZ坐标,便于观察;重要!figure;plot(F,abs(Pxx))xlabel('频率/Hz'),ylabel('功率谱P'),title([' AR模型的最佳阶数p=' int2str(p)] );grid;2、仿真结果五、B urg法谱估计程序1、源程序fs=1;%设采样频率为1N=900;%数据长度改变数据长度会导致分辨率的变化;f1=0.2*fs;%第一个sin信号的频率,f1/fs=0.2f2=0.3*fs;%第二个sin信号的频率,f1/fs=0.2或者0.3M=512;%滤波器阶数的最大取值,超过则认为代价太大而放弃n=1:N;s = sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);%s为原始信号x = awgn(s,10);%x为观测信号,即对原始信号加入白噪声,信噪比10dB for i=1:Nef(1,i)=x(i);eb(1,i)=x(i);endsum=0;for i=1:Nsum=sum+x(i)*x(i);endr(1)=sum/N;% Burg递推for p=2:M% 求解第p个反射系数sum1=0;for n=p:Nsum1=sum1+ef(p-1,n)*eb(p-1,n-1);endsum1=-2*sum1;sum2=0;for n=p:Nsum2=sum2+ef(p-1,n)*ef(p-1,n)+eb(p-1,n-1)*eb(p-1,n-1); endk(p-1)=sum1/sum2;% 求解预测误差平均功率r(p)=(1-k(p-1)*k(p-1))*r(p-1);% 求解p阶白噪声方差q(p)=r(p);% 系数aif p>2for i=1:p-2a(p-1,i)=a(p-2,i)+k(p-1)*a(p-2,p-1-i); endenda(p-1,p-1)=k(p-1);% 求解前向预测误差for n=p+1:Nef(p,n)=ef(p-1,n)+k(p-1)*eb(p-1,n-1);end%求解后向预测误差for n=p:N-1eb(p,n)=eb(p-1,n-1)+k(p-1)*ef(p-1,n);endend% 计算功率谱for j=1:Nsum3=0;sum4=0;for i=1:p-1sum3=sum3+a(p-1,i)*cos(2*pi*i*j/N);endsum3=1+sum3;for i=1:p-1sum4=sum4+a(p-1,i)*sin(2*pi*i*j/N);endpxx=sqrt(sum3*sum3+sum4*sum4);pxx=q(M)/pxx;pxx=10*log10(pxx);pp(j)=pxx;end%画出功率谱ff=1:N;ff=ff/N;figure;plot(ff,pp),axis([0 0.5 -20 10]),xlabel('频率'),ylabel('幅度(dB)'),title('功率谱P');grid;2、仿真结果。
均匀分布的白噪声信号u(n),画出其波形,并检验其分布情况%-----------------------------------------------------------------% To test rand.m and to generate the white noise signal u(n)% with uniform distribution% 产生均匀分布的随机白噪信号,并观察数据分布的直方图%-----------------------------------------------------------------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,50);grid on;ylabel('histogram of u(n)')思考:如何产生一均匀分布、均值为0,功率为0.01的白噪声信号u(n)提示:u (n )~[a ,b]上均匀分布,E (u )= (a+b)/2, 12/)()(2a b u -=σ% to generate the white noise signal u(n) with uniform distribution% and power p;% 产生均匀分布的白噪信号,使均值为0,功率为p%-----------------------------------------------------------------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)/Nsubplot(211)plot(u1(1:200));grid on;ylabel('u(n)')xlabel('n')example2: 产生零均值功率0.1且服从高斯分布的白噪声%-----------------------------------------------------------------% to test randn.m and to generate the white noise signal u(n)% with Gaussian distribution and power p% 产生高斯分布的白噪信号,使功率为p,并观察数据分布的直方图%-----------------------------------------------------------------clear;p=0.1;N=500000;u=randn(1,N);a=sqrt(p)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('histogram of u(n)');example3: sinc信号%-----------------------------------------------------------------% to generate the sinc function.% 产生一sinc 函数;%-----------------------------------------------------------------clear;n=200;stept=4*pi/n;t=-2*pi:stept:2*pi;y=sinc(t);plot(t,y,t,zeros(size(t)));ylabel('sinc(t)');xlabel('t=-2*pi~2*pi');grid on;example4: chirp信号%-----------------------------------------------------------------% to test chirp.m and to generate the chirp signal x(t)% 产生一chirp 信号;% chirp(T0,F0,T1,F1):% T0: 信号的开始时间;F0:信号在T0时的瞬时频率,单位为Hz;% T1: 信号的结束时间;F1:信号在T1时的瞬时频率,单位为Hz;%-----------------------------------------------------------------clear;t=0:0.001:1;x=chirp(t,0,1,125);plot(t,x);ylabel('x(t)')xlabel('t')%-------------------------------------------------------------------------% to test specgram.m :估计信号谱图(SFFT)%specgram(x,Nfft,Fs,window,Noverlap)%x-信号;Fs抽样频率(2),Nfft做FFT长度(256), window窗函数(Hanning)%Noverlap:估计功率谱时每一段叠合长度(0)%-------------------------------------------------------------------------clear;t=0:0.001:1.024-.001;N=1024;% 得到两个Chirp 信号,并相加;y1=chirp(t,0,1,350);y2=chirp(t,350,1,0);y=y1+y2;subplot(211);plot(t,y1);ylabel(' Chirp signal y1')% 求两个Chirp 信号和的短时傅里叶变换;[S,F,T]=specgram(y,127,1,hanning(127),126);subplot(212);surf(T/1000,F,abs(S).^2)view(-80,30);shading flat;colormap(cool);xlabel('Time')ylabel('Frequency')zlabel('spectrogram')还有diric信号(周期SINC)gauspuls(高斯信号)pulstran(脉冲串信号)tripuls三角波脉冲信号example5:线性卷积%-----------------------------------------------------------------% to test conv.m% 计算两个序列的线性卷积;%-----------------------------------------------------------------clear;N=5;M=6;L=N+M-1;x=[1,2,3,4,5];h=[6,2,3,6,4,2];y=conv(x,h);nx=0:N-1;nh=0:M-1;ny=0:L-1;subplot(231);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on;subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on;subplot(233);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on;思考:设信号x(n)由正弦信号加均值为0白噪声所组成,正弦信号幅度为1,白噪声方差为1 SNR = 10LG(PS/PU) = -3dB,试分析信号;%-----------------------------------------------------------------% to test xcorr.m% 求两个序列的互相关函数,或一个序列的自相关函数;%-----------------------------------------------------------------clear;N=500;p1=1;p2=0.1;f=1/8;Mlag=50;u=randn(1,N);n=[0:N-1];s=sin(2*pi*f*n);% 混有高斯白噪的正弦信号的自相关u1=u*sqrt(p1);x1=u1(1:N)+s;rx1=xcorr(x1,Mlag,'biased');subplot(221);plot(x1(1:Mlag));xlabel('n');ylabel('x1(n)');grid on;subplot(223);plot((-Mlag:Mlag),rx1);grid on;xlabel('m');ylabel('rx1(m)');% 高斯白噪功率由原来的p1减少为p2,再观察混合信号的自相关u2=u*sqrt(p2);x2=u2(1:N)+s;rx2=xcorr(x2,Mlag,'biased');subplot(222);plot(x2(1:Mlag));xlabel('n');ylabel('x2(n)');grid on;subplot(224);plot((-Mlag:Mlag),rx2);grid on;xlabel('m');ylabel('rx2(m)');用乘同余法产生(见光盘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所示。
一、作业内容:对两个正弦信号做叠加后,计算离散随机过程信号的功率谱函数,由功率谱,估计信号的频率。
在matlab上实现之,并观察波形进行验证。
二、实现步骤:(一)、构造环境:1、两个正弦波分别为A*sin(2*pi*f1*n+a)、B*sin(2*pi*f2*n+a),规定取样点范围n=1~128;构造函数x1=A*sin(2*pi*f1*n+a)+B*sin(2*pi*f2*n+a);2、在x1基础上加入加性高斯白噪声,取定信噪比为+3,来定义x2的函数为x2=x1+W(噪声);3、对离散信号x2做非参数化谱估计,以傅里叶变换为基础,先对x2做傅里叶变换,求出其频谱;4、求x2的功率谱p(w),用周期图法;用间接法;分别估计做出功率谱,并输出其功率谱波形。
5、更改采样点数,验证功率谱波形的主瓣函数图形什么情况下有重叠程度、什么情况下能够很好的区分开来。
(二)、在matlab中编写相应程序:clear all; %清除工作空间所有之前的变量close all; %关闭之前的所有的figureclc; %清除命令行之前所有的文字n=1:1:128; %设定采样点n=1-128f1=0.2; %设定f1频率的值0.2f2=0.213; %设定f2频率的值0.213A=1; %取定第一个正弦函数的振幅B=1; %取定第一个正弦函数的振幅a=0; %设定相位为0x1=A*sin(2*pi*f1*n+a)+B*sin(2*pi*f2*n+a); %定义x1函数,不添加高斯白噪声x2=awgn(x1,3); %在x1基础上添加加性高斯白噪声,信噪比为3,定义x2函数temp=0; %定义临时值,并规定初始值为0 temp=fft(x2,128); %对x2做快速傅里叶变换pw1=abs(temp).^2/128; %对temp做经典功率估计k=0:length(temp)-1;w=2*pi*k/128;figure(1); %输出x1函数图像plot(w/pi/2,pw1) %输出功率谱函数pw1图像xlabel('信号频率/Hz');ylabel('PSD/傅立叶功率谱估计');title('正弦信号x1添加高斯白噪声后的,周期图法功率频谱分析');grid;%-------------------------------------------------------------------------pw2=temp.*conj(temp)/128; %对temp做向量的共轭乘积k=0:length(temp)-1;w=2*pi*k/128;figure(2);plot(w/pi/2,pw2); %输出功率谱函数pw2图像xlabel('信号频率/Hz');ylabel('PSD/傅立叶功率谱估计');title('正弦信号x1自相关法功率谱估计');grid;三、在matlab中,输出的功率谱图像。
使用Matlab进行随机信号生成的方法随机信号在现代通信、雷达、生物医学工程等领域中起着重要作用。
为了研究随机信号及其特性,我们常常需要生成符合特定分布的随机信号。
Matlab作为一种功能强大的科学计算软件,提供了丰富的函数和工具,方便我们进行随机信号的生成与分析。
本文将介绍使用Matlab进行随机信号生成的一些常见方法。
一、高斯白噪声信号生成高斯白噪声是一种统计特性良好的随机信号,其频域内的功率谱密度是常数。
在Matlab中,可以使用randn函数生成服从标准正态分布的随机数,进而得到高斯白噪声信号。
以下是一个简单的示例:```matlabt = 0:0.1:10; % 时间变量n = length(t); % 信号长度noise = randn(1,n); % 生成高斯白噪声plot(t,noise);```其中,t为时间变量,n为信号长度,randn函数生成服从标准正态分布的随机数,最后使用plot函数进行绘制。
通过修改时间变量和信号长度,可以生成不同长度和采样频率的高斯白噪声信号。
二、均匀白噪声信号生成均匀白噪声是一种功率谱密度为常数的随机信号,与高斯白噪声相比,其统计特性略有不同。
在Matlab中,可以使用rand函数生成服从均匀分布的随机数,进而得到均匀白噪声信号。
以下是一个简单的示例:```matlabt = 0:0.1:10; % 时间变量n = length(t); % 信号长度noise = rand(1,n); % 生成均匀白噪声plot(t,noise);```同样地,通过修改时间变量和信号长度,可以生成不同长度和采样频率的均匀白噪声信号。
三、正弦信号加噪声在实际应用中,我们常常需要有噪声干扰的信号。
假设我们要生成带有高斯白噪声的正弦信号,可以使用以下方法:```matlabt = 0:0.1:10; % 时间变量n = length(t); % 信号长度signal = sin(t); % 生成正弦信号noise = 0.1*randn(1,n); % 生成高斯白噪声noisy_signal = signal + noise; % 信号加噪声plot(t,noisy_signal);```在上述示例中,我们首先生成了一个正弦信号,然后使用randn函数生成与信号长度相同的高斯白噪声,最后将信号和噪声相加得到带有噪声干扰的信号。
现代通信原理作业一利用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自相关功率谱是一种用于分析信号的工具,通过计算信号的自相关函数,可以获得信号的功率谱密度函数。
自相关函数是一个描述信号和自身延迟之间关系的函数,用于表示信号的周期性和重复性。
在信号处理中,自相关函数可以用于检测周期性信号和噪声成分的频率分布,以及确定信号的相关性和相位差。
Matlab提供了多种自相关功率谱计算方法,包括FFT、Welch、Bartlett、Blackman-Tukey等。
这些方法可以根据信号的特点和要求,选择最适合的功率谱计算方式,从而获得更准确和可靠的信号分析结果。
- 1 -。
现代通信原理作业一
姓名:张英伟学号: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); %采样频率100Hz
y1=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);
如有侵权请联系告知删除,感谢你们的配合!。