MATLAB仿真噪声信号、单多音信号、LFM、2ASK、2FSK、BPSK、16QAM

背景:

  临近毕业整理毕业论文的资料时,看到了写论文时仿真的各类常见通信信号,当时每种信号的仿真的都找了挺久的,因为网上有的代码实现太复杂看不太懂,有的代码呈现的效果不太好,所以现在把这些MATLAB代码整理总结一下方便大家直接使用。本文仿真的信号类型有:高斯白噪声、噪声调幅信号、噪声调频信号、单音信号、多音信号、扫频信号、2ASK信号、2FSK信号、BPSK信号、16QAM信号。仿真时主要针对时域波形和频谱进行展示,并对当时的代码加注释方便大家理解。

1、高斯白噪声

  在分析通信系统的抗噪声性能时,因为通信系统中常见的热噪声近似为白噪声,且热噪声的取值恰好服从高斯分布,
所以常用高斯白噪声作为通信信道中的噪声模型。其中噪声的统计均值为 0,统计方差为1,并且高斯白噪声的幅值-频次统计直方图服从正态分布。仿真结果如图所示,图1是高斯白噪声的时域波形,图2是高斯白噪声的归一化功率,图3是高斯白噪声的统计信息和幅值用来验证高斯白噪声分布的特点,其中程序的最后两行分别计算了噪声的均值和方差验证是否均值=0方差=1,本次仿真的均值=5.3547e-4,接近于0,方差=0.9987,接近于1。

length = 1000000;
ff = 0:length-1;
noise = wgn(length,1,0);%生成100000*1个高斯白噪声,功率为0dBW(分贝瓦)
y1 = fft(noise,length);%采样点个数100000个
p1 = y1.*conj(y1);%conj()得到相应的复共轭数,y1.*conj(y1)就是模的平方
max_P=max(p1);%求功率的最大值
p1 =p1/(max_P);%除以最大值把功率谱归一化

subplot(2,2,1),plot(ff,noise(1:length)),axis([0 (length) -5 5]),xlabel('时间(s)'),ylabel('幅值(V)'),title('高斯白噪声波形');
subplot(2,2,2),plot(ff,p1(1:length)),axis([0 length 0 1]);xlabel('频率(Hz)');ylabel('功率');title('高斯白噪声归一化功率谱');
set(gca,'YTick',0:1:1);%设置逻辑值坐标轴为0和1,这样子就不会出现0-0.1-0.2^0.8-0.9-1的坐标,影响美观
subplot(2,2,3),hist(noise,40);axis([ -5 5 0 110000]);xlabel('幅值(V)');ylabel('频次');title('幅值-频次直方图');
mean_value = mean(noise)%计算噪声的均值,理论上应该是0
variance = var(noise)%计算噪声的方差,理论上应该为1,功率为0dBW(10*log1=0)

在这里插入图片描述
在这里插入图片描述

2、噪声调幅信号

  噪声调幅信号是是利用噪声作为调制信号,对载波信号进行AM调制,使得载波信号的振幅随基带噪声做随机变化,这里的噪声使用了上面的高斯白噪声进行调制。其中这里的上包络和下包络只是噪声信号的变形,不是噪声调幅信号真正的包络,只是为了便于理解调幅信号的本质所构造的辅助曲线。
  噪声调幅信号的公式为: J ( t ) = ( U 0 + U n ( t ) ) cos ⁡ ( w j t + φ ) , J(t)=\left(U_{0}+U_{n}(t)\right) \cos \left(w_{j} t+\varphi\right), J(t)=(U0+Un(t))cos(wjt+φ)其中, U 0 U_{0} U0是载波振幅, w j w_{j} wj是载波角频率, U n ( t ) U_{n}(t) Un(t)是基带噪声, φ φ φ[0,2π]内均匀分布。
  通过分析图中噪声信号和噪声调幅干扰信号的波形与功率谱,可以发现噪声调幅干扰信号具有以下特点:

  1) 噪声调幅干扰信号的功率谱由载波谱和对称旁瓣谱构成,旁瓣谱的形状与基带噪声功率谱的形状相似。

  2) 噪声调幅干扰信号的带宽为基带噪声带宽的两倍

fj=20e6;fs=4*fj; Tr=520e-6;
t1=0:1/fs:3*Tr-1/fs; N=length(t1);
u=wgn(1,N,0);%生成N*1个高斯白噪声,功率为0dBW(分贝瓦)
df1=fs/N;n=0:N/2;f=n*df1;
wp=10e6;ws=14e6;rp=1; rs=60;
[n1,wn1]=buttord(wp/(fs/2),ws/(fs/2),rp,rs);
[b,a]=butter(n1,wn1);
u1=filter(b,a,u);
p=0.1503*mean((u1.^2));
figure;subplot(2,2,1),plot(t1,u1),title('噪声信号波形'); axis([0,0.02e-4,-2,2]);xlabel('时间(s)');ylabel('幅度(V)');
subplot(2,2,2), j2=fft(u1);plot(f,10*log10(abs(j2(n+1)*2/N)));xlabel('频率(Hz)');ylabel('功率(dBW)');axis([0,4e7,-70,0]);title( '噪声信号功率谱');
u0=1;y=(u1+u0).*cos(2*pi*fj*t1+2);%噪声调幅信号的波形
u2=u1+u0;%上包络的波形
u3=-u0-u1;%下包络的波形
subplot(2,2,3), plot(t1,y,t1,u2,t1,u3),title( '噪声调幅信号时域波形'); axis([0,0.02e-4,-2,2]);xlabel('时间(s)');ylabel('幅度(V)');
subplot(2,2,4), J=fft(y);plot(f,10*log10(abs(J(n+1))));xlabel('频率(Hz)');ylabel('功率(dBW)');axis([0,4e7,-20,50]);title( '噪声调幅信号功率谱');

在这里插入图片描述

3、噪声调频信号

  噪声调频信号是是利用噪声作为调制信号,对载波信号进行FM调制,使得载波信号的频率随基带噪声做随机变化,这里的噪声同样使用了上面的高斯白噪声进行调制。
  噪声调频信号的公式为: J ( t ) = U j cos ⁡ ( w j t + 2 π K F M ∫ 0 t U n ( t ′ ) d t ′ + φ ) J(t)=U_{j} \cos \left(w_{j} t+2 \pi K_{FM} \int_{0}^{t} U_{n}\left(t^{\prime}\right) d t^{\prime}+\varphi\right) J(t)=Ujcos(wjt+2πKFM0tUn(t)dt+φ)其中, U 0

  • 175
    点赞
  • 1069
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值