matlab给信号加噪声
时间: 2023-09-29 15:02:50 浏览: 32
在 MATLAB 中,可以使用 `awgn` 函数向信号添加高斯白噪声。该函数的语法如下:
```
y = awgn(x, snr, 'measured');
```
其中,`x` 是原始信号,`snr` 是信噪比(dB),`'measured'` 表示使用 `x` 中测量的功率计算噪声功率。函数返回的 `y` 是加噪声后的信号。
举个例子,假设原始信号是一个正弦波,频率为 100 Hz,振幅为 1,采样率为 1000 Hz,时长为 1 秒。可以使用以下代码生成并绘制该信号:
```
t = 0:0.001:1;
x = sin(2*pi*100*t);
plot(t, x);
```
现在,假设要向该信号添加信噪比为 20 dB 的高斯白噪声,可以使用以下代码:
```
y = awgn(x, 20, 'measured');
plot(t, y);
```
绘制的图形将显示加噪声后的信号。注意,由于噪声是随机的,每次运行代码时都会得到不同的结果。
相关问题
用MATLAB给信号加噪声的程序
在MATLAB中给信号加噪声,可以使用randn函数生成高斯噪声,并与原始信号相加。下面是一个简单的示例代码:
```matlab
% 生成原始信号
t = 0:0.01:10; % 时间范围
f = 1; % 信号频率
x = sin(2*pi*f*t); % 原始信号
% 添加高斯噪声
SNR = 10; % 信噪比(dB)
noise = randn(size(x)); % 生成高斯噪声
noise = noise / sqrt(mean(noise.^2)); % 归一化噪声
signal_power = mean(x.^2); % 信号功率
noise_power = signal_power / (10^(SNR/10)); % 噪声功率
noisy_signal = x + sqrt(noise_power) * noise; % 添加噪声
% 绘制原始信号和添加噪声后的信号
figure;
plot(t, x, 'b', 'LineWidth', 1.5);
hold on;
plot(t, noisy_signal, 'r', 'LineWidth', 1.5);
xlabel('时间');
ylabel('信号');
legend('原始信号', '添加噪声后的信号');
title('添加噪声后的信号');
```
运行这段代码后,你将得到原始信号和添加噪声后的信号的图形。可以根据需要调整信噪比(SNR)来控制噪声的强度。
matlab如何给信号加噪声
在MATLAB中添加噪声可以使用以下步骤:
1. 生成原始信号。可以使用MATLAB内置的函数生成信号,例如sine、cosine、sawtooth等。
2. 生成噪声信号。可以使用MATLAB内置的函数生成噪声,例如randn、rand、wgn等。
3. 将噪声信号添加到原始信号中,使用MATLAB的加法运算符。
例如,以下代码将生成一个长度为100的sin信号,并将其与长度为100的高斯噪声相加:
```
% 生成原始信号
t = linspace(0, 2*pi, 100); % 生成时间向量
x = sin(t); % 生成sin信号
% 生成噪声信号
noise = 0.1*randn(size(t)); % 生成高斯噪声
% 将噪声信号添加到原始信号中
y = x + noise;
```
在上面的代码中,`0.1`是噪声信号的标准差,可以根据需要进行调整。