⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_qam.m

📁 基带数字信号通过成形滤波(选用升余弦滚降函数)然后进行载波调制
💻 M
字号:
function s_qam=mod_qam(data,sample,M,fb,fc)

%clear;clc;
%M=2;N=20;
%data=randint(1,N,M);
%data=[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ];
%sample=16;

Tc=1/fb;

N=length(data);d=data;
if(M==8)
    for i=1:N
        if(d(i)==0)
            di(i)=-3;dq(i)=1;
        elseif(d(i)==1)
            di(i)=-3;dq(i)=-1;
        elseif(d(i)==2)
            di(i)=-1;dq(i)=1;
        elseif(d(i)==3)
            di(i)=-1;dq(i)=-1;
        elseif(d(i)==4)
            di(i)=1;dq(i)=1;
        elseif(d(i)==5)
            di(i)=1;dq(i)=-1;
        elseif(d(i)==6)
            di(i)=3;dq(i)=1;
        else
            di(i)=3;dq(i)=-1;
        end
    end
end
    
    
    
if(M==16)
    for i=1:N
        if(d(i)==0|d(i)==1|d(i)==2|d(i)==3)
            di(i)=-3;
        elseif(d(i)==4|d(i)==5|d(i)==6|d(i)==7)
            di(i)=-1;
        elseif(d(i)==8|d(i)==9|d(i)==10|d(i)==11)
            di(i)=1;
        else
        di(i)=3;
        end
    end
    for i=1:N      
        if(d(i)==0|d(i)==4|d(i)==8|d(i)==12)
            dq(i)=3;
    elseif(d(i)==1|d(i)==5|d(i)==9|d(i)==13)
        dq(i)=1;
    elseif(d(i)==2|d(i)==6|d(i)==10|d(i)==14)
        dq(i)=-1;       
        else
            dq(i)=-3;
        end
    end
end

    
if(M==32)
    for i=1:N
        if(d(i)==0|d(i)==3|d(i)==8|d(i)==9|d(i)==10|d(i)==11)
            di(i)=-3;
        elseif(d(i)==1|d(i)==2|d(i)==12|d(i)==13|d(i)==14|d(i)==15)
            di(i)=-1;
        elseif(d(i)==16|d(i)==17|d(i)==18|d(i)==19|d(i)==30|d(i)==29)
            di(i)=1;
        elseif(d(i)==20|d(i)==21|d(i)==22|d(i)==23|d(i)==31|d(i)==28)
            di(i)=3;
        elseif(d(i)==4|d(i)==5|d(i)==6|d(i)==7)
            di(i)=-5;
        else
            di(i)=5;
        end
    end
    for i=1:N
        if(d(i)==7|d(i)==11|d(i)==15|d(i)==19|d(i)==23|d(i)==27)
            dq(i)=-3;
        elseif(d(i)==6|d(i)==10|d(i)==14|d(i)==18|d(i)==22|d(i)==26)
            dq(i)=-1;
        elseif(d(i)==5|d(i)==9|d(i)==13|d(i)==17|d(i)==21|d(i)==25)
            dq(i)=1;
        elseif(d(i)==4|d(i)==8|d(i)==12|d(i)==16|d(i)==20|d(i)==24)
            dq(i)=3;
        elseif(d(i)==3|d(i)==2|d(i)==30|d(i)==31)
            dq(i)=-5;
        else
            dq(i)=5;
        end
    end
end


pulse_pskI=pulse_mpsk(di,fb,sample);
pulse_pskQ=pulse_mpsk(dq,fb,sample);


fs=fb*sample;ts=1/fs;
%delta_f=500;fc1=fc-delta_f;fc2=fc+delta_f;

t=[0:length(pulse_pskI)-1]*ts;
c=cos(2*pi*fc.*t);
s_pskI=pulse_pskI.*c;
t2=[0:length(pulse_pskQ)-1]*ts;
cc=sin(2*pi*fc.*t2);
s_pskQ=pulse_pskQ.*cc;

s_qam=s_pskI+s_pskQ;

%s_qam=s_qam/max(s_qam);
%figure
%plot(s_qam)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -