How to insert delay element in polyhase FIR filter implementation

1 回表示 (過去 30 日間)
sagar hukkire
sagar hukkire 2015 年 9 月 8 日
コメント済み: sagar hukkire 2015 年 9 月 15 日
I am able to create polyphase branches of Fir filter but now to add each branch response I need to insert delay element , how i can do it in coding

回答 (1 件)

Matt Cohen
Matt Cohen 2015 年 9 月 10 日
Hi Sagar,
I understand you are interested in inserting delay elements in a polyphase FIR filter implementation.
What form is your polyphase FIR filter stored in? Are you using a MATLAB System object to store it, or are you storing the filter coefficients for each branch in a matrix? From your question, it sounds like you have the branch FIR coefficients stored in something like the matrix form.
Typically with polyphase filters, you will have your branch filters designed with a certain filter length and an associated decimation value/rate for each branch. Each set of filter coefficients is responsible for filtering only a subset of the signal, starting at some delayed point in the signal and with samples spaced out by the decimation value. To accomplish the delay portion of the process, you will probably just need to shift the starting point of your array index while iterating over the signal.
For example, for a decimation rate of M = 2, with two filters (h1 and h2) and signal x, you could do two iterations, the first one using the signal subset x(1:M:end) and the second using x(2:M:end), and you could use the "filter" function to apply the branch filter - for example, for iteration 1, you could use "filter(h1,1,x(1:M:end))". In the end, you would sum up all of these filtered outputs, with some additional steps along the way.
I hope this helps. If this does not address your issue, please provide more details about your specific problem.
Matt
  1 件のコメント
sagar hukkire
sagar hukkire 2015 年 9 月 15 日
h is the set of coeffients decimation factor is 2
E = reshape(h,2,length(z)/2); % two sub band filters polyphase branches
[new1,w]=freqz(E(1,:)); %frequency response of suband filter1
[new2,w]=freqz(E(2,:));%frequency response of suband filter2
new3=new1+(delay_element eg.z^-1)new2
what will be the delay element in this case

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMultirate and Multistage Filters についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by