• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Matlab
  • 标签: 通信  

资源简介

首先利用fdatool实现FIR滤波器,然后通过多相滤波实现信道化

资源截图

代码片段和文件信息

%% 多相滤波----信道化
clc;clear all;clc
close all
load coef_lpf2.mat
h=coef_lpf;
%% 起始频率170Mhz带宽30Mhz频率范围:170Mhz~200mhz
fs=1e9;
f0=170e6;%起始频率
B=30e6;
len=10240;%输入数据总长度
t=0:1/fs:1/fs*(len-1);
T=(len-1)*(1/fs);
k=B/T;% 调频斜率
im=sqrt(-1);
s_input=exp(-2*im*pi*(f0+k/2*t).*t);
figure% 画输入信号
f=linspace(-fs/2fs/2len);
plot(fabs(fftshift(fft(s_input))));


M=2048;%滑动窗的大小
s=reshape(s_inputMfloor(len/M))‘;
n=floor(len/M);
%% 滤波器组信道化
D=16;
si=1:length(h);
h_channel=zeros(Dlength(h));
im=sqrt(-1);
for j=1:D% 通过搬移原型滤波器实现信道化(滤波器组实现信道化)
    h_channel(j:)=h.*exp((im*2*pi*((si-1)*(j-1)))/D);

end
figure()
for i=1:D
plot(abs(fft(h_channel(i:))));
hold on
end
%% 迭代读入(每次读入256个数据)
Interformer_channel=zeros(DM/Dn);%存储每个子滤波器的输出(包括每次迭代)
for t=1:n
    signal=s(t:);
    leng=length(signal);
    Interformer01=signal;
    for i=1:D% downsample:完成抽取
        Interformer_channel(i:t)=downsample(filter(h_channel(i

评论

共有 条评论