matlab添加高斯噪声代码
时间: 2023-08-09 09:06:09 浏览: 90
你可以使用MATLAB中的`imnoise`函数来添加高斯噪声,下面是一个示例代码:
```matlab
% 读入图像
I = imread('lena.bmp');
% 添加高斯噪声
J = imnoise(I, 'gaussian', 0, 0.05);
% 显示结果
subplot(1,2,1)
imshow(I)
title('原始图像')
subplot(1,2,2)
imshow(J)
title('添加高斯噪声后的图像')
```
其中,`imnoise`函数的第二个参数指定噪声类型,这里选择了高斯噪声;第三个参数指定噪声均值,这里设为0;第四个参数指定噪声方差,这里设为0.05,你可以根据需要调整方差大小。
相关问题
matlab去除高斯噪声代码
下面是一份Matlab代码,可以用来去除高斯噪声:
```matlab
% 读入图像
img = imread('noisy_image.png');
% 添加高斯噪声
noisy_img = imnoise(img, 'gaussian', 0, 0.01);
% 使用高斯滤波器去除噪声
filtered_img = imgaussfilt(noisy_img, 1);
% 显示原始图像、加噪图像和去噪图像
figure;
subplot(1,3,1); imshow(img); title('原始图像');
subplot(1,3,2); imshow(noisy_img); title('加噪图像');
subplot(1,3,3); imshow(filtered_img); title('去噪图像');
```
在这个例子中,我们首先读入一张图像,然后使用`imnoise`函数添加高斯噪声。接下来,我们使用`imgaussfilt`函数应用高斯滤波器去除噪声。最后,我们将原始图像、加噪图像和去噪图像显示在一个图像窗口中。
matlab加入高斯噪声的代码
在MATLAB中,你可以使用`awgn`函数来向数据添加高斯白噪声,模拟实际信号受到噪声的影响。以下是一个简单的示例,展示如何在一个一维向量上添加高斯噪声:
```matlab
% 创建一个长度为n的数据向量
data = rand(1, 100); % 这里假设你的数据是一段随机生成的序列
% 定义噪声级别(信噪比SNR,单位是分贝dB)
SNR = 20; % 比如你想创建20分贝信噪比的噪声
% 计算等效的标准差σ (对于高斯分布,SNR(dB) = 10 * log10(σ²))
sigma = 1 / sqrt(10^(SNR/10));
% 添加高斯噪声
noisy_data = awgn(data, SNR, 'measured'); % 'measured'表示根据给定的SNR值计算标准偏差
% 显示原始数据和添加噪声后的数据
figure;
subplot(2, 1, 1);
plot(data, 'b', '-o');
title('Original Data');
xlabel('Index');
ylabel('Amplitude');
subplot(2, 1, 2);
plot(noisy_data, 'r', '-o');
title(['Noisy Data (SNR = ' num2str(SNR) ' dB)']);
xlabel('Index');
ylabel('Amplitude');
阅读全文