matlab实验报告 数字调制解调

时间:2024.4.20

实验报告

一、实验目的、要求

掌握掌握数字调制以及对应解调方法的原理。

掌握数字调制解调方法的计算机编程实现方法,即软件实现。

二、实验原理

二进制数字频率调制(2FSK) 

二进制数字频率调制,简称频移键控2FSK,是利用二进制数字基带信号控制载波的频率,进行频谱变换的过程。在发送端,由基带信号控制载波,用不同频率的载波振荡信号来传输数字信号“1”和“0”;接收端则根据不同频率的载波信号,将其还原成相应的数字基带信号。

PSK调制

在PSK调制时载波的相位随调制信号状态不同而改变。如果两个频率相同的载波同时开始振荡这两个频率同时达到正最大值同时达到零值同时达到负最大值此时它们就处于“同相”状态如果一个达到正最大值时另一个达到负最大值则称为“反相”。把信号振荡一次一周作为360度。如果一个波比另一个波相差半个周期两个波的相位差180度也就是反相。当传输数字信号时“1”码控制发0度相位“0”码控制发180度相位。

三、实验环境

PC机,Windows2000,office2000,Matlab6.5以上版本软件。

、实验内容、步骤

实验内容

已知消息信号为一个长度为8的二进制序列;载波频率为,采样频率为4KHz。编程实现一种调制、传输、滤波和解调过程。

实验步骤

根据参数产生消息信号s和载波信号。调用函数randint生成随机序列。

编程实现调制过程。调用函数y=fskmod(s,M,FREQ_SEP,NSAMP)完成频率调制,y=pskmod(s,M) 完成相位调制,或者。调用函数modulate完成信号调制。

编程实现信号的传输过程。产生白噪声noise,并将其加到调制信号序列。或者调用函数awgn完成。

编程实现信号的解调。x=fskdemod(y,M, FREQ_SEP,NSAMP) 完成FSK信号的解调,x=pskdemod(y,M) 完成PSK调制信号的解调。或者调用demodulate完成解调。

计算误码率。调用函数symerr完成误码率计算。

五、实验过程、数据记录、分析及结论

 

FSK调制

频率差值设200HZ,如下图:

对信号序列和FSK调制信号做傅里叶变换后右图

通过AWGN函数加入高斯白噪声,信噪比为20dB。

加噪声后的波形及频谱如下,解调后的输出为右图。

  

psk调制

下图是2-psk的实验结果,其中fs=4000Hz,fc=800Hz

序列及调制波形如左图,调制信号的频谱图如右图。

加入信噪比为10dB的噪声后,信号及频谱的波形为左图,解调后的输出如右图。

频谱图如下:

 

 


六、讨论

在初次使用fskmod这个函数的时候,画出的图形没有明显看出频率差异,以为是出错了,之后经过看fskmod的程序才发现,他是将频率调制到正负两个相同大小的频率上,所以画图看不出频率差异。之后经过调整,将-M/2~M/2改成0~M/2,解决了这个问题。要注意的是,还需要将fskdemod的程序也做相应更改,否则解调会出错。


第二篇:matlab_HDB3编码译码数字信号调制解调


一、HDB3码的编码和译码

1、实验要求:掌握HDB3码的编码规则,利用MATLAB设计并实现HDB3码的编码和译码。

2、原理简述:

编码规则:

  1) 先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;

  2) 若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);

  3) 为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。

 例如:

  消息代码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1

  AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1

  HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1

简易编码方法:

原理:HDB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者。

  1)把"0000"换为取代节。

  规则:先将"0000"分离开来,第一个"0000"直接变为"000V",然后数相邻两个"0000"之间"1"的个数,奇数则变为"000V",偶数则变为" B00V"。

  2)更新符号。

  根据教材有:B总是与其前面的1或V符号相反,V总是与前面的1或B相符号相同,1总是与前面的V或B符号相反,就可以编符号了。

 例如:

  消息代码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1

  中间码: 1 0 0 0 V 1 0 0 0 V 1 1 B 0 0 V 1 1 B 0 0 V B 0 0 V 1 1 1 0 0 0 V 1

HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 + V -1 +1 -B 0 0 -V +B 0 0 +V -1 +1 -1 0 0 0 -V +1

解码规则:

1)虽然编码很复杂,但解码规则很简单,若3连“0”前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1 就应该译成“10000”;若2连 “0”前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000.

2)再将所有的-1变换成+1后,就可以得到原消息代码。

3、程序运行结果

 


运行程序

   可自定义二进制序列,第一个窗口显示所输入的二进制码元,第二个窗口为HDB3编码后的结果,最后一个窗口为解码后的窗口。

4、程序源代码

% ch7example6prog1.m

                                               % AMI码的编码

xn=[1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0];% 输入单极性码

yn=xn;% 输出yn初始化

num=0;% 计数器初始化

for k=1:length(xn)

   if xn(k)==1

      num=num+1;                % "1"计数器

         if num/2 == fix(num/2) % 奇数个1时输出-1,进行极性交替

              yn(k)=1;

         else

              yn(k)=-1;

         end

    end

end

        % HDB3编码

num=0;  % 连零计数器初始化

yh=yn;  % 输出初始化

sign=0; % 极性标志初始化为0

V=zeros(1,length(yn));% V脉冲位置记录变量

B=zeros(1,length(yn));% B脉冲位置记录变量

for k=1:length(yn)

   if yn(k)==0

       num=num+1;  % 连“0”个数计数

       if num==4   % 如果4连“0”

         num=0;    % 计数器清零

         yh(k)=1*yh(k-4);

                            % 让0000的最后一个0改变为与前一个非零符号相同极性的符号

         V(k)=yh(k);        % V脉冲位置记录

         if yh(k)==sign     % 如果当前V符号与前一个V符号的极性相同

            yh(k)=-1*yh(k); % 则让当前V符号极性反转,以满足V符号间相互极性反转要求

            yh(k-3)=yh(k);  % 添加B符号,与V符号同极性

            B(k-3)=yh(k);   % B脉冲位置记录

            V(k)=yh(k);     % V脉冲位置记录

            yh(k+1:length(yn))=-1*yh(k+1:length(yn));

                            % 并让后面的非零符号从V符号开始再交替变化

         end

       sign=yh(k);          % 记录前一个V符号的极性

     end

  else

      num=0;                % 当前输入为“1”则连“0”计数器清零

  end

end                         % 编码完成

re=[xn',yn',yh',V',B'];     % 结果输出: xn AMI HDB3 V&B符号

                            % HDB3解码

input=yh;                   % HDB3码输入

decode=input;               % 输出初始化

sign=0;                     % 极性标志初始化

for k=1:length(yh)

    if input(k) ~= 0

       if sign==yh(k)       % 如果当前码与前一个非零码的极性相同

          decode(k-3:k)=[0 0 0 0];% 则该码判为V码并将*00V清零

       end

       sign=input(k);       % 极性标志

    end

end

decode=abs(decode);         % 整流

error=sum([xn'-decode']);   % 解码的正确性检验,作图

subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);

subplot(3,1,2);stairs([0:length(xn)-1],yh);axis([0 length(xn) -2 2]);

subplot(3,1,3);stairs([0:length(xn)-1],decode);axis([0 length(xn) -2 2]);

二、数字带通系统的调制解调

1、实验要求:利用MATLAB程序设计语言实现数字带通系统的调制解调。

2、原理简述:

数字调制:用数字基带信号控制载波,把数字基带信号变换为数字带通信号(已调信号)的过程成为数字调制。

数字调制与模拟调制的基本原理相同,但数字信号有离散取值的特点。因此数字调制技术有两种方法:①利用模拟调制的方法实现数字调制,即把数字调制看成是模拟调制的特例把数字基带信号当成是模拟信号的特殊情况处理;②利用数字信号的离散取值特点通过开关键控制载波,从而实现数字调制。这种方法称为键控法,比如对载波的振幅,频率和相位进行键控,便可得到振幅键控ASK,频移键控FSK和相移键控PSK三种基本的数字调制方式。

振幅键控ASK

振幅键控利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK中,载波的幅度只有两种变化状态,分别为对应二进制信息“0”或“1”。常用的二进制振幅键控方式称为通断键控,2ASK信号的一般表达式为                    其中

 


2ASK有两种基本的解调方法:非相干解调和相干解调,解调方式如下:

非相干解调方式:

带通滤波器——全波整流器——低通滤波器——抽样判决器——输出

想干解调方式:

带通滤波器——相乘器——低通滤波器——抽样判决器——输出

频移键控FSK

频移键控是利用载波的频率变化来传递数字信息。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点检变化。一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加。其产生方式有两种:①采用模拟调频来实现②也可采用键控法实现,即在二进制基带矩形序列的控制下通过开关电路对两个不同的独立频率源进行选通。但相邻码元之间的相位不一定连续。

2FSK信号的常用解调方法也采用相干解调和非相干解调两种方式。其解调原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决。

相移键控PSK

二进制相移键控2PSK

相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和π分别表示二进制“1”和“0”。与2ASK信号的产生方式相比,只是对s(t)的要求不同,在2ASK中是单极性的,而在2PSK中是双极性的基带信号。

2PSK信号的解调通常采用相干解调法。

二进制差分相移键控2DPSK

2PSK相干解调时,由于载波恢复中相位有0、π模糊性,导致解调过程出现“反向工作”现象,恢复出的数字信号“1”“0”倒置,使得2PSK难以实际应用。而2DPSK是利用前后相邻码元的载波相对相位变化传递数字信息,对于相同的基带数字信息序列,由于初始相位不同,2DPSK的相位可以不同。也就是说,2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信号符号。

2DPSK信号的解调方法为相干解调(极性比较法)加码反变换法。

其原理为:

带通滤波器——相乘器——低通滤波器——抽样判决器——码反变换——输出

3、程序运行结果

2ASK调制后的信号以及2ASK解调后的信号

2PSK基带信号,2PSK调制后的信号以及2PSK解调后的信号

2FSK调制后的信号以及使用2FSK解调后的信号

随机产生得二进制原始信号以及2DPSK调制之后得信号

使用2DPSK解调之后的信号

4、程序源代码

2ASK

clear all;

clear;

N=10;                   %调制序列的长度

fc=20;                  %载波频率

datat=0.01;             %时域采样间隔

data=1/datat;

df=0.01  ;                %频率分辨率

t=0:datat:N;            %设每个码元长度为1ms 时间矢量:0:N

m=randint(1,N);         %产生调制序列

fs=1/datat;

c=cos(2*pi*fc*t);

for i=1:length(m)

    if(m(i)==1)

        for j=1:1/datat;

            ask_pre(j+(i-1)*(1/datat))=1;

        end

    elseif(m(i==0))

            ask_pre(j+(i-1)*(1/datat))=0;

    end

end

ask_pre=[ask_pre,m(i)];

ask=ask_pre.*c;

[ask_F,ask,df1]=fftseq(ask,datat,df);

[C,c,df1]=fftseq(c,datat,df);

[M,ask_pre,df1]=fftseq(ask_pre,datat,df);

f=[0:df1:df1*(length(c)-1)]-fs/2;

subplot(2,1,1);plot(t,ask_pre(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('未调信号');ylabel('幅值 :v');

subplot(2,1,2);plot(t,ask(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('2ASK信号');ylabel('幅值 :v');

%--------------------------------------------------------------------------

%---------------------         解调          ------------------------------

%--------------------------------------------------------------------------

ask_n=(ask_pre+rand(1,length(ask_pre))).*c;  %(高斯白噪声)

[ask_NF,ask_n,df1]=fftseq(ask_n,datat,df);

f_strain=8;

n_off=floor(f_strain/df1);

f=[0:df1:df1*(length(ask)-1)]-fs/2;

n0=floor((fc-8)/df1):floor((fc+8)/df1);

BP=zeros(1,length(f));

BP(min(n0):max(n0))=ones(1,length(n0)); %带通滤波器设计

BP(length(BP)-max(n0):length(BP)-min(n0))=ones(1,length(n0));

H=zeros(1,length(f));

H(1:n_off)=2*ones(1,n_off);          % 矩形窗截取

H(length(f)-n_off+1:length(f))=2*ones(1,n_off);

%H(1:n_off)=2*hamming(n_off);            %hamning窗截取

%H(length(f)-n_off+1:length(f))=2*hamming(n_off); 

BP1=BP.*ask_F;

BPN=BP.*ask_NF;

ask_re1=ifft(BP1);

ask_ren1=ifft(BPN);

ask_re=2*ask_re1.*c;         %相干解调法

ask_ren=2*ask_ren1.*c; %相干解调(高斯白噪声)

[ask_reF,ask_re,df1]=fftseq(ask_re,datat,df);

[ask_reNF,ask_ren,df1]=fftseq(ask_ren,datat,df);

D1=H.*ask_reF;

DN=H.*ask_reNF;

d1=ifft(D1);

dn=ifft(DN);

for i=1 : length(m)                                                                           % 判决

    if(d1((i-1)*(1/datat)+(1/(2*datat)))>=0.5)                                               % 判决规则:d1>0.5  => 1

            m_de(i)=1;                                                                        % 否则     d1<0.5  => 0       

            for j=1:1/datat

                d11(j+(i-1)*(1/datat))=1;            %为了画解调波形需要

            end

    else    m_de(i)=0;

            for j=1:1/datat

                d11(j+(i-1)*(1/datat))=0;            %为了画解调波形需要

            end

    end

end

for i=1 : length(m)                                                                           % 判决

    if(dn((i-1)*(1/datat)+(1/(2*datat)))>=0.5)                                               % 判决规则:d1>0.5  => 1

            m_den(i)=1;                                                                        % 否则     d1<0.5  => 0       

            for j=1:1/datat

                dnn(j+(i-1)*(1/datat))=1;            %为了画解调波形需要

            end

    else    m_den(i)=0;

            for j=1:1/datat

                dnn(j+(i-1)*(1/datat))=0;            %为了画解调波形需要

            end

    end

end

figure(2);

subplot(4,1,1);plot(t,ask(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间');title('解调器接收波形');

subplot(4,1,2);plot(t,ask_re1(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间');title('经过带通滤波器波形');

subplot(4,1,3);plot(t,d1(1:length(t)));axis([0,N,-0.5,2.5]);xlabel('时间');title('经过低通滤波器波形');

subplot(4,1,4);plot(t(1:length(d11)),d11);axis([0,N,-1.5,1.5]);xlabel('时间');title('经过判决器波形');

2FSK

clear;

N=20;                   %调制序列的长度

fc=5;                   %载波基频

datat=0.01;             %时域采样间隔

fs=1/datat;             %频率分辨率

df=0.01                 %频率缩放系数

t=0:datat:N;            %设每个码元长度为1ms 时间矢量:0:N

m=randint(1,N);         %产生调制序列

for i=1:length(m)

    if(m(i)==1)

        for j=1:1/datat;

            fsk_f(j+(i-1)*(1/datat))=4;     %1码的载波基波倍频系数  20hz

             mm(j+(i-1)*(1/datat))=1;       %为了画码元时域波形需要 

        end

    elseif(m(i)==0)

        for j=1:1/datat;

            fsk_f(j+(i-1)*(1/datat))=1;     %0码的载波基波倍频系数  5hz

            mm(j+(i-1)*(1/datat))=0;        %为了画码元时域波形需要

        end

    end

end

if(m(i)==1)  nn=4;                         

else   nn=1;

end

fsk_f=[fsk_f,nn];                          %使fsk_f的长度与t相同

fsk_c=fsk_f*fc;                            %根据不同的倍频系数产生不同的载波频率

c=cos(2*pi*fsk_c.*t);                      %2fsk信号产生

[C,c,df1]=fftseq(c,datat,df);              %2fsk信号的傅立叶变换

[MM,mm,df1]=fftseq(mm,datat,df);           %基带信号的傅立叶变换

f=[0:df1:df1*(length(mm)-1)]-fs/2;         %频率作图矢量

figure(1);

subplot(2,1,1);plot(t,mm(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('未调信号');ylabel('幅值 :v');

subplot(2,1,2);plot(t,c(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('2FSK信号');ylabel('幅值 :v');

%--------------------------------------------------------------------------

%----------------               解调          -----------------------------

%--------------------------------------------------------------------------

B0=[fc-2,fc+2];      %0码频带宽

B1=[fc*4-2,fc*4+2];  %1码频带宽

n0=floor((fc-2)/df1):floor((fc+2)/df1);

n1=floor((4*fc-2)/df1):floor((4*fc+2)/df1);

H0=zeros(1,length(C));

H0(min(n0):max(n0))=ones(1,length(n0)); %滤波器设计(0码带通滤波器)

H0(length(H0)-max(n0):length(H0)-min(n0))=ones(1,length(n0));

H1=zeros(1,length(C));

H1(min(n1):max(n1))=ones(1,length(n1)); %滤波器设计(1码带通滤波器)

H1(length(H1)-max(n1):length(H1)-min(n1))=ones(1,length(n1));

n_off0=fc/df1;

n_off1=4*fc/df1;

L0=zeros(1,length(C));                 %(0码低通滤波器)

L0(1:n_off0)=2*ones(1,n_off0);

L0(length(L0)-n_off0+1:length(L0))=2*ones(1,n_off0);

L1=zeros(1,length(C));                 % %(1码低通滤波器)

L1(1:n_off1)=2*ones(1,n_off1);

L1(length(L1)-n_off1+1:length(L1))=2*ones(1,n_off1);

C0=C.*H0;

C1=C.*H1;

m0=ifft(C0);

m1=ifft(C1);

mm0=abs(m0);                 %包络检波

mm1=abs(m1);

[MM0,mm0,df1]=fftseq(mm0,datat,df);

[MM1,mm1,df1]=fftseq(mm1,datat,df);

MM0=MM0.*L0;

MM1=MM1.*L1;

mm0=ifft(MM0);

mm1=ifft(MM1);

for i=1 : length(m)                                                                           % 比较器判决

    if(abs(m0((i-1)*(1/datat)+(1/(2*datat))))>=abs(m1((i-1)*(1/datat)+(1/(datat*2)))))        % 判决规则:mo>m1 => 0

            m_de(i)=0;                                                                        % 否则   => 1       

            for j=1:1/datat

                m_anti(j+(i-1)*(1/datat))=0;            %为了画解调波形需要

            end

    else    m_de(i)=1;

            for j=1:1/datat

                m_anti(j+(i-1)*(1/datat))=1;            %为了画解调波形需要

            end

    end

end

m_anti=[m_anti,m_de(i)];

figure(2)

subplot(5,1,1);plot(t,m0(1:length(t)));xlabel('时间');  title('经过带通滤波器1后波形');

subplot(5,1,2);plot(t,m1(1:length(t))); xlabel('时间');  title('经过带通滤波器2后波形');

subplot(5,1,3);plot(t,mm0(1:length(t)));xlabel('时间');axis([0,N,-0.1,2]);  title('经过低通滤波器1后波形');

subplot(5,1,4);plot(t,mm1(1:length(t))); xlabel('时间'); axis([0,N,-0.1,2]); title('经过低通滤波器2后波形');

subplot(5,1,5);plot(t,m_anti(1:length(t))); xlabel('时间'); axis([0,N,-0.5,1.5]); title('经过比较起判决后波形');

2PSK

clear;

N=10;                   %调制序列的长度

fc=10;                   %载波频率

datat=0.01;             %时域采样间隔

fs=1/datat;             %频率分辨率

df=0.01                 %频率缩放系数

t=0:datat:N;            %设每个码元长度为1ms 时间矢量:0:N

m=randint(1,N);         %产生调制序列

%--------------------------------------------------------------------------

%--------------------              调制              ----------------------

%--------------------------------------------------------------------------

for i=1:length(m)

    if(m(i)==1)

        for j=1:1/datat;

            psk_p(j+(i-1)*(1/datat))=pi;          %1码的对应的相位为[pi](采用a方式)

            mm(j+(i-1)*(1/datat))=1;                %为了画码元时域波形需要

        end

    elseif(m(i)==0)

        for j=1:1/datat;

            psk_p(j+(i-1)*(1/datat))=0;        %0码的对应的相位为[0](采用a方式)

            mm(j+(i-1)*(1/datat))=0;                   %为了画码元时域波形需要

        end

    end

end

if(m(i)==1)  nn=pi/2;                         

else   nn=-(pi/2);

end

psk_p=[psk_p,nn];                          %使p的长度与t相同,psk_p为根据不同码元产生不同的调制相位

c=cos(2*pi*fc*t+psk_p);                    %2psk信号产生

[C,c,df1]=fftseq(c,datat,df);              %2fsk信号的傅立叶变换

[MM,mm,df1]=fftseq(mm,datat,df);           %基带信号的傅立叶变换

f=[0:df1:df1*(length(mm)-1)]-fs/2;         %频率作图矢量

subplot(2,1,1);plot(t,mm(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('未调信号');ylabel('幅值 :v');

subplot(2,1,2);plot(t,c(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间 ms');title('2PSK信号');ylabel('幅值 :v');

%--------------------------------------------------------------------------

%-------------------              解调                ---------------------

%--------------------------------------------------------------------------

carwav=2*cos(2*pi*fc.*t);

[CF,carwav,df1]=fftseq(carwav,datat,df);

n_off=(fc-1)/df;

n0=floor((fc-2)/df1):floor((fc+2)/df1);

BP=zeros(1,length(f));

BP(min(n0):max(n0))=ones(1,length(n0)); %带通滤波器设计

BP(length(BP)-max(n0):length(BP)-min(n0))=ones(1,length(n0));

H=zeros(1,length(f));

H(1:n_off)=2*ones(1,n_off);          % 低通滤波器设计 (矩形窗截取)

H(length(f)-n_off+1:length(f))=2*ones(1,n_off);

CC=C.*BP;                           %接受时经过一个带通滤波器

cc=ifft(CC);                        %反福利也变换

c_re=cc.*carwav;                   %乘以载波进行相干解调

cc1=c_re;

[c_reF,c_re,df1]=fftseq(c_re,datat,df);

c_reF=c_reF.*H;                    %经过低通滤波器

c_ref=ifft(c_reF);

for i=1 : length(m)                                                                           % 判决

    if(c_ref((i-1)*(1/datat)+(1/(2*datat)))<0)                                               % 判决规则:  >0  => 0

            m_de(i)=1;                                                                        % 否则      <0  => 1      

            for j=1:1/datat

                c_de(j+(i-1)*(1/datat))=1;            %为了画解调波形需要

            end

    else    m_de(i)=0;

            for j=1:1/datat

                c_de(j+(i-1)*(1/datat))=0;            %为了画解调波形需要

            end

    end

end

c_de=[c_de,c_re(i)];

figure(2);

subplot(5,1,1);plot(t,c(1:length(t)));axis([0,N,-2,2]);    xlabel('时间 ms');title('调制信号');ylabel('幅值 :v');

subplot(5,1,2);plot(t,carwav(1:length(t)));axis([0,N,-2,2]);xlabel('时间 ms');title('载波恢复');ylabel('幅值 :v');

subplot(5,1,3);plot(t,c_re(1:length(t)));axis([0,N,-2,2]);xlabel('时间 ms');title('载波相乘');ylabel('幅值 :v');

subplot(5,1,4);plot(t,c_ref(1:length(t)));axis([0,N,-2.5,2.5]);xlabel('时间 ms');title('低通滤波后信号');ylabel('幅值 :v');

subplot(5,1,5);plot(t,c_de(1:length(t)));axis([0,N,-0.2,1.5]);xlabel('时间 ms');title('相干解调信号');ylabel('幅值 :v');

更多相关推荐:
数字调制实验报告

武夷学院实验报告课程名称项目名称姓名专业班级学号同组成员1注1实验准备部分包括实验环境准备和实验所需知识点准备2若是单人单组实验同组成员填无2注实验过程记录要包含实验步骤页码不够可自行添加实验报告成绩百分制实验...

2.数字调制 - 通信原理实验报告

计算机与信息工程学院验证性实验报告一实验目的1掌握绝对码AK相对码BK的概念以及它们之间的关系2掌握用键控法产生2ASK2FSK2DPSK信号的方法3掌握BK与2PSK信号波形之间的关系AK与2DPSK信号波形...

《通信原理》数字调制实验报告

武夷学院实验报告课程名称通信原理项目名称数字调制姓名专业班级学号同组成员为K1注1实验预习部分包括实验环境准备和实验所需知识点准备2若是单人单组实验同组成员填无2注实验过程记录要包含实验目的实验原理实验步骤页码...

实验指导书(实验2-数字调制解调Ⅱ)

实验二数字调制解调实验1实验目标本实验的目的是使用USRP来实现发射和接收射频信号并且通过LabVIEW来实现对不同调制信号的同步性能的对比由于你在实验一中已经完成了数字调制的实验所以在做这部分实验时需要用到之...

数字调制技术ASK FSK PSK实验报告

MATLAB专用周实践报告数字调制技术ASKFSKPSK专业通信工程班级1020xx2学号06姓名周凯1一二进制数字调制技术原理数字信号的传输方式分为基带传输和带通传输在实际应用中大多数信道具有带通特性而不能直...

通信原理实验报告模板-数字调制和解调

华北电力大学实验报告华北电力大学实验报告实验名称课程名称专业班级学生姓名学号成绩指导教师实验日期华北电力大学实验报告华北电力大学实验报告华北电力大学实验报告华北电力大学实验报告

中南大学通信原理实验报告实验二 数字调制

中南大学通信原理实验报告学生姓名学生学号学院信息科学与工程学院专业班级完成时间实验二数字调制一实验目的1掌握绝对码相对码概念及它们之间的变换关系2掌握用键控法产生2ASK2FSK2DPSK信号的方法3掌握相对码...

实验二 数字调制系统实验

实验报告要求必读实验报告要求1不要封面简述实验原理2实验31中根据实验测试记录画出FSK测试点波形并给以必要的说明3实验32中根据实验测试记录画出PSKDPSK测量点的工作波形并给以必要的说明实验三数字调制解调...

实验四 数字调制

实验四数字调制一实验目的1掌握绝对码相对码概念及它们之间的变换关系2掌握用键控法产生2ASK2FSK2DPSK信号的方法3掌握相对码波形与2PSK信号波形之间的关系绝对码波形与2DPSK信号波形之间的关系1了解...

实验二 数字调制

20xx0401310074实验二数字调制一实验目的1掌握绝对码相对码概念及它们之间的变换关系2掌握用键控法产生2ASK2FSK2DPSK信号的方法3掌握相对码波形与2PSK信号波形之间的关系绝对码波形与2DP...

FSK调制系统实验报告

实验四FSK调制系统一实验仪器PC机一台JQNIOS2C35实验箱一台及辅助软件DSPBuilderMatlabSimulinkQuartusIIModelsim二实验目的1初步了解JQNIOS2C35实验箱的...

DBPSK调制及解调实验报告

实验六DBPSK调制及解调实验一实验目的1掌握DBPSK调制和解调的基本原理2掌握DBPSK数据传输过程熟悉典型电路3熟悉DBPSK调制载波包络的变化4掌握DBPSK载波恢复特点与位定时恢复的基本方法二实验器材...

数字调制实验报告(30篇)