MATLAB环境下的正弦信号及高斯白噪声仿真程序说明
matlab生成正弦信号和反射信号的方法
matlab生成正弦信号和反射信号的方法
要生成正弦信号,可以使用MATLAB中的sin函数。
正弦信
号的公式为y = A*sin(2*pi*f*t + phi),其中A为振幅,f为频率,t为时间,phi为相位。
例如,生成频率为1 Hz、振幅为2的正弦信号可以使用以下代码:
```matlab
fs = 100; % 采样频率,单位为Hz
t = 0:1/fs:1-1/fs; % 时间序列
f = 1; % 信号频率,单位为Hz
A = 2; % 信号振幅
phi = 0; % 信号相位
y = A*sin(2*pi*f*t + phi); % 生成正弦信号
plot(t,y); % 绘制信号波形
```
要生成反射信号,可以对正弦信号进行镜像或反向处理。
例如,生成正弦信号的反射信号可以使用以下代码:
```matlab
fs = 100; % 采样频率,单位为Hz
t = 0:1/fs:1-1/fs; % 时间序列
f = 1; % 信号频率,单位为Hz
A = 2; % 信号振幅
phi = 0; % 信号相位
y = A*sin(2*pi*f*t + phi); % 生成正弦信号
y_reflection = fliplr(y); % 对信号进行镜像处理
plot(t,y_reflection); % 绘制反射信号波形
```
在上述代码中,使用了fliplr函数对信号进行镜像处理。
绘制反射信号时使用了plot函数。
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如何⽣成实⾼斯⽩噪声、复⾼斯⽩噪声
什么是⾼斯⽩噪声
如果⼀个噪声,它的幅值服从,⽽它的⼜是均匀分布的,则称它为⾼斯⽩噪声.
以下参考⽹址:
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中产生高斯白噪声非常方便,可以直接应用两个函数,一个是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 实现要求:样本点: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)2.样本点为1000、均值为0、标准差为2时,高斯白噪声分布为下图所示:程序如下所示:% 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)3.样本点为1000、均值为0、标准差为10时,高斯白噪声分布为下图所示:程序如下所示:% 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)4.样本点为1000、均值为10、标准差为0.2时,高斯白噪声分布为下图所示:程序如下所示:% 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)5.样本点为1000、均值为10、标准差为2时,高斯白噪声分布为下图所示:程序如下所示:% 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)6.样本点为1000、均值为10、标准差为10时,高斯白噪声分布为下图所示:程序如下所示:% 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)7.样本点为100、均值为0、标准差为0.2时,高斯白噪声分布为下图所示:程序如下所示:% 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)8.样本点为100、均值为0、标准差为2时,高斯白噪声分布为下图所示:程序如下所示:% 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)9.样本点为100、均值为0、标准差为10时,高斯白噪声分布为下图所示:程序如下所示:% 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)10. 样本点为100、均值为10、标准差为0.2时,高斯白噪声分布为下图所示:程序如下所示:% 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)11. 样本点为100、均值为10、标准差为10时,高斯白噪声分布为下图所示:程序如下所示:% 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)12.样本点为100、均值为0、标准差为10时,高斯白噪声分布为下图所示:程序如下所示:% 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实现噪声中正弦信号相位估计仿真
噪声中正弦信号相位的估计问题
设观测数据为
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
单一频率正弦波噪声matlab在MATLAB中生成单一频率正弦波噪声可以通过以下步骤实现:步骤1,生成正弦波信号。
你可以使用MATLAB中的sin函数来生成单一频率的正弦波信号。
例如,如果要生成频率为f的正弦波信号,可以使用以下代码:matlab.fs = 1000; % 采样频率。
f = 50; % 正弦波频率。
t = 0:1/fs:1; % 时间向量,从0到1秒。
x = sin(2pift); % 生成正弦波信号。
这将生成一个频率为50Hz的正弦波信号,采样频率为1000Hz,持续1秒钟。
步骤2,添加噪声。
要向正弦波信号中添加噪声,可以使用MATLAB中的randn函数生成高斯白噪声。
然后将这个噪声加到正弦波信号上。
以下是一个示例代码:matlab.noise = 0.1randn(size(t)); % 生成均值为0,标准差为0.1的高斯白噪声。
x_noisy = x + noise; % 将噪声添加到正弦波信号上。
在这个示例中,我们生成了均值为0,标准差为0.1的高斯白噪声,并将其添加到之前生成的正弦波信号上。
步骤3,绘制信号图形。
最后,你可以使用MATLAB中的plot函数来绘制原始的正弦波信号和添加了噪声的信号。
以下是一个示例代码:matlab.figure;subplot(2,1,1);plot(t, x);title('原始正弦波信号');subplot(2,1,2);plot(t, x_noisy);title('添加噪声后的信号');通过这些步骤,你就可以在MATLAB中生成单一频率正弦波噪声信号了。
希望这些信息对你有所帮助。
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;。
噪声产生器的MATLAB实现及性能分析——噪声带宽为1.7MHz
课程设计任务书计算机与通信工程学院通信工程专业噪声产生器的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的高斯白噪声信道分析报告一、引言高斯白噪声是信号传输过程中一种常见的干扰信号。
对于通信系统的设计和性能分析来说,了解信道模型对系统的影响非常重要。
本报告主要基于MATLAB对高斯白噪声信道进行分析,通过模拟实验来研究高斯白噪声对信号传输的影响。
二、背景知识1.高斯白噪声信道:高斯白噪声是一种均值为零,功率谱密度为常数的随机过程。
它的特点是干扰信号的瞬时值是随机的,且各个样本之间是无关的。
2.信道容量:信道容量是指在给定带宽和信噪比条件下,信道所能传输的最大信息速率。
对于高斯白噪声信道,香农公式可以用来计算信道容量。
三、实验步骤1. 生成高斯白噪声信号:使用MATLAB提供的randn函数生成服从高斯分布的随机数序列作为高斯白噪声信号。
2.生成待传输信号:为了模拟实际通信系统,我们生成一个随机的二进制信号序列,其中1代表信号出现,0代表信号未出现。
3.信号加噪声:将待传输信号与高斯白噪声信号相加,模拟信号在传输过程中受到噪声的影响。
4.信号解码:使用最简单的译码方法,将收到的信号进行硬判决,即大于0的样本判定为1,小于0的样本判定为0。
5. 比较原始信号和解码信号:对比原始信号和解码信号,计算误比特率(Bit Error Rate, BER)。
四、实验结果与讨论我们进行了多次实验,分别改变了信号传输的信噪比(Signal-to-Noise Ratio, SNR),记录了每次实验的误比特率。
实验结果表明,在相同的SNR条件下,误比特率随信噪比的增大而减小,即信噪比越大,误比特率越低。
这是因为噪声对信号传输的干扰越小,解码的准确性越高。
我们还进行了不同信噪比下信道容量的计算。
根据香农公式,信道容量与信噪比成正比。
我们发现,当信噪比较小时,信道容量较低,即信号传输的速率较慢;当信噪比较大时,信道容量达到最大值,即信号传输的速率最大。
通过以上分析,我们可以得出以下结论:1.高斯白噪声对信号传输会造成一定的干扰,降低信号的传输质量。
matlab产生高斯白噪声
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的白噪声信号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函数,画出其波形。
(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环境下的正弦信号及高斯白噪声仿真程序说明
姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号: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仿真原理
各种初级库函数的应用: 1、linspace函数:作用是创建一个等差数
列,格式为“linspace(a,b,c);”其中a 为数列最小值,b为数列最大值,c为数列中 元素的个数 2、plot函数:用来创建二维连续信号的图 像,格式为“plot(x,y)”,用横轴来代表x, 用纵轴来代表y
Matlab仿真原理
各种初级库函数的应用: 1、linspace函数:作用是创建一个等差数
(创建函数图像)
Matlab仿真— —CTS正弦信号
信号图像(基波周期To=2Pi)
Matlab仿真— —CTS实指数信号
语句: x=linspace(0,10,100);
(创建等差数列x,起始值0,终止值100,公差10)
y=exp(x);
(根据x中的元素生成实指数信号)
plot(x,y),title('y=exp(t)'),xlabel('时间 t'),ylabel('幅值y');
Matlab仿真— —DTS实指数信号
信号图像
Matlab仿真— —DTS复指数信号
语句:
n=[0:10]; (生成一个等差数列n,起始值0,终止值10,公差为1)
y=exp((1+j*0.1)*n); (根据数列n的值生成离散复指数信号)
用matlab仿真余弦信号与白噪声
(3)功率谱密度仿真方法:自相关函数法,又称间接法, 随机信号 x(n)的相关函数是在时间域内描述随机过程的重要特征。
自相关函数是随机信号在不同时刻的值之间的依赖性的量度,是一个很有用的统计平均量。
在随机信号处理中,自相关函数可以用来检测淹没在随机噪声干扰中的信号,随机信号的自功率谱等于它的自相关函数的傅里叶变换。
因此,通过自相关估计可求得信号的功率谱。
利用计算机计算自相关估值有两种方法。
一种是直接方法,先计算出随机信号和它的滞后序列的乘积,再取其平均值即得相关函数的估计值。
另一种是间接方法,先用快速变换算法计算随机序列的功率谱密度,再作反变换计算出相关函数。
本题则采用自相关函数法。
()(),||1Mjw jwm N m M S e R m e M N -=-=<=-∑这个实验是对白噪声与带限白噪声进行对比,其中带限白噪声 的产生是由于白噪声通过滤波器产生的,而本实验采用的是IIR 滤波器。
IIR 滤波器有如下特点:单位冲击响应h(n)是无限长的。
系统函数H (z )在有限Z 平面(1<|z|<∞)上有极点存在。
结构上存在着输出到输入的反馈,也就是结构递归型的。
因果稳定的IIR 滤波器全波极点一定在单位圆内。
一个IIR 滤波器的有理系统函数为:01()()/(1)()/()M Nk k k k k k H z b za z Y z X z --===-=∑∑clear all;randn('state',0)NFFT=1024; %采样点数Fs=1000; %取样频率(单位为Hz ) t=0:1/Fs:.2;y1=cos(t*20*pi); %余弦序列 figure(1)plot(t,y1);ylabel('余弦序列');grid on;%余弦序列的图像:%白噪声m=(0:NFFT-1)/Fs;y=0.1*randn(size(m)); %产生高斯白噪声。
matlab高斯噪声函数
matlab高斯噪声函数摘要:1.Matlab 高斯噪声函数的基本概念2.Matlab 高斯噪声函数的实现方法3.Matlab 高斯噪声函数的应用实例4.Matlab 高斯噪声函数的优缺点正文:一、Matlab 高斯噪声函数的基本概念在信号处理领域,噪声是一种普遍存在的现象。
高斯噪声是一种常见的噪声类型,它具有窄带宽、高斯分布的特点。
在Matlab 中,我们可以通过特定的函数来生成高斯噪声。
二、Matlab 高斯噪声函数的实现方法在Matlab 中,生成高斯噪声的函数主要有两种:randn 和normrnd。
1.randn 函数:该函数用于生成服从正态分布的随机数。
其用法为:y = randn(n),其中n 为正整数,表示生成一个n 维随机向量。
如果n 不是正整数,则返回错误信息。
2.normrnd 函数:该函数用于生成服从正态分布的随机数。
其用法为:y = normrnd(mu, sigma, m, n),其中mu 为均值,sigma 为标准差,m、n 为正整数。
该函数生成的是m×n 的随机矩阵。
三、Matlab 高斯噪声函数的应用实例在图像处理领域,高斯噪声常常用于模拟图像的噪声。
在Matlab 中,我们可以使用imnoise 函数向图像中加入高斯噪声。
具体用法如下:```matlabimnoise(I, "gaussian", m, v)```其中,I 为输入图像,"gaussian"表示高斯噪声,m 和v 分别表示噪声的均值和方差。
四、Matlab 高斯噪声函数的优缺点优点:Matlab 高斯噪声函数可以方便地生成高斯分布的随机数,易于实现和控制噪声的强度。
缺点:Matlab 高斯噪声函数生成的噪声与实际噪声分布可能存在偏差,需要根据实际情况进行调整。
使用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-正弦波-高斯白噪声-均匀白噪声-功率谱密度-自相关函数
现代通信原理作业一利用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.程序实现功能本次作业设计了一段程序分析信号,信号采用加白噪声的正弦信号,实现以下目的: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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号: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;
for j=1:m
R(j)=sum(y2(1:n-j-1).*y2(j:199),2)/(n-j);%无偏自相关函数的估计
Rx(49+j)=R(j);
Rx(51-j)=R(j);
end
subplot(3,2,5);
plot(i,Rx,'r');
%plot(leg*1/fs,Rx,'r');
title('白噪声自相关函数图');
ylabel('Rx');
xlabel('x');
grid;
Fy2=fft(Rx); %傅里叶变换得出白噪声功率谱函数
Fy21=fftshift(Fy2); %功率谱校正
f=(0:98)*fs/99-fs/2;
subplot(3,2,6);
plot(f,abs(Fy21),'r');
axis([-50 50 -0.5 1]);
title('白噪声功率谱函数图');
ylabel('F(Rx)');
xlabel('w');
grid;
(本资料素材和资料部分来自网络,仅供参考。
请预览后才下载,期待您的好评与关注!)。