找回密码
 注册
关于网站域名变更的通知
查看: 468|回复: 1
打印 上一主题 下一主题

Matlab之DPSK

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-24 09:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 haidaowang 于 2020-7-24 11:16 编辑 ) V4 E/ I; @5 F9 R' a

& b& k1 }& k  ~Matlab之DPSK
2 K, [$ u$ {; P. C, R3 k2 e& w+ ~# O% w

. Q3 O8 p7 I/ p- P( r
  • % communication DPSK demodulation
  • % name:Chen Yu
  • % student ID:12353032
  • function Lab9
  • %
  • % 参数设置
  • %
  • Ts=1/100;                    %码元周期
  • Rs=1/Ts;                     %码元频率
  • n1=10;                       %载波频率系数
  • fc=Rs*n1;                    %载波频率
  • n2=64;                       %采样频率系数
  • fs=fc*n2;                    %采样频率,N_sample = 640
  • N_sample=fs*Ts;              %每个码元的抽样点数=n1*n2,经测试小于128时,效果较差
  • dt=Ts/N_sample;              %抽样时间间隔
  • N=10;                        %码元数
  • t=0:dt: ((N+1)*N_sample-1)*dt;%传输序列持续时间,考虑了参考电平0
  • %
  • %基本码元g(t)=1,还有高斯白噪声
  • %
  • gt=cos(2*pi*fc*t(1:N_sample)+pi);  %相位pi对应码元1
  • %噪声,均值=0,标准差=0.01
  • noise=normrnd(0,0.1,1,length(t));
  • s=zeros(1,(N+1)*N_sample);%采样点
  • absolute_code    = randi([0,1],1,N);        %生成绝对码
  • relative_code    = zeros(1,N+1);
  • relative_code(1) = 0;                       %参考码元为0,为第一个码元
  • for  k = 2:N+1
  •     relative_code(k) = xor(absolute_code(k-1),relative_code(k-1));%生成相对码
  • end
  • %生成调制信号
  • s(1:N_sample) = -1*gt;
  • for i = 2:N+1
  •     if relative_code(i) == 1                         %得到波形图
  •         s((i-1)*N_sample+1:i*N_sample) = gt;         %码元为1
  •     else
  •         s((i-1)*N_sample+1:i*N_sample) = -1*gt;      %码元为0
  •     end
  • end
  • figure(1);
  • plot(t,s);
  • title('调制信号前两个码元');
  • axis([0,0.02,-1.5,1.5]);
  • grid on
  • %加入高斯白噪声
  • st = s + noise;
  • figure(2);
  • plot(t,st);
  • title('加入高斯白噪声后,调制信号前两个码元');
  • axis([0,0.02,-1.5,1.5]);
  • grid on
  • %带通滤波,去除AWGN
  • w1       = 2*(fc-Rs)/fs;           %下截止频率
  • w2       = 2*(fc+Rs)/fs;           %上截止频率
  • numerator= fir1(60,[w1,w2]);       %FIR滤波器,numerator是FIR滤波器的系数
  • sfBandpass=filter(numerator,1,st); %st为时间信号
  • figure(3);
  • plot(t,sfBandpass);
  • title('通过带通滤波器后,调制信号前两个码元');
  • axis([0,0.02,-1.5,1.5]);
  • grid on
  • %进行相干解调
  • sfModulation = sfBandpass.*cos(2*pi*fc*t);
  • figure(4);
  • plot(t,sfModulation);
  • title('通过解调后,解调信号前两个码元');
  • axis([0,0.02,-1.5,1.5]);
  • grid on
  • %低通滤波
  • w1       = [];
  • w2       = 2*(Rs)/fs;              %截止频率
  • numerator= fir1(60,[w1,w2]);       %FIR滤波器,numerator是FIR滤波器的系数
  • sfLowpass=filter(numerator,1,sfModulation); %st为时间信号
  • figure(5);
  • plot(t,sfLowpass);
  • title('通过低通滤波器后的调制信号');
  • axis([0,0.1,-1.5,1.5]);
  • grid on
  • %抽样判决,我选取的是中间时刻
  • decide=zeros(1,N+1);
  • for k=1:N+1
  •     if(sfLowpass((k-1)*N_sample+N_sample/2)>0)
  •         decide(k)=1;
  •     else
  •         decide(k)=0;
  •     end
  • end
  • %还原绝对码
  • get_absolute_code = zeros(1,N);
  • for j = 1:N
  •     get_absolute_code(j) = xor(decide(j),decide(j+1));
  • end
  • %画出绝对码前后对比
  • n=1:N;
  • %输出原始码元
  • figure(6);
  • stem(n,absolute_code,'r','LineStyle','none');
  • %输出解调码元
  • hold on
  • stem(n,get_absolute_code,'*','b','LineStyle','none');
  • hleg=legend('原始码元','解调码元');
  • set(hleg,'Location','Northeast');
    6 m4 H, }9 E8 D

' ^8 ^! f" h6 O/ S" I, I
! t) Y  B7 e; E; d& j

0 i0 @# ^/ R9 X5 B6 U! _
' e' C$ K! Y& L7 z. E* U
  H4 r4 L0 u: Q+ `: `+ g3 k  s) F& R0 z
& t# p" i& q  c+ o. ^% O/ S/ j
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-7-24 11:15 | 只看该作者
    Matlab之DPSK
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-24 05:53 , Processed in 0.062500 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表