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

一 、实验题目

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

二、 实验原理

32信道多相滤波器结构图如下:
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 的复单频输入信号为:
001
式中:l为整数,ts为采样时间,A为信号的幅度,fr为实际频率,θ为初始相角。对其做N点FFT变换有
003
通过上式可知,将x在频域上展开后,可以通过最大峰值M(0<M≤N)点的位值,粗略估计频率值(复信号的频率):显然这个精度不能满足要求,此时可以通过相位差分法得到更精确的频率值:
004
式中:Δ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:K
    H(d,:)=h_LP(d:K:(Q-1)*K+d);
end
 
tic;
temp=mod(length(Signal_DDC),K);
if temp~=0
    Signal_DDC0=[Signal_DDC(1:end),zeros(1,K-temp)];
    X=reshape(Signal_DDC0,K,length(Signal_DDC0)/K);
else
    X=reshape(Signal_DDC(1:end),K,length(Signal_DDC)/K);
end
X=flipud(X);
 
[rx,L]=size(X);
if mod(K,2)==0
    X=X.*repmat((-1).^(0:L-1),K,1);
end
  
Y=zeros(K,L);
for d=1:K
    Y(d,:)=Filter_FFT(X(d,:),H(d,:));
end
for ll=1:L
    temp=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)==0
        subplot(length(range)/2,2,d);
    else
        subplot((length(range)+1)/2,2,d);
    end
    t_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:460
    f       = 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;
       else
           sub_pse_hand(1,n) = sub_pse_ori(1,n);
       end
    end
    
    pse_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

多相滤波信道接收机是一种用于数字信号处理的高效结构。它将带通滤波器转换为多相一致离散傅里叶变换的滤波器组,通过对原型滤波器系数进行抽取来实现。这种接收机是在直接信道接收机的基础上改进而来的。直接信道接收机通过利用不同频率响应的带通滤波器组将信号划分到不同的信道上,以获取信号回波信息。当信道数为K且滤波器组理想时,每个滤波器的带宽为fs/K。然而,理想滤波器组很难实现,通常会存在过渡带。如果过渡带之间没有重叠,滤波器组如图2所示。然而,这样会产生信道间的盲区,当信号落入盲区时无法检测到。 在多相滤波信道接收机中,通常的处理流程是先经过一个低通滤波器,然后再进行下采样。这个低通滤波器的作用是滤除高频信号,以避免在下采样过程中出现混叠现象。混叠会导致高频信号转移到低频带,从而引起失真。虽然这个滤波器可能会滤掉一些高频部分,但相对于混叠的影响来说还是可以接受的。因此,先经过低通滤波器再进行下采样是比较常规的处理流程。 在设计多相滤波信道接收机时,需要考虑各个信道的通带范围。可以使用MATLAB工具来设计原型滤波器,并给出其特性。此外,结合相位差分测频算法,还可以输入不同频率的信号来测试数字接收机各个信道的输出,并完成信号频率测量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [设计32信道多相滤波结构数字接收机](https://blog.csdn.net/weixin_45858061/article/details/102986358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [多相滤波器](https://blog.csdn.net/wordwarwordwar/article/details/53581480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值