随机信号分析大作业:利用matlab程序设计设计一个正旋信号加高斯白噪声的复合信号

合集下载

matlab添加高斯噪声的原理

matlab添加高斯噪声的原理

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`将包含原始信号与高斯噪声相加后的结果。

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数(word文档良心出品)

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数(word文档良心出品)

现代通信原理作业一姓名:张英伟学号: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如何生成实高斯白噪声、复高斯白噪声

(三⼗三)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中给信号加高斯白噪声的方法

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以瓦特为单位。

随机信号大作业

随机信号大作业

随机信号大作业随机信号大作业第一章上机题:设有随机初相信号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;。

(完整word版)MATLAB环境下的正弦信号及高斯白噪声仿真程序说明

(完整word版)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;。

(word完整版)高斯白噪声的matlab实现

(word完整版)高斯白噪声的matlab实现

通信系统建模与仿真实验一、高斯白噪声的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信号产生实验

实验一-基于MATLAB的白噪声信号u(n)、sinc函数、chirp信号产生实验

实验一基于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函数,画出其波形。

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

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

姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号: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 -回复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秒。

随机信号分析 MATLAB实验2

随机信号分析 MATLAB实验2

随机信号分析与处理实验报告2实验二 随机信号处理的工程编程实现一、实验目的1、熟悉各种随机信号分析及处理方法。

2、掌握运用MATLAB 中的统计工具包和信号处理工具包绘制概率密度的方法 二、实验原理1.正态分布:其概率密度为221()()exp ,0,122x m f x m σσπσ⎡⎤--==⎢⎥⎣⎦Matlab 中的功能函数为: x=normpdf(x,mu,sigma)计算正太概率密度在x 处的值,x 为标量或矢量,对于标准正态分布而言,mu=0,sigma=1,这时 x=normpdf(x,mu,sigma),可以简写为 x=normpdf(x);正态分布概率分布函数Matlab 中的功能函数为; x=normcdf(x,mu,sigma)计算正太概率密度在x 处的值,x 为标量或矢量,对于标准正态分布而言,mu=0,sigma=1,这时 x=normcdf(x,mu,sigma),可以简写为 x=normcdf(x). 2.均匀分布0-1分布,其概率密度为101()0x f x <<⎧=⎨⎩其他其概率密度y=unifpdf(x,a,b)计算在[a,b]区间上均匀分布概率密度函数在x 处的值,x,a ,b 为矢量或者标量;均匀分布概率分布函数y=unifcdf(x,a,b)计算在[a,b]区间上均匀分布概率分布函数在x 处的值,x,a ,b 为矢量或者标量。

3.指数分布:其概率密度为1()e x p (),2x f x μμμ=-= 其概率密度y=exppdf(x,mu)计算参数为mu 的指数分布概率密度函数在x 处的值,x,xu 为矢量或者标量;指数分布概率分布函数y=expcdf(x,mu)计算参数为mu 的指数分布概率密度函数在x 处的值,x,xu 为矢量或者标量.4.瑞利分布概率密度y=raylpdf(x,a)计算参数为a(δ)的瑞利分布概率密度函数在x 处的值,x,a 为矢量或者标量;瑞利分布概率f 分布函数y=raylcdf(x,a)计算参数为a(δ)的瑞利分布概率分布函数在x 处的值,x,a 为矢量或者标量。

matlab中给信号加噪声的方法

matlab中给信号加噪声的方法

在信号处理中经常需要把噪声叠加到信号上去,在叠加噪声时往往需要满足一定的信噪比,这样产生二个问题,其一噪声是否按指定的信噪比叠加,其二怎么样检验带噪信号中信噪比满足指定的信噪比。

在MATLAB中可以用randn产生均值为0方差为1的正态分布白噪声,但在任意长度下x=randn(1,N),x不一定是均值为0方差为1(有些小小的偏差),这样对后续的计算会产生影响。

在这里提供3个函数用于按一定的信噪比把噪声叠加到信号上去,同时可检验带噪信号中信噪比。

1. 把白噪声叠加到信号上去:function [Y,NOISE] = noisegen(X,SNR)% noisegen add white Gaussian noise to a signal.% [Y, NOISE] = NOISEGEN(X,SNR) adds white Gaussian NOISE to X. The SNR is in dB. NOISE=randn(size(X));NOISE=NOISE-mean(NOISE);signal_power = 1/length(X)*sum(X.*X);noise_variance = signal_power / ( 10^(SNR/10) );NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;Y=X+NOISE;其中X是纯信号,SNR是要求的信噪比,Y是带噪信号,NOISE是叠加在信号上的噪声。

2. 把指定的噪声叠加到信号上去有标准噪声库NOISEX-92,其中带有白噪声、办公室噪声、工厂噪声、汽车噪声、坦克噪声等等,在信号处理中往往需要把库中的噪声叠加到信号中去,而噪声的采样频率与纯信号的采样频率往往不一致,需要采样频率的校准。

function [Y,NOISE] = add_noisem(X,filepath_name,SNR,fs)% add_noisem add determinated noise to a signal.% X is signal, and its sample frequency is fs;% filepath_name is NOISE's path and name, and the SNR is signal to noise ratio in dB. [wavin,fs1,nbits]=wavread(filepath_name);if fs1~=fswavin1=resample(wavin,fs,fs1);endnx=size(X,1);NOISE=wavin1(1:nx);NOISE=NOISE-mean(NOISE);signal_power = 1/nx*sum(X.*X);noise_variance = signal_power / ( 10^(SNR/10) );NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;Y=X+NOISE;其中X是纯信号,filepath_name是指定噪声文件(.wav)的路径和文件名,SNR是要求的信噪比,fs是信号X的采样频率,Y是带噪信号,NOISE是叠加在信号上的噪声。

白噪声(matlab)

白噪声(matlab)

均匀分布的白噪声信号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所示。

信号分析处理大作业报告+程序

信号分析处理大作业报告+程序

1.设计方案如下①利用MATLAB中的wavread命令来读入语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

对于波形图与频谱图(包括滤波前后的对比图)都可以用MATLAB画出。

②由于音频信号是连续且长度未知,故可以采用N阶低通滤波器。

滤掉低频部分的噪音,剩下的就是原信号了。

③将去噪后的信号写成wav格式的文件可以使用wavwrite函数。

2. 步骤①录制一段歌曲,采用Matlab工具对此音频信号用FFT作谱分析。

②录制一段音频信号并命名为信xinhao1.wav存放在文件夹中。

③使用wavread函数读出此信号。

④用函数FFT进行傅里叶变换,得到波形图,幅值图,频谱图。

⑤加入一个随机高斯噪声,将原始信号与噪声叠加产生加噪之后的声音文件,得到xinhao2.wav文件。

⑥通过N阶低通滤波器对噪声语音滤波,在Matlab中,FIR 滤波器利用函数filter对信号进行滤波,得到xinhao3.wav文件。

首先通过MATLAB工具编程获取音频文件的原始信号波形,原信号幅值和原始信号频谱图如下:然后通过加一个高斯噪声对其分析可得加噪声后信号波形,加噪声后幅值和加噪声后信号频谱图如下:最后再通过N阶低通滤波器对噪声信号滤波,在Matlab中,FIR 滤波器利用函数filter对信号进行滤波,从而得到滤波后信号波形,滤波后幅值和滤波后信号频谱图:程序[x]=wavread('C:\Users\h\Desktop\xinhao1.wav');X=fft(x,2048);figure(1)fs=abs(X);plot(fs);xlabel('HZ');ylabel('|Y(d)|');subplot(2,2,1);plot(x);xlabel('HZ');ylabel('|Y(d)|');title('原始信号波形');subplot(2,2,2);plot(X);xlabel('HZ');ylabel('|Y(d)|');title('原始信号幅值');subplot(2,2,3);plot(fs);xlabel('HZ');ylabel('|Y(d)|');title('原始信号频谱');figure(2)N=length(x); %计算原始语音信号的长度y1=0.05*randn(N,1); %加上一个高斯随机噪声x1=x+y1;x2=fft(x1,2048);mt=abs(x1);plot(mt);xlabel('HZ');ylabel('|Y(d)|');subplot(2,2,1);plot(x1);xlabel('HZ');ylabel('|Y(d)|');title('加噪声后的波形');subplot(2,2,2);plot(x2);xlabel('HZ');ylabel('|Y(d)|');title('加噪声后的幅值');subplot(2,2,3);plot(mt);xlabel('HZ');ylabel('|Y(d)|');title('加噪声后的频谱');ht=43000;bits=16;wavwrite(x1,ht,bits,'C:\Users\wentao\h\xinhao2.wav');%将加噪声的信号保存figure(3)N=15;wc=0.3;[b,a]=butter(N,wc);x3=fft(x);fp=abs(x3);y2=filter(b,a,x);Y1=fft(y2);subplot(2,2,1);plot(y2);xlabel('HZ');ylabel('|Y(d)|');title('滤波后信号的波形');subplot(2,2,2);plot(Y1);xlabel('HZ');ylabel('|Y(d)|');title('滤波后信号的幅值');subplot(2,2,3);plot(fp);xlabel('HZ');ylabel('|Y(d)|');title('滤波后信号的频谱');wavwrite(y2,ht,bits,'C:\Users\h\Desktop\xinhao3.wav');%将滤波之后保存。

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

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

现代通信原理作业一利用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白噪声正弦信号分析

1.程序设计目的机械故障诊断中,通过在机械设备上布置传感器,利用传感器采集机械设备工作时的振动信号,通过对采集得到的信号进行加工分析,从而了解设备的工作状态,达到对机械设备故障诊断的目的。

2.程序实现功能本次作业设计了一段程序分析信号,信号采用加白噪声的正弦信号,实现以下目的:1)绘制出信号时域波形图。

2)计算信号时域特征值。

3)通过快速傅里叶变换,使信号由时域转频域.4)绘制出信号的频域波形图,幅值图,相位图。

5)计算信号频域特征值。

3. 程序运行结果:00.050.1-4-2024t x (t )白噪声-0.1-0.0500.050.1-2-1012tr u(t)白噪声自相关00.050.1-4-2024t x (t)带白噪声的正弦时域图-0.1-0.0500.050.1-1000100200tr x(t )带白噪声的正弦函数自相关图一00.050.1-4-2024t x (t )带白噪声的正弦时域图05001000-20-101020频率幅值频谱图0500100000.511.5f 幅值幅值谱05001000-4-224f 相位角相位谱图二MATLAB白噪声正弦信号分析时域特性:平均值=—0。

072681最小值=-3.049843最大值=3。

859065标准差=1。

268557方差=1。

609236幅频特性:平均值=0。

840376最小值=1。

791697最大值=1。

077591标准差=12.678479方差=160。

7438204.源程序:%正弦带白噪声信号时域,频域分析%时域分析fs=1000;N=100;t=(0:N—1)/fs;n=0:N-1;mlag=100;u=randn(size(t));[ru,lags]=xcorr(u,mlag,'unbiased');x=sin(2*pi*60*t)+u;fprintf(’时域特性:\n’)ag=mean(x);fprintf(’平均值=%f\n',ag);mi=min(x);fprintf('最小值=%f\n’,mi);ma=max(x);fprintf(’最大值=%f\n’,ma);st=std(x);fprintf('标准差=%f\n’,st);fc=st.^2;fprintf(’方差=%f\n’,fc);figure(1)subplot(2,2,1)plot(t,u)xlabel(’t’);ylabel('x(t)’);title(’白噪声');subplot(2,2,2)plot(lags/fs,ru)xlabel(’t’);ylabel('ru(t)’);title('白噪声自相关’);[rx,lags]=xcorr(x,mlag);subplot(2,2,3)plot(t,x)xlabel(’t’);ylabel('x(t)’);title(’带白噪声的正弦时域图');subplot(2,2,4)plot(lags/fs,rx)xlabel(’t');ylabel(’rx(t)’);title(’带白噪声的正弦函数自相关');%频域分析figure(2)subplot(2,2,1)plot(t,x)xlabel(’t');ylabel(’x(t)’);title(’带白噪声的正弦时域图');X=fft(x,N);f=n*fs/N;mag=2*abs(X)/N;pha=angle(X);subplot(2,2,2)plot(f,X)xlabel('频率');ylabel('幅值');title(’频谱图’);subplot(2,2,3)plot(f,mag)xlabel(’f');ylabel(’幅值’);title(’幅值谱');subplot(2,2,4)plot(f,pha)xlabel('f');ylabel('相位角’);title(’相位谱');fprintf(’幅频特性:\n’);Ag=mean(X);fprintf(’平均值=%f\n’,Ag);Mi=min(X);fprintf('最小值=%f\n',Mi);Ma=max(X);fprintf(’最大值=%f\n’,Ma);St=std(X);fprintf('标准差=%f\n',St);Fc=St。

随机信号大作业

随机信号大作业

随机信号大作业02111465 冯英旺1.用matlab编程产生随机初相信号X(t)=5cos(t+a)(其中a是区间(0,2π)上均匀分布的随机变量)的三个样本函数。

解:程序如下:a=unifrnd(0,2*pi,1,10);t=0:0.1:10;for j=1:3x=5*cos(t+a(j));plot(t,x);hold onendxlabel('t');ylabel('x(t)');grid on;axis tight;运行结果:2.利用matlab程序设计一正弦型信号加高斯白噪声的复合信号。

分析复合信号通过理想低通系统后的功率谱密度和相应的幅度分布特性。

解:设正弦信号为x=sin(2*pi*10*t)先画出复合信号曲线程序如下:clear all;fs=100;fc=10;n=201;t=0:1/fs:2;x=sin(2*pi*fc*t);y=awgn(x,10);plot(t,y,'r');title('复合信号曲线');ylabel('y');xlabel('t/20pi');grid;通过理想低通系统后的曲线和频谱图,程序如下:y1=conv2(y,sin(10*t)/(pi*t));plot(t,y1,'r');title('通过低通系统复合信号曲线');ylabel('y1');xlabel('t/20pi');grid;Fy=fftshift(fft(y1));f1=(0:200)*fs/n-fs/2;plot(f1,abs(Fy),'r');title('复合信号通过理想低通系统频谱图');ylabel('Fy(jw)');xlabel('w');grid;功率谱,源程序如下:P=Fy.*conj(Fy)/length(Fy);plot(f1,P,'r');title('复合信号通过理想低通系统功率谱'); ylabel('Gy(w)');xlabel('w');grid;3.利用matlab程序分别设计一正弦型信号,高斯白噪声信号。

matlab实现噪声中正弦信号相位估计仿真

matlab实现噪声中正弦信号相位估计仿真

噪声中正弦信号相位的估计问题
设观测数据为
x(n)=Acos(2πf0n+φ)+w(n),n=0,1,2,...,N-1
式中,w(n)为已知方差σ的高斯白噪声,正弦信号的幅度A和频率f0为已知。

一种估计2
φ的估计量为
N-1⎧⎡N-1⎤⎫φ=-Im⎨ln⎢∑x(n)cos(2πf0n)+j∑x(n)sin(2πf0n)⎥⎬ n=0⎦⎭⎩⎣n=0∧A2
定义信噪比为SNR=。

令A=1,f0=0.05,φ=π/3,N=256。

22σ
(1)产生服从特定概率分布的观测数据x(n);
(2)利用估计算法计算估计量φ;
(3)上述过程重复M次,产生M个φ的实现
(4)利用μ∧=θ∧∧∧1M
1θi确定估计量的均值。

∑i=1M∧(5)利用σ∧=θ2M(θ-μθ)确定估计量的方差。

∑i∧M∧∧∧2=1
(6)利用直方图来确定PDF:首先计算落入某指定区间的次数,然后再除以总的实现次数得到概率,再除以区间长度得到PDF估计。

利用matlab仿真得到的PDF估计如图1所示。

图1 估计量φ的PDF估计
对不同的信噪比(SNR)情况进行Monte Carlo仿真,在此我们令SNR从-20(dB)取到10(dB),步进值为2。

将估计量的方差与SNR画在同一图上,如图2所示。


从图中我们可以看出,估计量的结果φ的方差随着SNR增大而减小。

当SNR减小到一定程度时,方差会突然增大很多。

这是因为随着信噪比的减小,我们通过采集得到的信号主要成分为白噪声,因此其方差会很大。


图2 估计量φ的方差与SNR的关系∧。

信号

信号

实验三:利用Matlab实现噪声下的信号的检测一、实验目的:1)了解匹配滤波器的结构2)用匹配滤波器实现正弦波和方波信号的检测二、实验原理在平稳加性高斯白噪声时,最优处理器的核心环节用匹配滤波器实现,它相当于相关接收机的处理。

用匹配滤波器实现最优处理器结构如下图所示:匹配滤波器实现最优处理器结构三、实验任务1、利用信号判决准则设计处理器,下面编写程序设计处理器,让正弦波信号sin(2*pi*t)通过匹配滤波器,匹配滤波器的传递函数的冲击响应为:h=sin(2*pi*(-t)),设噪声为均值为1方差为0.6的高斯噪声。

要求:(1)产生正弦波信号和高斯噪声;(2)产生匹配滤波器冲击响应(3)画出被噪声污染的正弦波信号经过匹配滤波器前后的信号波形;并求出滤波器输出的最大值。

(4)画出正弦波信号经过匹配滤波器后的输出信号波形并求出滤波器输出的最大值。

(t=-5:0.01:5;n=sqrt(0.6)*randn(size(t)); 匹配滤波器输出信号conv(h,x))滤波前加噪声的信号匹配滤波器的冲激响应500100015002000滤波后加噪声的信号500100015002000未加噪声的信号通过滤波器的输出2、利用Matlab 生成方波函数图像。

生成一幅度为2宽度为1的方波(设信号时间t=0:0.01:(3-0.01),共300个点,其中前100个点为0,中间100个点为1,最后100个点为0)并让其通过匹配滤波器。

设噪声为均值为1方差为0.04的高斯噪声。

(要求同实验任务一)123-1-0.500.511.5输入方波信号123-1-0.500.511.5高斯信道中的方波信号200400600-100-50050100150加噪声信号滤波器的输出0200400600-100-50050100150方波信号滤波器的输出任务1:t=-5:0.01:5;s=sin(2*pi*t);n=sqrt(0.6)*randn(size(t)); x=s+n;h=sin(2*pi*(-t));y=conv(h,x);z=conv(h,s);title('');subplot(2,2,1);plot(h);title('');subplot(2,2,2);plot(x);subplot(2,2,3);plot(y);subplot(2,2,4);plot(z);任务2:t=0:0.01:(3-0.01);s=[zeros(1,100),ones(1,100),zeros(1,100)]; n=sqrt(0.04)*randn(size(t));x=s+n;h=s;y=conv(h,x);z=conv(h,s);title('');subplot(2,2,1);plot(s);title('');subplot(2,2,2);plot(x);title('');subplot(2,2,3);plot(y);subplot(2,2,4);plot(z);。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

班级: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;
左图为函数频谱图;右图为白噪声自相关函数图。

相关文档
最新文档