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

📄 4ask.m

📁 产生2ASK、4ASK、8ASK的m文件和产生的mat格式的数据文件。
💻 M
字号:
clear all; clc;

%4ASK调制
load ('D:\MATLAB6p5\radio\mywork\PCM\code_end1.mat');%码序列

code_end1=code_end1(1:10000);
% 调制参数
CodeFre = 6.4*10^4;                                 %码速率   64kbps
Tc      = 1/CodeFre;                                %码元宽度
CarrFre = 100*10^3;                                 %载波频率 100KHz
SamFre  = 3.2*10^5;                                 %采样频率 320KHz
Ts      = 1/SamFre;                                 % 采样时间间隔
SymbFre = CodeFre/2;                                %符号速率 32kbps
Tsb     = 1/SymbFre;                                %符号宽度

Temp    = fix(SamFre/SymbFre);                      % 平均每个符号宽度内采样点个数
%Reminder= SamFre/CodeFre - fix(SamFre/CodeFre);    % 得到小数,从而确定每个码元起始采样点的偏移量
%Offset  = 1-Reminder;                              % 得到下一码元起始处时间偏移
num     = length(code_end1);                        % 取码序列的长度

%构造符号序列
for i=0:num/2-1
    %code(i+1,:)=[code_end1(2*i+1),code_end1(2*i+2)];
    a(i+1)=2*code_end1(2*i+1)+code_end1(2*i+2);
    i
end
num=length(a);

%ASK调制:00—0,01—1,10—2,11—3
switch a(1)
    case 0
        A=0;
    case 1
        A=1;
    case 2
        A=2;
    case 3
        A=3;
end  
t = Ts :Ts: Temp*Ts;
ASK_u1= A*cos(2*pi*CarrFre*t);
SamLen = length(ASK_u1);
NewOffset = Tsb-Ts*Temp;
for n = 2:num;
%    判断载波相位变化
   switch a(n)
    case 0
        A=0;
    case 1
        A=1;
    case 2
        A=2;
    case 3
        A=3
 end  
           N=(NewOffset+Tsb)/Ts;
           Temp = fix(N);
           t =Ts*(SamLen+1) :Ts: Ts*(Temp+SamLen); %时间长度
           %m=1:Temp;
           %c=[c,cos(2*pi*CarrFre*t)];
           S=A*cos(2*pi*CarrFre*t);
           ASK_u1 =[ASK_u1,S];
           
           SamLen = length(ASK_u1);
           %NewReminder =N-Temp;
           NewOffset = n*Tsb-Ts*SamLen;
%    end
   n
end

⌨️ 快捷键说明

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