天天看點

基于MATLAB的數字調制方法

    以數字信号序列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的數字調制方法

                                圖 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的數字調制方法

                         圖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

繼續閱讀