• m基于MATLAB数字调制解调仿真,包括ASK,FSK,DPSK及MDPSK,对比误码率


    目录

    1.算法概述

    2.仿真效果预览

    3.MATLAB部分代码预览

    4.完整MATLAB程序


    1.算法概述

           振幅键控(也称幅移键控),记做ASK,或称其为开关键控(通断键控),记做OOK 。二进制数字振幅键控通常记做2ASK。

             对于振幅键控这样的线性调制来说,在二进制里,2ASK是利用代表数字信息“0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时续的输出,有载波输出时表示发送“1”,无载波输出时表示发送“0”。根据线性调制的原理,一个二进制的振幅调制信号可以表示完成一个单极性矩形脉冲序列与一个正弦型载波的乘积。

           在二进制频移键控(2FSK)中,当传送“1”码时对应于载波频率,传送“0”码时对应于载波频率。 2FSK信号波形可看作两个2ASK信号波形的合成,下图是相位连续的2FSK信号波形。


    ————————————————

           2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图4-4所示。

            在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。

    2.仿真效果预览

    matlab2022a仿真

     

     

    3.MATLAB部分代码预览

    1. i=10;
    2. j=5000;
    3. t=linspace(0,5,j);
    4. fc=10;
    5. fm=i/5;
    6. B=2*fc;
    7. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号
    8. a=round(rand(1,i));%随机序列
    9. figure(2)
    10. plot(rand(1,i))
    11. st=t;
    12. for n=1:10
    13. if a(n)<1;
    14. for m=j/i*(n-1)+1:j/i*n
    15. st(m)=0;
    16. end
    17. else
    18. for m=j/i*(n-1)+1:j/i*n
    19. st(m)=1;
    20. end
    21. end
    22. end
    23. figure(1);
    24. subplot(421);
    25. plot(t,st);
    26. axis([0,5,-1,2]);
    27. title('基带信号');
    28. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波
    29. s1=cos(2*pi*fc*t);
    30. subplot(422);
    31. plot(s1);
    32. title('载波信号');
    33. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制
    34. e_2ask=st.*s1;
    35. subplot(423);
    36. plot(t,e_2ask);
    37. title('已调信号');
    38. noise =rand(1,j);
    39. e_2ask=e_2ask+noise;%加入噪声
    40. subplot(424);
    41. plot(t,e_2ask);
    42. title('加入噪声的信号');
    43. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调
    44. at=e_2ask.*cos(2*pi*fc*t);
    45. at=at-mean(at);
    46. subplot(425);
    47. plot(t,at);
    48. title('相乘后信号');
    49. [f,af] = T2F(t,at);%通过低通滤波器
    50. [t,at] = lpf(f,af,2*fm);
    51. subplot(426);
    52. plot(t,at);
    53. title('解调后波形');
    54. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决
    55. for m=0:i-1;
    56. if at(1,m*500+250)+0.5<0.5;
    57. for j=m*500+1:(m+1)*500;
    58. at(1,j)=0;
    59. end
    60. else
    61. for j=m*500+1:(m+1)*500;
    62. at(1,j)=1;
    63. end
    64. end
    65. end
    66. subplot(427);
    67. plot(t,at);
    68. axis([0,5,-1,2]);
    69. 01-016m

    4.完整MATLAB程序

    matlab源码说明_我爱C编程的博客-CSDN博客

    V

  • 相关阅读:
    【附源码】计算机毕业设计JAVA医院住院综合服务管理系统
    如何调整 Kubernetes StatefulSet 卷的大小
    11.10~11.15置信区间,均值、方差假设检验,正态,t,卡方,F分布,第一第二类错误
    8Manage PM:通过项目管理信息系统做好进度管控
    Linux C语言开发-D4数据类型
    Spring Task使用介绍
    Spring Security详细讲解(JWT+SpringSecurity登入案例)
    控制台程序
    C++ Reference: Standard C++ Library reference: C Library: cstdio: fflush
    js笔试题(four)
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/127927307