数字信号处理MATLAB加噪声
时间: 2023-09-10 11:15:09 浏览: 97
现代数字信号处理
要在MATLAB中给数字信号加噪声,可以使用以下步骤:
1. 生成一个干净的数字信号,例如一个正弦波。
2. 生成一个噪声信号,可以使用MATLAB中的randn函数生成高斯白噪声,或者使用其他信号生成函数生成其他类型的噪声信号。
3. 将噪声信号的幅度缩放到所需的水平,例如使用MATLAB中的scale函数。
4. 将噪声信号与干净信号相加,得到带噪声的信号。
以下是一个示例代码,将一个正弦波信号加上高斯白噪声:
```matlab
% 生成干净信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
f = 10; % 信号频率
x = sin(2*pi*f*t); % 正弦波信号
% 生成高斯白噪声
n = randn(size(x));
% 缩放噪声信号
snr = 10; % 信噪比(dB)
n = n / sqrt(sum(x.^2)/length(x)) / 10^(snr/20);
% 加噪声
y = x + n;
% 绘制结果
figure;
plot(t,x,'b',t,y,'r');
legend('干净信号','带噪声信号');
xlabel('时间(秒)');
ylabel('幅度');
```
注意,上述代码中的信噪比是以dB为单位的,如果要使用线性比例,则需要将信噪比转换为幅度比。
阅读全文