zoukankan      html  css  js  c++  java
  • 大毕设-matlab-AM调制解调

        博主大毕设关于数字下变频(DDC)的CUDA实现,预计工期比较长,所以留下一些文字记录。

      主要分为两部分工作,Matlab仿真部分和CUDA实现。

      由于很久没有仿真了,所以先用一个简单的AM调制仿真练手。具体代码如下:

        代码都是基础的所以就不解释了(环境matlab2016)

     1 clc;
     2 fm=100;     %信号频率
     3 fc=500;     %载波频率
     4 fs=5000;    %抽样频率
     5 Am=1;
     6 A=2;
     7 N=512;
     8 K=N-1;
     9 n=0:N-1;
    10 t=(0:1/fs:K/fs);
    11 yt=Am*cos(2*pi*fm*t);
    12 figure(1)
    13 subplot(1,1,1);plot(t,yt);title('频率为100HZ信号时域波形');
    14 
    15 y0=A+yt;
    16 y2=y0.*cos(2*pi*fc*n/fs);
    17 y3=fft(y2,N);
    18 q1=(0:N/2-1)*fs/N;
    19 mx1=abs(y3(1:N/2));
    20 figure(2)
    21 subplot(2,1,1);
    22 plot(t,y2);
    23 title('已调信号时域波形');
    24 subplot(2,1,2);
    25 plot(q1,mx1);
    26 title('已调信号频谱');
    27 yc=cos(2*pi*fc*t);
    28 figure(3);
    29 subplot(2,1,1),plot(t,yc),title('载波fc时域')
    30 n=0:N-1;
    31 yc1 = Am*cos(2*pi*fc*n/fs);
    32 y3=fft(yc1,N)
    33 q=(0:N/2-1)*fs/N
    34 mx=abs(y3(1:N/2));
    35 figure(3)
    36 subplot(2,1,2),plot(q,mx),title('载波fc频谱')
    37 N=512;
    38 n=0:N-1;
    39 y4=0.01*randn(1,length(t)); %产生高斯噪声
    40 w=y4.^2;                    %噪声功率
    41 figure(4);
    42 subplot(2,1,1);
    43 plot(t,y4);
    44 title('高斯白噪声时域波形');
    45 y5=fft(y4,N);
    46 q2=(0:N/2-1)*fs/N;
    47 mx2=abs(y5(1:N/2));
    48 figure(4);
    49 subplot(2,1,2);
    50 plot(q2,mx2);
    51 title('高斯白噪声频域波形');
    52 y6=y2+y4;
    53 figure(5);
    54 subplot(2,1,1);
    55 plot(t,y6);
    56 title('加噪声后时域信号')
    57 q3=q1;
    58 mx3=mx1+mx2;
    59 subplot(2,1,2);
    60 plot(q3,mx3);
    61 title('加噪声后频谱')
    62 
    63 
    64 yv=y6.*yc;   %乘以载波想干解调
    65 Ws=yv.^2;
    66 p1=fc-fm;
    67 [k,Wn,beta,ftype]=kaiserord([p1 fc],[1 0],[0.05 0.01],fs);%数字低通过滤波器
    68 window=kaiser(k+1,beta);%使用kaiser窗函数
    69 b=fir1(k,Wn,ftype,window,'noscale');%
    70 yt=filter(b,1,yv);
    71 yssdb=yt.*2-2;
    72 figure(6)
    73 subplot(2,1,1);
    74 plot(t,yssdb);
    75 title('经过低通已调信号时域波形')    ;%解调
    76 
    77 y9=fft(yssdb,N);
    78 mx=abs(y9(1:N/2));
    79 subplot(2,1,2);
    80 plot(q,mx);
    81 title('已调信号频域波形')

    实现效果如下:

     

  • 相关阅读:
    mysql备份还原
    matlab学习笔记一
    tic和toc用来记录matlab命令执行的时间
    Flume的JVM优化策略
    Linux中的grep -R命令详解
    Hadoop集群Unhealthy Nodes导致计算能力下降解决方法 (nodemanager处于Unhealthy Nodes)
    Java匿名内部类详解
    Error:java: Compilation failed: internal java compiler error 解决办法
    java基础知识体系
    使用flink SQL对接kafka 时,日志不报错,也没有数据输出,原因有哪几个方面
  • 原文地址:https://www.cnblogs.com/luoqingyu/p/6213171.html
Copyright © 2011-2022 走看看