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

📄 qam.m

📁 在matlab下输入guide命令后打开main_main.gig 实现卷积编码
💻 M
字号:
function Signal=QAM(Rs,Fs,Fc)
% this file used to produce qam signal
% clear all;

% simulation time
Temulate = 3;
%roll factor
alfa = 1;
%carrier intial phase
Qi = pi/8;
%snr
nos = 21;

% % symbol rate
% Rs = 9600;
% % sample rate
% Fs= Rs*8;
% % carrier frequency
% Fc= 19200;
% % Fc=Rs*2;

string = 'signal_16qamdata.dat';
bit_number = floor(Temulate*Rs);

rawdata = rand(1,bit_number);
for i=1:bit_number
   if(rawdata(i)>=0.5)
      rawdata(i)=1;
   else
      rawdata(i)=0;
   end
end

h = rcosfir(alfa,[-3,3],8,1,1);%;%1rcosfir(alfa,1,12,1,'sqrt')

In = zeros(1,bit_number*8/4+8);
Qn = zeros(1,bit_number*8/4+8);

j = 1;
for i = 1:4:bit_number
    if((rawdata(i) == 0) & (rawdata(i+1) == 0))
        In(1+j*8) = 3;%*0.41;
    elseif((rawdata(i) == 0) & (rawdata(i+1) == 1))
        In(1+j*8) = 1;%0.41;
    elseif((rawdata(i) == 1) & (rawdata(i+1) == 0))
        In(1+j*8) = -1;%0.41;
    elseif((rawdata(i) == 1) & (rawdata(i+1) == 1))
        In(1+j*8) = -3;%*0.41;
    end
    if((rawdata(i+2) == 0) & (rawdata(i+3) == 0))
        Qn(1+j*8) = 3;%*0.41;
    elseif((rawdata(i+2) == 0) & (rawdata(i+3) == 1))
        Qn(1+j*8) = 1;%0.41;
    elseif((rawdata(i+2) == 1) & (rawdata(i+3) == 0))
        Qn(1+j*8) = -1;%0.41;
    elseif((rawdata(i+2) == 1) & (rawdata(i+3) == 1))
        Qn(1+j*8) = -3;%*0.41;
    end
    
    j = j + 1;
end

%%%%%%%%%% shape the pulse(raw data) %%%%%%%%%%%
Ishape_data = conv(In,h);
Qshape_data = conv(Qn,h);

Ishape_data = Ishape_data / 0.42;     %     signal  =  Inn * coswt  ;  abs(Inn) = 1;
Qshape_data = Qshape_data / 0.42;



%%%%%%%%%% modulate %%%%%%%%%%%%%%%%%%%%%%%%%%%
dot = length(Ishape_data);% dot = length(Qshape_data)
n = 1:dot;
Imod_data = Ishape_data.*cos(Fc*2*pi*n/Fs+Qi);
Qmod_data = Qshape_data.*sin(Fc*2*pi*n/Fs+Qi);

mod_data = Imod_data - Qmod_data;
data=(mod_data)*1;

Signal=data;

⌨️ 快捷键说明

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