产生一个高斯白噪声, 计算白噪声的均值、均方值、方差、概率密度、频谱及功率谱密度、自相关函数
时间: 2023-11-29 07:06:07 浏览: 421
信号处理和滤波去噪_10 噪声的自相关函数和功率谱密度(均匀白噪声和高斯白噪声).zip
5星 · 资源好评率100%
高斯白噪声是一种随机信号,其在时间和频率上都是随机的。产生高斯白噪声可以使用MATLAB中的randn函数。下面是计算白噪声的各种参数的方法:
1. 均值:对于高斯白噪声信号而言,它的均值为0,因为它只有交流分量。
2. 均方值:均方值表示信号平方后的均值,用E(x^2)表示。对于高斯白噪声信号而言,它的均方值为1。
3. 方差:方差是指随机变量与其均值之差的平方的期望值,用Var(x)表示。对于高斯白噪声信号而言,它的方差为1。
4. 概率密度:高斯白噪声的概率密度函数为正态分布函数,可以使用MATLAB中的normpdf函数进行计算。
5. 频谱:高斯白噪声的频谱是常数,即S(f)=N0/2,其中N0为噪声功率谱密度。
6. 功率谱密度:高斯白噪声的功率谱密度是常数,即P(f)=N0,其中N0为噪声功率谱密度。
7. 自相关函数:高斯白噪声的自相关函数为冲激函数,即R(t)=delta(t),其中delta(t)为单位冲激函数。
下面是MATLAB代码实现:
```matlab
% 产生高斯白噪声
x = randn(1, 1000);
% 计算均值、均方值、方差
mean_x = mean(x);
rms_x = rms(x);var_x = var(x);
% 计算概率密度
pdf_x = normpdf(x, mean_x, rms_x);
% 计算频谱和功率谱密度
N0 = 1; % 噪声功率谱密度
f = linspace(-0.5, 0.5, 1000);
S = N0/2*ones(1, 1000);
P = N0*ones(1, 1000);
% 计算自相关函数
R = xcorr(x);
% 绘制图像
subplot(2, 2, 1);
plot(x);
title('随机序列');
subplot(2, 2, 2);
plot(pdf_x);
title('概率密度');
subplot(2, 2, 3);
plot(f, abs(fftshift(fft(x))).^2/length(x));
title('功率谱密度');
subplot(2, 2, 4);
plot(R);
title('自相关函数');
```
阅读全文