以数字信号序列10110010为例,给出产生2ASK信号的MATLAB程序如下,波形图如图2所示。

t=0:2*pi/99:2*pi;         

m1=[];

c1=[];

for n=1:length(s)

if s(n)==0;

    m=zeros(1,100);

else s(n)==1;

    m=ones(1,100);

end

c=sin(f*t);

m1=[m1 m];

c1=[c1 c]

end

ask=c1.*m1;

subplot(211);

plot(m1)

title('原始信号');

axis([0 100*length(s) -0.1 1.1]);

subplot(212);

plot(ask)

title('ASK信号');

基于MATLAB的数字调制方法_hslogic

                                图 2   2ASK信号波形

    以数字信号序列10110010为例,给出产生2FSK信号的MATLAB程序如下

t=0:2*pi/99:2*pi;

m1=[];

c1=[];

b1=[];

for n=1:length(s)

    if s(n)==0;

        m=ones(1,100);

        c=sin(f2*t);

        b=zeros(1,100)

else s(n)==1;

        m=ones(1,100);

        c=sin(f1*t);

        b=ones(1,100)

    end

    m1=[m1 m];

    c1=[c1 c];

    b1=[b1 b];

end

    fsk=c1.*m1;

    subplot(211);

    plot(b1,'r')

    title('原始信号');

    axis([0 100*length(s) -0.1 1.1]);

    grid on;

    subplot(212);

    plot(fsk)

    title('2FSK信号');

grid on;

    在命令窗口中键入s的二进制代码和载波频率f1、f2,再输入函数名,就可以得到所对应的fsk信号输出,如输入以下指令:

s=[1 0 1 1 0 0 1 0];

f1=200;

f2=100;

fskdigital

    输出波形如图5所示,其中0信号所对应的载波频率与码元速率相同,1信号所对应的载波频率为码元速率的两倍。

基于MATLAB的数字调制方法_数字信号_02

                         图5  2FSK信号波形

    以数字信号序列10110010为例,给出产生2PSK信号的MATLAB程序如下

t=0:2*pi/99:2*pi;

m1=[];

c1=[];

b1=[];

for n=1:length(s)

    if s(n)==0;

m=-ones(1,100);

        b=zeros(1,100)

    else s(n)==1;

        m=ones(1,100);

        b=ones(1,100)  

end

    c=sin(f*t);

    m1=[m1 m];

    c1=[c1 c]

    b1=[b1 b];

end

psk=c1.*m1;

subplot(211);

plot(b1)

title('原始信号');

axis([0 100*length(s) -0.2 1.1]);

subplot(212);

plot(psk);

title('PSK信号');

grid on;

    在命令窗口中键入s的二进制代码和载波频率f,再输入函数名,就可以得到所对应的psk信号输出,如输入以下指令:

      s=[1 0 1 1 0 0 1 0];

      f=100;

      pskdigital

输出波形如图8所示,其中载波频率与码元速率相同

基于MATLAB的数字调制方法_matlab_03

图8 2PSK信号波形