复高斯白噪声的产生与叠加方法总结
来源:互联网 发布:类似我要当学霸的知乎 编辑:程序博客网 时间:2024/05/18 15:05
%------------------复高斯白噪声的产生与叠加方法总结
clear all;
clc;
%-----------------------产生复高斯白噪声的方法
N=1000;%样点数N不能太小
%---方法1
noise = sqrt(1)*randn(1,N)+j*sqrt(1)*randn(1,N); %产生复高斯白信号,实、虚部方差均为1
%验证所产生的噪声是否正确
noise_Power=sum(abs(noise).^2)/length(noise); %求出噪声功率,验证是否为2,结果近似为2
mean0=sum(noise)/N;%验证均值是否为0,结果近似为0
%---方法2
% wgn(m,n,10*log10(p))产生一个m行n列的高斯白噪声的矩阵,所有元素构成的样点的信号功率为p瓦
noise1=wgn(1,N,10*log10(1) )+j*wgn(1,N,10*log10(1) );
%验证所产生的噪声是否正确
noise1_Power=sum(abs(noise1).^2)/length(noise1); % 验证
mean1=sum(noise1)/N;
%---产生m行n列的复高斯白噪声矩阵,所有元素构成的样点的信号功率为p=1+1=2瓦。产生的复高斯白噪声矩阵,对于某行或某列来说,
%若其中元素数较多(比如大于1000),则该行或该列的方差接近2瓦,否则不然。
%---若想产生m(可以为天线阵列上,m个阵元各自的接收信号中的噪声,m较小,比如10)行n(为样点数,n较大,比如1000)列的复高斯白噪声矩阵,
%---使每一行构成的信号的方差为sigma的高斯白噪声,可以用以下两种方法产生天线阵列接收信号矢量中的噪声矢量,m行n列,例如,下面程序段m=10,n=N=1000
%---方法1
noise2 = sqrt(1)*randn(10,N)+j*sqrt(1)*randn(10,N); %产生复高斯白信号,实、虚部方差均为sigma=1
%验证所产生的噪声是否正确
for k=1:10
noise2_Power1(k)=sum(abs(noise2(k,:)).^2)/length(noise2(k,:)); %求出噪声功率,验证是否为2,结果近似为2
mean_noise2(k)=sum(noise2(k,:))/N;%验证均值是否为0,结果近似为0
end
noise2_Power=sum(noise2_Power1)/N;
mean2=sum(mean_noise2)/N;
%---方法2
noise3=wgn(10,N,10*log10(1) )+j*wgn(10,N,10*log10(1) );
%验证所产生的噪声是否正确
for k=1:10
noise3_Power1(k)=sum(abs(noise3(k,:)).^2)/length(noise3(k,:)); % 验证
mean_noise3(k)=sum(noise3(k,:))/N;
end
noise3_Power=sum(noise3_Power1)/N;
mean3=sum(mean_noise3)/N;
%-----------------------加复高斯白噪声的方法
sig=ones(10,N)+j*ones(10,N); %信号
y2 = awgn(sig,10,'measured'); %加入信噪比为10db的噪声,加入前预估信号的功率(强度)。
%---验证
noise4=y2-sig;
sig_power=sum( sum(abs(sig).^2) )/(10*N);
noise4_power=sum( sum(abs(noise4).^2) )/(10*N);
snr=10*log10(sig_power/noise4_power);%数域与dB域的转换:x=10*log10(x)[dB]
sig_1=sig(1,:);
noise4_1=noise4(1,:);
sig_1_power=sum(abs(sig_1).^2) /N;
noise4_1_power=sum(abs(noise4_1).^2)/N;
snr1=10*log10(sig_1_power/noise4_1_power);
clear all;
clc;
%-----------------------产生复高斯白噪声的方法
N=1000;%样点数N不能太小
%---方法1
noise = sqrt(1)*randn(1,N)+j*sqrt(1)*randn(1,N); %产生复高斯白信号,实、虚部方差均为1
%验证所产生的噪声是否正确
noise_Power=sum(abs(noise).^2)/length(noise); %求出噪声功率,验证是否为2,结果近似为2
mean0=sum(noise)/N;%验证均值是否为0,结果近似为0
%---方法2
% wgn(m,n,10*log10(p))产生一个m行n列的高斯白噪声的矩阵,所有元素构成的样点的信号功率为p瓦
noise1=wgn(1,N,10*log10(1) )+j*wgn(1,N,10*log10(1) );
%验证所产生的噪声是否正确
noise1_Power=sum(abs(noise1).^2)/length(noise1); % 验证
mean1=sum(noise1)/N;
%---产生m行n列的复高斯白噪声矩阵,所有元素构成的样点的信号功率为p=1+1=2瓦。产生的复高斯白噪声矩阵,对于某行或某列来说,
%若其中元素数较多(比如大于1000),则该行或该列的方差接近2瓦,否则不然。
%---若想产生m(可以为天线阵列上,m个阵元各自的接收信号中的噪声,m较小,比如10)行n(为样点数,n较大,比如1000)列的复高斯白噪声矩阵,
%---使每一行构成的信号的方差为sigma的高斯白噪声,可以用以下两种方法产生天线阵列接收信号矢量中的噪声矢量,m行n列,例如,下面程序段m=10,n=N=1000
%---方法1
noise2 = sqrt(1)*randn(10,N)+j*sqrt(1)*randn(10,N); %产生复高斯白信号,实、虚部方差均为sigma=1
%验证所产生的噪声是否正确
for k=1:10
noise2_Power1(k)=sum(abs(noise2(k,:)).^2)/length(noise2(k,:)); %求出噪声功率,验证是否为2,结果近似为2
mean_noise2(k)=sum(noise2(k,:))/N;%验证均值是否为0,结果近似为0
end
noise2_Power=sum(noise2_Power1)/N;
mean2=sum(mean_noise2)/N;
%---方法2
noise3=wgn(10,N,10*log10(1) )+j*wgn(10,N,10*log10(1) );
%验证所产生的噪声是否正确
for k=1:10
noise3_Power1(k)=sum(abs(noise3(k,:)).^2)/length(noise3(k,:)); % 验证
mean_noise3(k)=sum(noise3(k,:))/N;
end
noise3_Power=sum(noise3_Power1)/N;
mean3=sum(mean_noise3)/N;
%-----------------------加复高斯白噪声的方法
sig=ones(10,N)+j*ones(10,N); %信号
y2 = awgn(sig,10,'measured'); %加入信噪比为10db的噪声,加入前预估信号的功率(强度)。
%---验证
noise4=y2-sig;
sig_power=sum( sum(abs(sig).^2) )/(10*N);
noise4_power=sum( sum(abs(noise4).^2) )/(10*N);
snr=10*log10(sig_power/noise4_power);%数域与dB域的转换:x=10*log10(x)[dB]
sig_1=sig(1,:);
noise4_1=noise4(1,:);
sig_1_power=sum(abs(sig_1).^2) /N;
noise4_1_power=sum(abs(noise4_1).^2)/N;
snr1=10*log10(sig_1_power/noise4_1_power);
0 0
- 复高斯白噪声的产生与叠加方法总结
- matlab 产生高斯噪声和高斯白噪声方法
- Matlab图像的代数运算(去除叠加噪声)
- 高斯白噪声与高斯色噪声的区别
- [Math]简单产生白噪声的算法
- 关于模拟电路低噪声的心得与方法
- 给信号叠加相位噪声
- 谷歌卫星地图与矢量电子地图的叠加方法
- 如何产生高斯白噪声
- matlab 产生高斯白噪声
- Matlab产生高斯白噪声
- Matlab产生高斯白噪声
- 总结几个产生上万流量的方法
- C++产生随机数的方法总结
- Java中产生随机数的方法总结
- 图像模拟添加(产生)椒盐噪声的OpenCV代码!
- 图像模拟添加(产生)高斯噪声的OpenCV代码!
- 求叠加了高斯噪声的正弦信号的功率…
- 动态链接库dll 静态链接库lib 动态导入库lib
- 2千万用户APP的开发运营流程
- 1069. The Black Hole of Numbers (20)
- Git仓库迁移而不丢失log的方法
- 插件模式
- 复高斯白噪声的产生与叠加方法总结
- iOS 自定义navigationItem
- Dijkstra 求最短路径算法
- C#与linux 时间戳互转
- ReactiveCocoa Tutorial – The Definitive Introduction
- intent.getSerializableExtra(转)
- 160309iOS 浮点数显示的问题。
- 控制飞机移动
- C++细枝末节