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

📄 filter_try.m

📁 cdma 系统级仿真
💻 M
字号:
clc;%清除命令窗口
clear all;%清除工作空间workspace,以释放内存
%**************************************************************************
                         %※  数 据 发 送 端 ※%
%**************************************************************************
%*** 产生随机数字比特流x,并将其进行串并变换,形成30路并行信号frame ***%
amplitude=1;
datalong=200
x=amplitude*randsrc(1,datalong);%长为200的随机数
framesend=x;

%**************************************************************************
%*** 将frame进行串并变换,分成frameI、frameQ两路 ***%
for var31=1:length(framesend)/2
    frameI(1,var31)=framesend(1,2*var31-1);  %奇数点
    frameQ(1,var31)=framesend(1,2*var31);    %偶数点
end;
%**************************************************************************
%*** 分别在frameI、frameQ相邻样点间插入一个零 ***%
sample_size=2;
frameinsertI=zeros(1,length(frameI)*sample_size);
frameinsertQ=zeros(1,length(frameQ)*sample_size);
for cha1=1:length(frameI)
    frameinsertI(1,(cha1-1)*sample_size+1)=frameI(1,cha1);
    frameinsertQ(1,(cha1-1)*sample_size+1)=frameQ(1,cha1);
end;
%**************************************************************************
%*** 设计4码元成型滤波器 rafa=0.6的升余弦滤波器 ***%
nn1=1:48;
x3=[(nn1-0)>=0];%1-48全1
x4=[(nn1-13)>=0];%前12为0,后36为1
shengyuxuan(nn1)=x3-x4;%前12为1,后36为0
nn2=13:48;
rfa=linspace(0,1,36);%生成36点线性向量,在0-1之间且包括0和1
shengyuxuan(nn2)=0.5*(cos(rfa*pi)+1);%36个点的升余弦yuxian
shengyuxuan(83:129)=fliplr(shengyuxuan(2:48));   %fliplr函数使行向量左右反转
Hshengyuxuan=shengyuxuan;
for nn3=1:8     %作IDFT变换求得滤波器的时域特性,生成8个点的时域序列作为滤波器系数
    nn4=1:length(Hshengyuxuan);
    htest(nn4)=Hshengyuxuan(nn4).*cos(2*pi*(nn4-1)*(nn3-1)/129);  %两向量对应元素相乘,点乘
    hsheng1(nn3)=sum(htest(nn4));   
end;  
hsheng3=hsheng1/length(Hshengyuxuan);%取前8个点
hsheng2=fliplr(hsheng3);
hsheng(1:8)=hsheng2(1:8);
hsheng(9:15)=hsheng3(2:8);
%**************************************************************************
%*** 对30路frameinsertI、frameinsertQ信号滤波 ,输出frameoutI、frameoutQ***%
%    frameoutI=filter(hsheng,1,frameinsertI);
%    frameoutQ=filter(hsheng,1,frameinsertQ);
frameinsertI(2,:)=filter(hsheng,1,frameinsertI(1,:));
frameinsertQ(2,:)=filter(hsheng,1,frameinsertQ(1,:));


    
%plot(frameinsertI, 'DisplayName', 'frameinsertI', 'YDataSource', 'frameinsertI'); 
%plot(frameoutI, 'DisplayName', 'frameoutI', 'YDataSource', 'frameoutI'); 

figure(1)
subplot(2,1,1)
plot(frameinsertI(1,:), 'DisplayName', 'frameinsertI', 'YDataSource', 'frameinsertI'); 
title('滤波器输入信号')
grid on
subplot(2,1,2)
plot(frameinsertI(2,:), 'DisplayName', 'frameoutI', 'YDataSource', 'frameoutI'); 
title('滤波器输出信号')
grid on

⌨️ 快捷键说明

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