《通信原理》加性高斯白噪声信道

        实验一:在正弦信号上叠加功率为-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.

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值