信道接收机matlab仿真 下载本文

内容发布更新时间 : 2024/5/10 11:18:07星期一 下面是文章的全部内容请认真阅读。

1.信道化接收机MATLAB仿真

代码:

clc;clear;

f1=2000;f2=5000;%测频范围

f=input('输入待测频率 (MHz) '); if f>=f1&&f<=f2

m1=4;m2=4;m3=4;%各分路器均设为5,分路器结构 u=(f2-f1)/(m1*m2*m3);%频率分辨力

ur=[0,0,0];%为各分路器中放带宽提供缓存 ur(1)=(f2-f1)/m1; %写入各分路器中放带宽 ur(2)=(f2-f1)/(m1*m2); ur(3)=(f2-f1)/(m1*m2*m3);

fi=[0,0,0];%为各分路器中频频率提供缓存

fi(1)=ceil(((f2-f1)/2)*1.2);%写入各分路中频频率 fi(2)=ceil((ur(1)/2)*1.2); fi(3)=ceil((ur(2)/2)*1.6); fl=zeros(3,4); for j=1:1:4

fl(1,j)=f1-fi(1)+(j-0.5)*ur(1);%第一本振组

fl(2,j)=(fi(1)-ur(1)/2)-fi(2)+(j-0.5)*ur(2);%第二本振组 fl(3,j)=(fi(2)-ur(2)/2)-fi(3)+(j-0.5)*ur(3);%第三本振组 end

num=zeros(1,3);%为每层的信道提供缓存 for k=1:3 j=1;

while j<=4

if f-fl(k,j)>=fi(k)-ur(k)/2&&f-fl(k,j)<=fi(k)+ur(k)/2 f=f-fl(k,j); num(k)=j-1; break; else j=j+1; end end end

f=f1+num(1)*ur(1)+num(2)*ur(2)+num(3)*ur(3)+u/2;%进行频率估计 fprintf('估计频率为 %f MHz\\n',f); else disp('不在测频范围内 '); end

仿真结果: