用matlab信号叠加噪声
时间: 2023-10-11 15:14:09 浏览: 307
在MATLAB中,可以使用以下步骤将噪声添加到信号中:
1. 生成一个与信号长度相同的噪声信号。
```matlab
noise = randn(size(signal)); % 产生随机高斯噪声
```
2. 根据所需的信噪比 (SNR),缩放噪声信号的幅度。
```matlab
snr = 10; % 设置信噪比
scaled_noise = noise / std(noise) * std(signal) / 10^(snr/20); % 缩放噪声信号使其与信号的幅度相匹配
```
3. 将噪声信号添加到原始信号中。
```matlab
noisy_signal = signal + scaled_noise; % 叠加噪声到信号上
```
完整的示例代码如下:
```matlab
% 原始信号
Fs = 1000; % 采样率
t = 0:1/Fs:1; % 时间向量
signal = sin(2*pi*50*t) + sin(2*pi*120*t);
% 添加噪声
noise = randn(size(signal)); % 产生随机高斯噪声
snr = 10; % 设置信噪比
scaled_noise = noise / std(noise) * std(signal) / 10^(snr/20); % 缩放噪声信号使其与信号的幅度相匹配
noisy_signal = signal + scaled_noise; % 叠加噪声到信号上
% 绘制信号和带噪声的信号
figure;
plot(t, signal, 'b', t, noisy_signal, 'r');
xlabel('时间');
ylabel('幅度');
legend('原始信号', '带噪声的信号');
```
上述代码将在图形窗口中绘制原始信号和带噪声的信号。你可以根据需要设置不同的信噪比 (SNR) 值来控制噪声的强度。