多相滤波器及信道化处理

目录

一 降采样和多相滤波器

二 升采样和多相滤波器

三 多相滤波器和信道化处理1

四 多相滤波器和信道化处理2

一 降采样和多相滤波器

二 升采样和多相滤波器

三 多相滤波器和信道化处理1

上图中从x(mD-p)可以看出,输入数据是从K到0,所以下面的代码里面是先x(K)到x(0),hp是从小到大顺序取值。

hp(l/F)中,l值是从0:1:length(h)长度,其中奇数时为0,相当于在原值基础上进行了插值,这也是重叠50%的由来。

四 多相滤波器和信道化处理2

上图重叠没有画清楚,如下图所示:

 当K=D时的代码:


clear 
close all
freqStart = 0;%app.MhzEditField.Value*1e6;
freqEnd = 0;%app.MhzEditField_2.Value*1e6;
fs     = 1600;%;app.MhzEditField_3.Value;        
%构造发送数据,实际设备中不存在
signalType = 'pulse';
bandwidth = 50;
A = 1;
Fc =100;%freqStart;%将信号放在freqStart和freqEnd之间,暂时放在freqStart位置
fsRev = 1600;%暂时按照3Ghz的采样率

%半带滤波
t = [0:1/fs:1];
receiveData = exp(1i*2*pi*Fc*t);   
% %% 参数设置
K = 8;
D =8  ;
fc = [0:K-1]*fs/K ;
load('passBand80Fc100Fs1600.mat')
h=passBand80Fc100Fs1600;
% hSub = (reshape(h,K,length(h)/K));
% 
% % =======传统方式
len = length(receiveData);
lenH = length(h);
lensubdata = len/K;
FFTNum = 8192;
for i = 1:K
     subplot(K,1,i)
     receiveDatatemp = receiveData.*exp(-1i*2*pi*fc(i)*(0:len-1)/fs);
     subchannelData = downsample(conv(receiveDatatemp,h,'same'),D);
     fftData = fft(subchannelData,FFTNum);


     plot([-FFTNum/2:FFTNum/2-1]*fs/D/FFTNum+fc(i),abs([fftData(FFTNum-FFTNum/2+1:FFTNum)  fftData(1:FFTNum/2)]));
    
end


receiveDataArray = [receiveData];
datalen = floor(length(receiveDataArray)/D)-2;
Hlen =  floor(length(h)/D)-2;
load('passBand80Fc100Fs1600.mat')
h=passBand80Fc100Fs1600;

hSub = (reshape(h,K,length(h)/K));
% % 多相滤波器信道分段为K,抽样为D=K/2
for i=1:K
    datatemp  = receiveDataArray(K-i+1:D:K-i+datalen*D);  %注意取数据的方式为倒序
    hupsample = hSub(i,:);%(upsample(hSub(i,:),2));
%     sig =(-1).^((i-1)*[0:length(datatemp)-1]);% 
    receiveDataArray2(i,:)= conv(datatemp,hupsample,'same');
end
receiveDataArray3 = ifft(receiveDataArray2);

FFTNum = 8192;
figure
fftwhole = [];

%频谱拼接
for i = 1:K
    subplot(K,1,i)
    fftData = (fft(receiveDataArray3(i,:),FFTNum));
   

    plot([-FFTNum/2:FFTNum/2-1]*fs/D/FFTNum+fc(i),abs([fftData(FFTNum-FFTNum/2+1:FFTNum)  fftData(1:FFTNum/2)]));
    
end
aa=1;




当K=2D时的代码


%宽带分段采集,频谱拼接 电平调节
% function IFSignalReceive(app)
clear 
close all
freqStart = 0;%app.MhzEditField.Value*1e6;
freqEnd = 0;%app.MhzEditField_2.Value*1e6;
fs     = 1600;%;app.MhzEditField_3.Value;
          
Fc =1200;%freqStart;%将信号放在freqStart和freqEnd之间,暂时放在freqStart位置
t = [0:1/fs:1];
receiveData = exp(1i*2*pi*Fc*t);   
% %% 参数设置
K = 8;
D =4  ;
fc = [0:K-1]*fs/K ;
load('passBand80Fc200Fs1600.mat')
h=passBand80Fc200Fs1600;
% hSub = (reshape(h,K,length(h)/K));
% 
% % =======传统方式
len = length(receiveData);
lenH = length(h);
lensubdata = len/K;
FFTNum = 8192;
for i = 1:K
     subplot(K,1,i)
     receiveDatatemp = receiveData.*exp(-1i*2*pi*fc(i)*(0:len-1)/fs);
     subchannelData = downsample(conv(receiveDatatemp,h,'same'),D);
     fftData = fft(subchannelData,FFTNum);    
     plot([-FFTNum/4:FFTNum/4-1]*fs/D/FFTNum+fc(i),abs([fftData(FFTNum-FFTNum/4+1:FFTNum)  fftData(1:FFTNum/4)]))     
end


receiveDataArray = [receiveData];
datalen = floor(length(receiveDataArray)/D)-2;
Hlen =  floor(length(h)/D)-2;
% load('passBand100Fc150Fs1600.mat')
load('passBand80Fc200Fs1600.mat')

h=passBand80Fc200Fs1600;

hSub = (reshape(h,K,length(h)/K));
% % 多相滤波器信道分段为K,抽样为D=K/2
for i=1:K
    datatemp   = receiveDataArray(K-i+1:D:K-i+datalen*D);  %注意取数据的方式为倒序
    hupsample = upsample(hSub(i,:),2);
    datatemp = datatemp;
    receiveDataArray2(i,:)=conv(datatemp,hupsample,'same');
end
receiveDataArray3 = ifft(receiveDataArray2,[],1);

FFTNum = 8192;
figure
fftwhole = [];

%频谱拼接
for i = 1:K
    subplot(K,1,i)
    datatemp =  (-1).^((i-1)*[0:length(datatemp)-1]);
    datatemp = receiveDataArray3(i,:).*datatemp;
    fftData = K*(fft(datatemp,FFTNum));  
    plot([-FFTNum/4:FFTNum/4-1]*fs/D/FFTNum+fc(i),abs([fftData(FFTNum-FFTNum/4+1:FFTNum)  fftData(1:FFTNum/4)]));
     
    
end





滤波器设置如下图:

从上面仿真可以看出,当K=D时,如果Fc为100hz时,由于频谱有盲区导致显示不到频谱,而当K=2*D时则可以显示正确的频谱

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: DFT多相滤波信道结构是一种常用于数字信号处理中的滤波设计方法。在DFT多相滤波组中,滤波的设计是基于离散傅里叶变换(DFT)和多相滤波的原理。 该结构通常采用矩阵形式表示,其中各个滤波由多个时域序列的延迟组成。这些延迟序列是通过将零相位滤波和线性相位滤波结合而得到的。在信号处理中,多相滤波组可用于滤波、降采样和上采样等操作。 DFT多相滤波组的信道结构可以提供更好的频率选择性能和计算效率。它通过将滤波的设计变为一个以矩阵代数为基础的问题,使得设计和实现滤波更加方便和灵活。 在DFT多相滤波组中,每个滤波的频率响应只需要计算一次,然后可以通过在频域对信号进行乘法运算来实现滤波。这种方式避免了在时域进行滤波时需要进行重复计算的问题,提高了计算效率。 此外,DFT多相滤波信道结构还可以实现与信号处理相关的其它功能,如频率选择性滤波设计、多声道信号处理和抗混叠滤波设计等。因此,它在语音、图像和视频等领域中被广泛应用。 总而言之,DFT多相滤波信道结构是一种基于DFT和多相滤波的滤波设计方法,具有较好的频率选择性能和计算效率。它在数字信号处理中有着广泛的应用。 ### 回答2: DFT多相滤波信道结构是一种基于离散傅里叶变换的滤波结构。它将输入信号通过多相滤波组进行频域分解,然后通过时间域合成将各个频段的信号重组,从而实现信号的分频和滤波。 DFT多相滤波信道结构由两个主要部分组成:分析滤波组和合成滤波组。分析滤波组由一组低通滤波和一组带通滤波组成,用于将输入信号分解成不同频段的子信号。合成滤波组则是根据分析滤波组的输出信号,通过一组上采样和滤波操作将各频段的子信号进行重组,得到输出信号。 在DFT多相滤波信道结构中,离散傅里叶变换(DFT)被用于分析滤波组中,通过将输入信号变换到频域,可以方便地对信号进行分频处理。DFT的快速算法如FFT可以有效地降低计算复杂度。而合成滤波组中的上采样和滤波操作则是为了将各频段的子信号进行重组,从而得到完整的输出信号。 DFT多相滤波信道结构在实际应用中具有广泛的应用。例如,在音频信号处理中,通过DFT多相滤波组可以实现音频信号的频域分析和处理,如音频均衡和音频压缩。此外,DFT多相滤波组也可以用于图像处理中的多分辨率分析和压缩编码等领域。 总之,DFT多相滤波信道结构是一种基于离散傅里叶变换的滤波结构,通过分析滤波组和合成滤波组的协作,可以实现信号的分频和滤波处理。它在音频信号处理、图像处理等领域具有重要的应用价值。 ### 回答3: DFT多相滤波组是一种常用的信号处理技术,用于将输入信号分别经过不同的滤波通道处理,并通过组合这些结果得到最终的输出信号。 在DFT多相滤波信道结构中,首先将输入信号分成不同的信道(或者称之为子带),每个信道对应一个滤波。这些滤波的频率响应通常是通过DFT(离散傅里叶变换)来确定的,因此可以称之为DFT滤波。DFT滤波是一种线性相位滤波,可以根据需要设计成低通、高通或带通滤波。 接下来,每个信道的输入信号通过相应的DFT滤波进行滤波处理,得到所需的频率成分。这些滤波的频率响应特性决定了它们各自所提取的频带范围。 最后,通过组合每个信道的滤波结果,得到最终的输出信号。常见的组合方式有并联(直接叠加各个信道的输出)和串联(将各个信道的输出进行级联)两种。 DFT多相滤波信道结构在信号处理中应用广泛。例如,在语音通信中,可以将输入信号分成不同的频带,分别处理语音的低频和高频成分,提高语音的清晰度和信噪比。在图像处理中,也可以将输入图像分成不同的空域频带,分别进行处理和编码,提高图像的分辨率和质量。 总之,DFT多相滤波信道结构是一种有效的信号处理技术,通过将输入信号分成不同的频带进行滤波处理,能够提取所需的频率成分,并通过组合这些结果得到最终的输出信号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值