给正弦信号加高斯噪声
时间: 2023-08-01 21:06:20 浏览: 127
可以使用Python的NumPy和Matplotlib库来生成正弦信号并添加高斯噪声。以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置信号参数
A = 1 # 振幅
f = 1 # 频率
fs = 100 # 采样率
t = np.arange(0, 1, 1/fs) # 时间点
x = A * np.sin(2*np.pi*f*t) # 正弦信号
# 添加高斯噪声
mu = 0 # 均值
sigma = 0.1 # 标准差
noise = np.random.normal(mu, sigma, len(x)) # 生成噪声
x_noisy = x + noise # 加噪声
# 绘制信号图像
plt.plot(t, x, label='Original Signal')
plt.plot(t, x_noisy, label='Noisy Signal')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.legend()
plt.show()
```
在代码中,首先设置了正弦信号的振幅、频率和采样率,并使用NumPy库生成了正弦信号。然后,使用NumPy库生成了均值为0、标准差为0.1的高斯噪声,并将噪声加到正弦信号上,生成了加噪声的信号。最后,使用Matplotlib库绘制了原始信号和加噪声信号的图像。
相关问题
matlab给正弦信号加高斯噪声
可以使用 `awgn` 函数给正弦信号加高斯噪声。以下是一个示例:
```matlab
% 生成正弦信号
Fs = 1000; % 采样率
t = 0:1/Fs:1; % 时间向量
f = 10; % 正弦波频率
x = sin(2*pi*f*t); % 正弦信号
% 添加高斯噪声
SNR = 10; % 信噪比
y = awgn(x, SNR, 'measured');
% 绘制原始信号和添加噪声后的信号
figure;
subplot(2,1,1);
plot(t, x);
title('Original Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(t, y);
title('Noisy Signal');
xlabel('Time (s)');
ylabel('Amplitude');
```
在上面的代码中,我们首先生成了一个频率为 10 Hz 的正弦信号,然后使用 `awgn` 函数给它添加了高斯噪声。`SNR` 参数指定了信噪比,`'measured'` 表示使用实际信噪比测量。最后,我们绘制了原始信号和添加噪声后的信号。
matlab生成正弦信号加高斯白噪声
生成正弦信号可以使用 `sin` 函数,高斯白噪声可以使用 `randn` 函数,将两者结合可以得到正弦信号加高斯白噪声的信号。
下面是一个示例代码:
```matlab
% 生成正弦信号
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间向量
f = 10; % 正弦信号频率
x = sin(2*pi*f*t); % 正弦信号
% 生成高斯白噪声
n = length(x); % 信号长度
sigma = 0.1; % 噪声标准差
noise = sigma * randn(1,n); % 高斯白噪声
% 信号相加
y = x + noise;
% 绘制信号图像
figure
subplot(3,1,1)
plot(t,x)
xlabel('时间 (s)')
ylabel('幅值')
title('正弦信号')
subplot(3,1,2)
plot(t,noise)
xlabel('时间 (s)')
ylabel('幅值')
title('高斯白噪声')
subplot(3,1,3)
plot(t,y)
xlabel('时间 (s)')
ylabel('幅值')
title('正弦信号加高斯白噪声')
```
运行代码可以得到正弦信号加高斯白噪声的图像。
阅读全文