设计32信道的多相滤波结构数字接收机

  • 一 、实验题目
  • 二、 实验原理
  • 三、MATLB仿真过程与结果分析
    • MATLAB代码

一 、实验题目

单通道实采样,采样率2.4GHz。设计32信道的多相滤波结构数字接收机,给出各信道的通带范围,采用MATLAB工具设计原型滤波器,给出原型滤波器特性。结合相位差分测频算法,输入不同频率的信号,测试数字接收机各信道输出,并完成信号频率测量。

二、 实验原理

32信道多相滤波器结构图如下:

多相滤波器结构是实现信道化接收机的高效结构, 它是把带通滤波器变成多相一致离散傅里叶变换的滤波器组, 可以通过对原型滤波器系数进行抽取来实现。多相信道化接收机是在直接信道化接收机的基础上改进得来。直接信道化接收机通过利用不同频率响应的带通滤波器组将信号划分到不同的信道上得到信号回波信息。当有K个信道, 且滤波器组为理想的, 则每个滤波器的带宽为fs/K。但理想滤波器组不可能实现, 通常会存在过渡带, 若过渡带之间没有重叠, 滤波器组如图2所示。这样就产生了信道间的盲区, 当信号落入盲区时则无法检测。

信道化的无盲区实现决定了每个信道的通带带宽设定为fs/K, 当信道数目K值确定后, 滤波器的过渡带宽就决定了信道的带宽, 由于信道间会有交叠, 某个信号应该尽量在一个信道或者其附近某一个信道内出现, 某个信号应该尽量在一个信道或者其附近某一个信道内出现, 所以过渡带的范围为0<Btr≤π/K, 其中Btr (rad) 为过渡带宽, 定义单个信道的带宽为B (rad) , 则两者的关系式为B=2π/K+2Btr。若系统的数据输入率为I (Mbit/s) , 减小滤波器过渡带宽, 则抽取因子会相应的增大。系统需要支持的最高数据处理速度为O>I/M。

设定采样率fs为1.8 GHz, 信道化数目为32, 通带波动为0.1 dB, 阻带衰减损耗设为60 dB, 仿真过渡带宽对滤波器阶数的影响如图4所示, 从图4中, 可以得出过渡带宽越窄则原型滤波器所需要的阶数就越大。过渡带宽对瞬态响应时间的影响如图5所示, 得出过渡带越窄, 滤波器瞬态响应时间T越长。从两幅图中可以看出, 过渡带宽越窄, 相应的变化越明显, 同时, 滤波器的阶数与其瞬态响应时间成线性正比。在滤波器瞬态响应期间, 其输出信号的幅度和频率都会发生改变, 输入脉冲经过滤波器时, 若稳定时间太短, 其频率就不能被正确的估计。所以在设计滤波器时, 要考虑系统需要处理的最小脉冲宽度。定义最小脉冲宽度为Tp, 需要满足Tp>T。

为精确得到输入信号频率需要对滤波结果作相位差分,频域中的相位差分法与时域中的相位差分法类似,都是利用频率与相位和时间的关系。设采样频率为fs 的复单频输入信号为:

式中:l为整数,ts为采样时间,A为信号的幅度,fr为实际频率,θ为初始相角。对其做N点FFT变换有

通过上式可知,将x在频域上展开后,可以通过最大峰值M(0<M≤N)点的位值,粗略估计频率值(复信号的频率):显然这个精度不能满足要求,此时可以通过相位差分法得到更精确的频率值:

式中:Δt表示时延,argXΔt(M)表示经过Δt时延后做N点FFT变换后M点的相角值,而argX0(M)则表示初始时刻的N点FFT变换后M点的相角值。从上式中可以看出,当经过的时延Δt越大,则得到的频率值fs越精确。但是随着Δt的增大,另一个问题也出现了,就是argXΔt(M)会随着Δt的增加而不断地成周期性的变化。

三、MATLB仿真过程与结果分析

通过上面分析,编写MATLAB程序设计32信道多相滤波器
其通带范围如下:

信道数 通带范围/MHZ 信道数 通带范围/MHZ 信道数 通带范围/MHZ 信道数 通带范围/MHZ
信道1 (-1200,-1100) 信道9 (-600 , -525) 信道17 (75 , 150) 信道25 (675 , 750)
信道2 (-1100,-1025) 信道10 (-525 , -450) 信道18 (150 , 225) 信道26 (750 , 825)
信道3 (-1025, -975) 信道11 (-450 , -375) 信道19 (225 , 300) 信道27 (825 , 900)
信道4 (-975 , -900) 信道12 (-375 , -300) 信道20 (300 , 375) 信道28 (900 , 975)
信道5 (-900 , -825) 信道13 (-300 , -225) 信道21 (375 , 450) 信道29 (975 ,1025)
信道6 (-825 , -750) 信道14 (-225 , -150) 信道22 (450 , 525) 信道30 (1025,1100)
信道7 (-750 , -675) 信道15 (-150 , -75) 信道23 (525 , 600) 信道31 (1100,1175)
信道8 (-675 , -600) 信道16 (-75 , 75) 信道24 (600 , 675) 信道32 (1175,1200)

信号为实采样,采样率2.4GHZ,产生一频率为100HZ的正弦信号如下图:

对其做傅里叶变换得到频谱如下图:

由图可知信号在±100HZ处有两频谱分量,将其通过32信道多相滤波器,第11到第23信道输出如下图:

由仿真结果可知此信号只在第16信道有输出,第16信道通带为-75MHZ–75MHZ,
信号频率为100HZ,符合预期情况。
编写程序对上面结果作相位差分得到结果为:

与真实值基本一致。

MATLAB代码

clear all;close all;clc;
figure;
FS=2.4e+9;
IF=35e+7;
MF=3.6e+9;
Signal_DDC=0:1:1000;
Signal_DDC=Signal_DDC/1000;
Signal_DDC=sin(2*pi*100*Signal_DDC);N=length(Signal_DDC);
nfft=2^nextpow2(N);
t_axis=(0:N-1)./fs;
f_axis=(0:nfft-1)./nfft*fs-fs/2;
subplot(211)
plot(t_axis.*1e6,real(Signal_DDC));
xlabel('时间')
title('输入信号')
subplot(212)
Signal_DDC_fft=(fftshift(fft(Signal_DDC,nfft)));
plot(f_axis./1e6,(abs(Signal_DDC_fft)))
xlabel('频率')
title('输入信号的频谱')fI=IF;
K=32;
Channel_Freq_Range=[((0:K-1)-(K-1)/2).*fs/K-fs/K/2;((0:K-1)-(K-1)/2).*fs/K+fs/K/2]./1e6;h_LP=fir1(1023,1/K,'low');
M=length(h_LP);
Q=fix(M/K);
H=zeros(K,Q);
for d=1:KH(d,:)=h_LP(d:K:(Q-1)*K+d);
endtic;
temp=mod(length(Signal_DDC),K);
if temp~=0Signal_DDC0=[Signal_DDC(1:end),zeros(1,K-temp)];X=reshape(Signal_DDC0,K,length(Signal_DDC0)/K);
elseX=reshape(Signal_DDC(1:end),K,length(Signal_DDC)/K);
end
X=flipud(X);[rx,L]=size(X);
if mod(K,2)==0X=X.*repmat((-1).^(0:L-1),K,1);
endY=zeros(K,L);
for d=1:KY(d,:)=Filter_FFT(X(d,:),H(d,:));
end
for ll=1:Ltemp=Y(:,ll).*(-1).^(0:K-1).';temp=temp.*exp(j*(0:K-1).'*pi/K);Y(:,ll)=ifft(temp,K).*K;
end
toc;figure;
range=14:27;
for d=1:length(range)if mod(length(range),2)==0subplot(length(range)/2,2,d);elsesubplot((length(range)+1)/2,2,d);endt_axis=((0:L-1))./fs.*K+(range(d)-1)./fs;plot(t_axis.*1e6,abs(Y(range(d),:)))ylim([0 max(max(abs(Y)))+1])
End
for m=1:460f       = 150+m*5;sig     = floor(127*sin(2*pi*f*t));sig_vec = reshape(sig,32,N/32)';y       = fft(sig_vec,[],2);y       = y(:,1:16);[max_value,max_idx] = max(abs(y(1,:)));phase_ori = angle(y(:,max_idx))';sub_pse_ori = phase_ori(1,2:end) - phase_ori(1,1:end-1);for n = 1:length(sub_pse_ori)if(sub_pse_ori(1,n)>=pi) sub_pse_hand(1,n) = sub_pse_ori(1,n)-2*pi;elseif(sub_pse_ori(1,n)<=-pi) sub_pse_hand(1,n) = sub_pse_ori(1,n)+2*pi;elsesub_pse_hand(1,n) = sub_pse_ori(1,n);endendpse_unwrap     = unwrap(phase_ori);sub_pse_unwrap = pse_unwrap(1,2:end) - pse_unwrap(1,1:end-1);diff = sub_pse_hand-sub_pse_unwrap;sub_pse_0 = sub_pse_hand;ratio_0 = sum(sub_pse_0(1,1:8))/8/2/pi;sub_pse_1 = sub_pse_unwrap;ratio_1 = sum(sub_pse_1(1,1:8))/8/2/pi;a_result(1,m) = max_idx-1+ratio_0;b_result(1,m) = max_idx-1+ratio_1;c_result(1,m) = f/FS*32;
end

设计32信道的多相滤波结构数字接收机相关推荐

  1. 数字正交下变频(多相滤波法)

    [TOC] 多相滤波原理 在上一篇文章中讨论了基于低通滤波方式的正交下变频系统.下面是该种方式的结构图. 图1.1 数字正交下变频 但是,这种典型的数字下变频方式也存在着这样一些缺陷: * 当采样信号 ...

  2. matlab 多相滤波,数字多相网络的滤波原理

    数字多相网络的滤波原理 本文通过数字序列的谱分析对数字多相网络的滤波原理进行分析,并由此对多相网络和DFT(离散付氏变换)处理器相结合构成的滤波器组进行了探讨.这一分 (本文共7页) 阅读全文> ...

  3. 基于多相滤波器的数字信道化算法详解(Python, Verilog代码已开源)

    基于多相滤波器的数字信道化算法详解 推导过程 总结 仿真 本文详细介绍了基于多相滤波器的数字信道化算法的推导过程, 如果您在阅读的过程中发现算法推导过程中有任何错误, 请不吝指出. 此外, 进入我的G ...

  4. 多相滤波 信道化接收机 matlab程序,基于复多相滤波器组的信道化接收机

    基于复多相滤波器组的信道化接收机 来源:华强电子网 作者:华仔 浏览:517 时间:2016-08-10 14:18 标签: 摘要: 基于复多相滤波器组的信道化接收机 李学军,陈建安 (西安电子科技大 ...

  5. 采用simulink构建AWGN信道中分组码的BPSK数字通信系统

    综合实验设计题5: 采用simulink构建AWGN信道中分组码的BPSK数字通信系统 1.实验要求: (1)构建在AWGN信道中,采用BPSK调制的分组差错控制编码方法的模型,并给出误码率性能. ( ...

  6. 基于ANSYS Twin Builder连杆结构数字孪生体建模关键技术及应用

    作者 | 王永威 黄志新 一.引言 数字孪生体是现有或将有的物理实体对象的数字模型,通过实测.仿真和数据分析来实时感知.诊断.预测物理实体对象的状态,通过优化和指令来调控物理实体对象的行为,通过相关数 ...

  7. 基于matlab下数字信号的课程设计,数字信号课程设计--基于MATLAB的语音滤波实验...

    数字信号课程设计--基于MATLAB的语音滤波实验 数字信号课程设计 数字信号课程设计 题目基于基于 MATLAB 的语音滤波实验 姓名 班级 电信 1002 班 学号 数字信号课程设计 摘要摘要 数 ...

  8. c语言属于结构化程序设计语言,c语言填空题1.结构化程序设计语言的三种基本结构分别是,和.-查字典问答网...

    c语言填空题 1.结构化程序设计语言的三种基本结构分别是,和. 2.C源程序的基本单位是______,一个C源程序中至少应包括一个______. 3.开发一个C程序要经过编辑.__________.连 ...

  9. 双线性变换法设计原型低通为椭圆型的数字IIR高通滤波器

    设计内容及要求 本文用双线性变换法设计原型低通为椭圆型的数字IIR高通滤波器,通带边界频率为550Hz,阻带边界频率分别为450Hz,通带最大衰减3dB,阻带最小衰减42dB,抽样频率为2000Hz, ...

  10. 零中频数字接收机原理

    本文对<ADI射频与微波技术使用手册>中提到的零中频接收机的原理进行了推导,希望抛砖引玉. 零中频数字接收机原理框图如上所示,相比超外差架构,这种架构可以省去混频器.本文主要对其中的数学原 ...

最新文章

  1. 智能POS常见问题整理
  2. 多线程编程 java_java多线程编程
  3. 人工智能思维导图一张,收藏!
  4. 生活中的一些感悟与记录
  5. 无法将项目和文件的编码格式从UTF-8转为GBK
  6. 卡在linuxctrld进系统_Linux系统卡死后紧急处理
  7. 分布式与人工智能课程(part10)--图像库的基本使用
  8. 03 Oracle分区表
  9. Redis使用过程出现类型转换异常问题- 20190220
  10. Vuejs 写法实例
  11. WDM驱动程序介绍(引)
  12. 重启小狼毫输入法,rime输入法重启
  13. 计算机在信息社会中最广泛的应用是,计算机一级考题及答案整理
  14. 单片机类毕业设计题目汇总
  15. flash 10 android,adobe flash 10.0.0
  16. 三维激光扫描后处理软件_三维激光扫描——钢结构形变检测的利器
  17. X86与X64之间的区别
  18. OSChina 周一乱弹 —— 带你装逼带你飞~
  19. Linux新手入门之基础命令操作
  20. 嵌入式监控【v4l2采集-vpu编码-live555推流】

热门文章

  1. paip 突破 网站 手机 验证码 的 破解 总结
  2. SICP-Notes-Lecture 19 Macros
  3. eemd的r语言序列_EEMD详解
  4. 盘点“大宗商品电子交易模式”的8种交易流程
  5. gis地图图层(前台)
  6. 学习_Linux_Command_atq
  7. electron 自定义标题栏_如何在Electron Framework中创建自定义标题栏(灵感来自Visual Studio Code标题栏)...
  8. 采用云原生架构:架构演进和成熟度
  9. 输入的魔法师,cherry机械键盘介绍
  10. 电线带电时先接零线还是火线