多相濾波器


前言

多相濾波器解決的是:多速率問題。

通過降采樣、插值來改變信號的輸出速率(主要利用Nyquist采樣定理,保證不混疊),從而降低數據率,多相濾波器為這類操作提供了實現框架。在滿足采樣定理的前提下,內插/抽取並配合濾波器使用(防止混疊),可以改變數據的速率。

多相濾波的結構也多用在信道化中(即構建濾波器組),固化系數借助硬件實現快速運算。

一、信道化實現思路

信道化的基本思路為:

clc;clear all;close all
N = 256;
h = firls(N, [0 .2 .25 1], [1  1 0  0],[.001 .0001]);
D = 8;
% PolyPhase Componets
i = 1:length(h);
h_channel = zeros(D,length(h));
im = sqrt(-1);
for j = 1:D
    h_channel(j,:) = h.*exp((-im*2*pi*((j-1)*(i-1)))/D);
end
figure(1)
for i = 1:D+1
    switch i
        case 1
            subplot (2,1,1);
            plot(abs(fft(h)));
            title('Orignal LPF ')
        otherwise
            subplot (2,1,2)
            plot(abs(fft(h_channel(i-1,:))));
            hold on;
            title('channelize')
    end
end

  對應頻譜圖:

即將頻帶切分成若個個區域。基於該特性,有信道化的基本思路:

如果是實信號,D信道化之后進行D倍抽取仍然不會有頻譜混疊,而經過本振以及低通濾波器之后的信號為復信號,故可以進行2D倍抽取。

 可以看出,信道化接收機的抽取器位於濾波器之后,當抽取率D很大或者濾波器階數較高,計算效率將難以提升,這時候借助多相濾波器便可以優化。

假設LPF:

並取Q=N/D,N為濾波器階數,D為抽取率。則濾波器可重寫為:

定義:

濾波器可重寫為:

其中為多相分量,這也是多相濾波器說法的緣由。

第k個信道可寫為:

進一步取

從而有

根據這一系列推導,即可得出實信號多相濾波器信道化的實現思路:

兩處相位相乘分別為:,p = 0,1,...,D-1

 

二、多相濾波器設計步驟

  • 根據指標,確定濾波器類型以及階數N
  • 求解h(n)
  • 根據信道個數,並用下式確定多相濾波器:

三、復雜度簡要分析

以濾波器階數N=256,抽取率(信道個數)D=16,每個信道輸出1個數據,則:

  • 基於低通濾波器組的信道化需要乘法:M1 = D x (1+N) = 4112次;
  • 基於多相濾波器的信道化需要乘法:M2 = N+2*D+D*log2D = 352次;

多相濾波器的實現思路節約了資源,且便於硬件實現。

 

四、應用實例

考慮帶寬1GHz的情況,如果信道個數為16,則每一個的寬度為1e9/16=62.5e6,考慮到濾波器為實數的共軛對稱性,故LPF構造依據:

對其進行仿真驗證:

輸入信號為70MHz的1)余弦信號;2)復指數信號,對於1)理論上應落在2、16兩個信道,2)只落在2信道。

clc;clear all;close all
load coef_lpf.mat;
fs = 1e9;
t = 0:1/fs:1e-6;
f0 = 70e6;
sig = sin(2*pi*t*f0);
len = length(sig);
h = coef_lpf;
N = length(h);
D = 16;
y = zeros(D,len);
% PolyPhase Componets
i = 1:length(h);
h_channel = zeros(D,length(h));
im = sqrt(-1);
x_fre = linspace(0,fs,N);
for j = 1:D
    h_channel(j,:) = h.*exp((-im*2*pi*((j-1)*(i-1)))/D);
    y(j,:) = filter(h_channel(j,:),1,sig);
end
figure()
for i = 1:D+1
    switch i
        case 1
            subplot (2,1,1);
            plot(x_fre,abs(fft(h)));
            title('Orignal LPF ')
        otherwise
            subplot (2,1,2)
            plot(x_fre,abs(fft(h_channel(i-1,:))));
            hold on;
            title('channelize')
    end
end
x_fre1 = linspace(0,fs,len);
figure()
plot(x_fre1,abs(fft(sig)));
for iter = 1:D
    if mod(iter,4) ==1
        figure()
        j = 1;
    end
    subplot(4,1,j)
    j = j+1;
    plot(x_fre1,abs(fft(y(iter,:))));
    title(['信道',num2str(iter)]);
end

  仿真結果:

信道化結果:

情形一:

與理論分析相符。

情形二:

sig = exp(-1j*2*pi*t*f0);

  信號只在信道2出現:

 

多相濾波的實現思路也非常多,這里僅列舉一種:

clc;clear all;close all;
load coef_lpf.mat;
h = coef_lpf;
%%產生信號
fc = 70e6;
c = 3.0e8;
fs = 1e9;
theta = 30/180*pi;
lambda = c/fc;
d = lambda/4;
len = 2048;
t = 0:1/fs:1/fs*(len-1);
st = exp(-1j*2*pi*t*fc);
Phase = 2*pi*d*sin(theta)/lambda;
st = st/trace(st*st');
Interformer01 = st;
%%信道化
D = 16;
si = 1:length(h);
h_channel = zeros(D,length(h));
im = sqrt(-1);
for j = 1:D
    h_channel(j,:) = downsample(h.*exp((im*2*pi*((si-1)*(j-1)))/D),1);
end
figure()
for i = 1:D
    plot(abs(fft(h_channel(i,:))));
    hold on;
end
Interformer_channel = zeros(D,len/D);
for i = 1:D
    Interformer_channel(i,:) = downsample(filter(h_channel(i,:),1,Interformer01),D);
end
figure()
for i = 1:D
    subplot(4,4,i)
    plot(real((Interformer_channel(i,:))));
end
%%信道化實現思路
si_new = 1:length(h)/D;
Interformer01_py = (reshape(Interformer01,D,len/D));
% Interformer01_py = Interformer01_py.*repmat((exp(1j/2*pi*si_new)),length(h)/D,1);
% h_py = reshape(h,D,length(h)/D);
h_py = fliplr(reshape(h,D,length(h)/D));%.*repmat((exp(1j/2*pi*si_new)),D,1);
Interformer02_channel = zeros(D,len/D);
 
for i = 1:D
   Interformer02_channel(i,:) = downsample(filter(h_py(i,:),1,Interformer01_py(i,:)),1);
%    Interformer02_channel(i,:) = Interformer02_channel(i,:)*(-1)^(i-1)*exp(-1j*pi/2/D*(i-1));
end
Interformer02_channel = fft(Interformer02_channel);
figure()
for i = 1:D
    subplot(4,4,i)
    plot(real((Interformer02_channel(i,:))));
end

  信道化結果:

直接信道化:

多相實現:

該方式比直接實現,兔耳效應更明顯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM