实验一:在正弦信号上叠加功率为-20dBW的高斯白噪声。
1.实验代码
%加性高斯白噪声信道-用awgn(x,snr)实现
t=0:0.001:10; %产生时间矢量t
x=sin(2*pi*t); %生成正弦信号x
snr=20; %设定加性高斯白噪声的功率snr
y=awgn(x,snr); %在正弦信号上叠加高斯白噪声
z=y-x; %计算噪声功率
f=var(z); %计算噪声方差
subplot(2,2,1); %定义第一个图像
plot(t,x,'g-'); %画出原始信号
title('正弦信号x'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('x=sin(2Πt)'); %对纵轴进行说明
subplot(2,2,2); %定义第二个图像
plot(t,y,'r-'); %画出叠加了噪声后的信号
title('叠加了高斯白噪声后的正弦信号y'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('y=awgn(x,snr)'); %对纵轴进行说明
subplot(2,2,3); %定义第三个图像
plot(t,z,'b-'); %画出噪声功率的信号
title('噪声功率'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('z=y-x'); %对纵轴进行说明
subplot(2,2,4); %定义第四个图像
plot(t,f,'k.'); %画出噪声方差的信号
title('噪声方差'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('f=var(z)'); %对纵轴进行说明
2.实验结果
实验二:现在设实验一中的信号功率为10dBW,snr保持不变,再重新求解。
1.实验代码
%加性高斯白噪声信道-用awgn(x,snr,sigpower)实现
t=0:0.001:10; %产生时间矢量t
x=sin(2*pi*t); %生成正弦信号x
snr=20; %设定加性高斯白噪声的功率snr
y=awgn(x,snr,10); %在正弦信号上叠加高斯白噪声
z=y-x; %计算噪声功率
f=var(z); %计算噪声方差
subplot(2,2,1); %定义第一个图像
plot(t,x,'g-'); %画出原始信号
title('正弦信号x'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('x=sin(2Πt)'); %对纵轴进行说明
subplot(2,2,2); %定义第二个图像
plot(t,y,'r-'); %画出叠加了噪声后的信号
title('叠加了高斯白噪声后的正弦信号y'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('y=awgn(x,snr,10)'); %对纵轴进行说明
subplot(2,2,3); %定义第三个图像
plot(t,z,'b-'); %画出噪声功率的信号
title('噪声功率'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('z=y-x'); %对纵轴进行说明
subplot(2,2,4); %定义第四个图像
plot(t,f,'k.'); %画出噪声方差的信号
title('噪声方差'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('f=var(z)'); %对纵轴进行说明
2.实验结果
实验三:计算实验一中输入信号的功率,根据snr添加高斯白噪声。
1.实验代码
%加性高斯白噪声信道-用awgn(x,snr,'measured')实现
t=0:0.001:10; %产生时间矢量t
x=sin(2*pi*t); %生成正弦信号x
snr=20; %设定加性高斯白噪声的功率snr
y=awgn(x,snr,'measured'); %在正弦信号上叠加高斯白噪声
z=y-x; %计算噪声功率
f=var(z); %计算噪声方差
subplot(2,2,1); %定义第一个图像
plot(t,x,'g-'); %画出原始信号
title('正弦信号x'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('x=sin(2Πt)'); %对纵轴进行说明
subplot(2,2,2); %定义第二个图像
plot(t,y,'r-'); %画出叠加了噪声后的信号
title('叠加了高斯白噪声后的正弦信号y'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('y=awgn(x,snr,‘measured’)'); %对纵轴进行说明
subplot(2,2,3); %定义第三个图像
plot(t,z,'b-'); %画出噪声功率的信号
title('噪声功率'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('z=y-x'); %对纵轴进行说明
subplot(2,2,4); %定义第四个图像
plot(t,f,'m.'); %画出噪声方差的信号
title('噪声方差'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('f=var(z)'); %对纵轴进行说明
2.实验结果
实验四:用randn函数实现实验三。
1.实验代码
%加性高斯白噪声信道-用randn函数实现
t=0:0.001:10; %产生时间矢量t
x=sin(2*pi*t); %生成正弦信号x
snr=20; %设定加性高斯白噪声的功率snr
px=norm(x).^2/length(x); %计算信号x的功率
pn=px./(10.^(snr./10)); %根据snr计算噪声功率
n=sqrt(pn)*randn(1,length(x)); %根据噪声功率产生相应的高斯白噪声序列
y=x+n; %在信号上叠加高斯白噪声
subplot(2,2,1); %定义第一个图像
plot(t,x,'g-'); %画出原始信号
title('正弦信号x'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('x=sin(2Πt)'); %对纵轴进行说明
subplot(2,2,2); %定义第二个图像
plot(t,y,'r-'); %画出叠加了噪声后的信号
title('叠加了高斯白噪声后的正弦信号y'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('y=x+n'); %对纵轴进行说明
subplot(2,2,3); %定义第三个图像
plot(t,n,'b-'); %画出噪声功率产生相应的高斯白噪声序列
title('信号x的功率'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('n'); %对纵轴进行说明
subplot(2,2,4); %定义第四个图像
plot(t,pn,'m.'); %画出噪声功率
title('噪声方差'); %对图像主题的说明
xlabel('t'); %对横轴进行说明
ylabel('pn'); %对纵轴进行说明
2.实验结果
计算得到噪声功率为0.005.