matlab中给信号添加高斯白噪声
时间: 2023-07-28 11:06:22 浏览: 418
在MATLAB中,可以使用`awgn`函数来为信号添加高斯白噪声。例如,以下代码将一个正弦信号添加10dB的高斯白噪声:
```matlab
t = 0:0.001:1; % 时间向量
f = 10; % 正弦信号频率
x = sin(2*pi*f*t); % 正弦信号
SNR = 10; % 信噪比为10dB
y = awgn(x, SNR, 'measured'); % 添加高斯白噪声
```
其中,`awgn`函数的第一个输入参数是原始信号,第二个输入参数是所需的信噪比(单位为dB),第三个输入参数`measured`表示使用已测量的信噪比来计算噪声功率。函数的输出参数`y`是添加了高斯白噪声的信号。
相关问题
matlab中给信号加高斯白噪声
在 Matlab 中,您可以使用 `awgn` 函数为信号添加高斯白噪声。该函数的语法如下:
```matlab
noisy_signal = awgn(signal, snr, 'measured');
```
其中,`signal` 是原始信号,`snr` 是信噪比(Signal-to-Noise Ratio),`noisy_signal` 是添加噪声后的信号。
例如,如果您想要将信噪比设置为20 dB,可以使用以下代码:
```matlab
signal = randn(1, 1000); % 生成长度为1000的随机信号
snr = 20; % 设置信噪比(dB)
noisy_signal = awgn(signal, snr, 'measured'); % 添加高斯白噪声
```
这将生成一个长度为1000的随机信号,将信噪比设置为20 dB,并将高斯白噪声添加到信号中。最终的带噪声信号将保存在 `noisy_signal` 中。
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('正弦信号加高斯白噪声')
```
运行代码可以得到正弦信号加高斯白噪声的图像。
阅读全文