随机信号分析大作业:利用matlab程序设计设计一个正旋信号加高斯白噪声的复合信号
- 格式:docx
- 大小:77.66 KB
- 文档页数:3
matlab添加高斯噪声的原理在MATLAB中,可以通过以下步骤向一个信号添加高斯噪声:
1. 生成一个具有期望值为0和方差为σ^2的高斯分布随机变量。
这可以使用`randn`函数实现,该函数生成一个符合标准正态分布(均值为0,方差为1)的随机数。
2. 为了使高斯噪声的方差达到所需值σ^2,需要缩放该随机变量。
可以通过乘以标准差(σ)来实现,即使用`randn`函数生成的随机数乘以方差的平方根。
3. 将生成的高斯噪声添加到信号上。
可以通过将信号与高斯噪声相加来实现。
以下是一个简单的MATLAB代码示例,演示如何向一个信号添加高斯噪声:
```matlab
% 假设原始信号为x
x = ... % 原始信号值
% 生成高斯噪声
mean = 0; % 期望值
variance = σ^2; % 方差
noise = sqrt(variance) * randn(size(x)) + mean; % 添加高斯噪声
% 添加高斯噪声到信号
noisy_signal = x + noise; % 添加高斯噪声到信号
```
这样,变量`noisy_signal`将包含原始信号与高斯噪声相加后的结果。
现代通信原理作业一姓名:张英伟学号: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如何⽣成实⾼斯⽩噪声、复⾼斯⽩噪声
什么是⾼斯⽩噪声
如果⼀个噪声,它的幅值服从,⽽它的⼜是均匀分布的,则称它为⾼斯⽩噪声.
以下参考⽹址:
1. 实⾼斯随机变量
2. 实⾼斯随机向量
3. 复⾼斯随机向量
3. 复⾼斯随机变量
以下参考⽹址:
参考资料:复⾼斯随机变量
Reyleigh 分布特性维基百科:
chi-squared分布特性维基百科:
gamma分布特性维基百科:
MATLAB如何根据给定的SNR、Es/N0或Eb/N0,⽣成实⾼斯⽩噪声参考资料:20210326PPT
1.SNR、Es/N0和Eb/N0之间的数学关系
2. Simulaitons
给定Es/N0=x——>N0=Es/x——>sigma^2=N0/2=Es/2x
给定Eb/N0=x——>N0=Es/kx——>sigma^2=N0/2=Es/2kx
3. Simulaitons of coded systems
给定Es/N0=x——>N0=Es/x——>sigma^2=N0/2=Es/2x
给定Eb/N0=x——>N0=Es/kRx——>sigma^2=N0/2=Es/2kRx
注:
(1) 这⾥的R指的是码率;
(2) 若 sigma^2=N0/2,这⾥的N0指的是单边功率谱密度,这⾥的N0/2指的是双边功率谱密度;
4. MATLAB实现代码
n=normrnd(0,sqrt(sigma^2),[1,N])
或
n=sqrt(sigma^2).*randn(1,N)
MATLAB如何⽣成复⾼斯⽩噪声
参考⽹址1:。
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以瓦特为单位。
随机信号大作业随机信号大作业第一章上机题:设有随机初相信号X(t)=5cos(t+),其中相位是在区间(0,2)上均匀分布的随机变量。
(1)试用Matlab编程产生其三个样本函数。
(2)产生t=0时的10000个样本,并画出直方图估计P(x)画出图形。
解:(1)由Matlab产生的三个样本函数如下图所示:程序源代码:clcclearm=unifrnd(0,2*pi,1,10);fork=1:3t=1:0.1:10;X=5*cos(t+m(k));plo t(t,X);holdonendxlabel('t');ylabel('X(t)');gridon;axistight;(2)产生t=0时的10000个样本,并画出直方图估计P(x)的概率密度并画出图形。
源程序代码:clear;clc;=2*pi*rand(10000,1);x=5*cos();figure(2),hist(x,20);holdon;第二章上机题:利用Matlab程序设计一正弦型信号加高斯白噪声的复合信号。
(1)分析复合信号的功率谱密度,幅度分布的特性;(2)分析复合信号通过RC积分电路后的功率谱密度和相应的幅度分布特性;(3)分析复合信号通过理想低通系统后的功率谱密度和相应的幅度分布特性。
解:设正弦信号的频率为10HZ,抽样频率为100HZx=sin(2*pi*fc*t)正弦曲线图:程序块代码:clearall;fs=100;fc=10;n=201;t=0:1/fs:2;x=sin(2*pi*fc*t);y=awgn(x,10);m=50;i=-0.49:1/fs:0.49;forj=1:mR(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j);Ry(49+j)=R(j);Ry(51-j)=R(j);endsubplot(5,2,1);plot(t,x,'r');title('正弦信号曲线');ylabel('x');xlabel('t/20pi');grid;(1)正弦信号加上高斯白噪声产生复合信号y:y=awgn(x,10)对复合信号进行傅里叶变换得到傅里叶变换:Y(jw)=fft(y)复合信号的功率谱密度函数为:G(w)=Y(jw).*conj(Y(jw)/length(Y(jw)))复合信号的曲线图,频谱图和功率谱图:程序块代码:plot(t,y,'r');title('复合信号曲线');ylabel('y');xlabel('t/20pi');grid;程序块代码:FY=fft(y);FY1=fftshift(FY);f=(0:200)*fs/n-fs/2;plot(f,abs(FY1),'r');title('复合信号频谱图');ylabel('F(jw)');xlabel('w');grid;程序块代码:P=FY1.*conj(FY1)/length(FY1);plot(f,P,'r');title('复合信号功率谱密度图');ylabel('G(w)');xlabel('w');grid;(2)正弦曲线的复合信号通过RC积分电路后得到信号为:通过卷积计算可以得到y2即:y2=conv2(y,b*pi^-b*t)y2的幅度分布特性可以通过傅里叶变换得到Y2(jw)=fft(y2)y2的功率谱密度G2(w)=Y2(jw).*conj(Y2(jw)/length(Y2(jw)))复合信号通过RC积分电路后的曲线频谱图和功率谱图:程序块代码:b=10;y2=conv2(y,b*pi^-b*t);Fy2=fftshift(fft(y2));f=(0:400)*fs/n-fs/2;plot(f,abs(Fy2),'r');title('复合信号通过RC系统后频谱图');ylabel('Fy2(jw)');xlabel('w');grid;程序代码:P2=Fy2.*conj(Fy2)/length(Fy2);plot(f,P2,'r');title('复合信号通过RC系统后功率密度图');ylabel('Gy2(w)');xlabel('w');grid;(3)复合信号y通过理想滤波器电路后得到信号y3通过卷积计算可以得到y3即:y3=conv2(y,sin(10*t)/(pi*t))y3的幅度分布特性可以通过傅里叶变换得到Y3(jw)=fft(y3),y3的功率谱密度G3(w)=Y3(jw).*conj(Y3(jw)/length(Y3(jw)))复合信号通过理想滤波器后的频谱图和功率密度图:程序块代码:y3=conv2(y,sin(10*t)/(pi*t));Fy3=fftshift(fft(y3));f3=(0:200)*fs/n-fs/2;plot(f3,abs(Fy3),'r');title('复合信号通过理想滤波器频谱图');ylabel('Fy3(jw)');xlabel('w');grid;程序块代码:P3=Fy3.*conj(Fy3)/length(Fy3);plot(f3,P3,'r');title('理想信号通过理想滤波器功率密度图');ylabel('Gy3(w)');xlabel('w');grid;。
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)。
实验一基于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函数,画出其波形。
姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033MATLAB 环境下的正弦信号及高斯白噪声仿真程序说明一、信号的产生及时域观察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^2subplot(3,2,1);plot(x,y1,'r');title('y=sin(20pi*x)');ylabel('y');xlabel('x/20pi');grid;y2=a+b*rand(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;for j=1:mR1(j)=sum(y2(1:n-j-1).*y2(j:199),2)/(n-j);%无偏自相关函数的估计R1x(49+j)=R1(j);R1x(51-j)=R1(j);endsubplot(3,2,5);plot(i,R1x,'r');%plot(leg*1/fs,R1x,'r');title('白噪声自相关函数图');ylabel('R1x');xlabel('x');grid;Fy2=fft(R1x); %傅里叶变换得出白噪声功率谱函数Fy21=fftshift(Fy2); %功率谱校正f=(0:98)*fs/99-fs/2;subplot(3,2,6);plot(f,abs(Fy21),'r');axis([-50 50 -0.5 6]);title('白噪声功率谱函数图');ylabel('F(R1x)');xlabel('w');grid;%求正弦波加均匀白噪声的自相关函数m=50;i=-0.49:1/fs:0.49;for j=1:mR2(j)=sum(y(1:n-j-1).*y(j:199),2)/(n-j);%无偏自相关函数的估计R2x(49+j)=R2(j);R2x(51-j)=R2(j);endsubplot(3,2,5);plot(i,R2x,'r');%plot(leg*1/fs,R2x,'r');title('正弦波加白噪声自相关函数图');ylabel('R2x');xlabel('x');grid;Fy2=fft(R2x); %傅里叶变换得出正弦波加白噪声功率谱函数Fy21=fftshift(Fy2); %功率谱校正f=(0:98)*fs/99-fs/2;subplot(3,2,6);plot(f,abs(Fy21),'r');axis([-50 50 -0.5 6]);title('白噪声功率谱函数图'); ylabel('F(R2x)');xlabel('w');grid;clc;clear all;close all;fs=100;%采样频率100hzN=1000;%采样点数t=(0:1:N-1)/fs;f=10;%正弦信号频率10hzs0=sin(2*pi*f*t);%正弦信号am=max(abs(s0));% % -------加噪方案1(由加噪后信噪比确定高斯白噪声)-----snr=5; %设定加入白噪声后的信噪比为5db(均值为0)Pv=(am/(10^(snr/20)))^2;%噪声方差% % --------------------------------------------------% % -------加噪方案2(由噪声方差确定高斯白噪声)--------% % Pv=3; %设定白噪声方差(均值为0)% % snr=20*log10(am/(sqrt(Pv))); %求信噪比% % % % ---------------------------------------------------% % % ---------加噪声-------------v=rand(1,N);v=v*sqrt(Pv);%白噪声s=s0+v;%信号加噪声% % ----------信号画图-------------figure(1)subplot(3,1,1),plot(s0);title('原始信号')subplot(3,1,2),plot(s);title(['加噪信号信噪比= ',num2str(snr),' dB. 噪声方差= ',num2str(Pv)])s1=detrend(s);%去趋势ffs=abs(fft(s1));ffs=ffs*2/N;%频谱%%ffs=ffs.^2;%功率谱subplot(3,1,3),plot(ffs(1:N/2));title('加噪信号FFT')。
高斯白噪声matlab -回复Matlab是一个强大的数学工具,广泛用于数据分析、信号处理和模拟等领域。
在这篇文章中,我们将详细介绍高斯白噪声,并使用Matlab来产生和分析这种噪声信号。
1.什么是噪声?噪声是指在信号中包含的随机干扰,它通常以不可避免且不受控制的形式存在。
噪声可以干扰信号的传输和处理,降低系统的性能。
不同类型的噪声具有不同的特点,因此需要了解各种噪声并采取相应的措施来应对噪声带来的问题。
2.什么是高斯白噪声?高斯白噪声是一种常见的噪声类型,其中包含了具有特定概率密度函数(PDF)的随机信号。
高斯白噪声的频谱是平坦的,即在所有频率上具有相等的功率密度。
这意味着在频域上,高斯白噪声在整个频域上具有相同的能量分布。
3.高斯白噪声的特点高斯白噪声具有以下特点:a) 平均值为零:高斯白噪声的平均值为零,即在长期统计意义下,噪声的均值为零。
b) 均方差是常数:高斯白噪声在所有时间点上的方差是一个常数,这表明在任意时间段上噪声的波动是恒定的。
c) 相邻样本间无关: 高斯白噪声的相邻样本之间是无关的,即当前样本的取值与前一个样本之间没有任何关系。
4.高斯白噪声的生成在Matlab中,可以使用randn函数生成高斯白噪声。
randn函数会生成服从均值为0、方差为1的标准正态分布的随机数。
下面是一个示例代码,用于生成10秒钟的高斯白噪声信号,并绘制其幅值随时间的变化:matlabFs = 1000; %采样频率为1000HzT = 10; %总时间长度为10秒t = 0:1/Fs:T-1/Fs; %时间向量x = randn(size(t)); %生成高斯白噪声信号plot(t,x);xlabel('Time (s)');ylabel('Amplitude');title('Gaussian White Noise');在这个代码中,我们设定了采样频率为1000Hz,总时间长度为10秒。
班级:021012班学号:0210111X姓名:李X
随机信号大作业
利用matlab程序设计设计一个正旋信号加高斯白噪声的复合信号。
源代码:
正旋sinx信号
x=(0:0.01:2);
y1=sin(10*pi*x);
plot(x,y1,'r');
title('y=sin(10*pi*x)');
ylabel('y');
xlabel('x/10pi');
grid;正旋信号如下图:
高斯白噪声,当白噪声的方差为10的-4次方时
y2=0.01*randn(1,201);
plot(x,y2,'r');
title('高斯白噪声');
ylabel('y');
xlabel('x/10pi');
grid;
1:加入噪声之后的信号。
因为白噪声方差过小,变化过快,叠加信号大致显示
出的是正旋波形
y=y1+y2;
plot(x,y,'r');
title('叠加了高斯白噪声的sinx');
ylabel('y');
xlabel('x/10pi');
grid;
2:当增加白噪声的方差到0.01时,观察复合信号,可以发现,复合信号波形没有第一次平滑,较第一个复合波形而言更显无序性
3:方差增加到1时:
取方差为0.01时的白噪声作函数频谱图和白噪声自相关函数图:FY=fft(y);
FY1=fftshift(FY);
f=(0:200)*100/201-50;
subplot(1,2,1);
plot(f,abs(FY1),'r');
ylabel('F(jw)');
xlabel('w');
grid;
i=-0.49:1/100:0.49;
for j=1:50
R(j)=sum(y2(1:201-j-1).*y2(j:199),2)/(201-j);
Rx(49+j)=R(j);
Rx(51-j)=R(j);
end
subplot(1,2,2);
plot(i,Rx,'r');
ylabel('Rx');
xlabel('x');
grid;
左图为函数频谱图;右图为白噪声自相关函数图。