How do you find Error response in Parks-McClellan algorithm

조회 수: 3 (최근 30일)
Anh Dao
Anh Dao 2019년 11월 15일
답변: Raunak Gupta 2019년 11월 19일
This is the code for a parks-McClellan, I used custom function so everything is correct
My question is how to get Error response like above? Thank you! Screen Shot 2019-11-15 at 2.10.56 AM.png
wp = 0.2*pi; ws = 0.3*pi; Rp = 0.25; As = 50;
[delta1,delta2] = db2delta(Rp,As);
[N,f,m,weights] = firpmord([wp,ws]/pi,[1,0],[delta1,delta2]);
h = firpm(N,f,m,weights);
[db,mag,pha,grd,w] = freqz_m(h,[1])
delta_w = 2*pi/1000; wsi=ws/delta_w+1; wpi = wp/delta_w;
Asd = -max(db(wsi:1:501))
N = 46
h = firpm(N,f,m,weights);
[db,mag,pha,grd,w] = freqz_m(h,[1])
Asd = -max(db(wsi:1:501))

답변 (1개)

Raunak Gupta
Raunak Gupta 2019년 11월 19일
Hi,
In the above code ‘mag’ is the response from the designed filter using the Park’s-McClellan algorithm. For Comparing this response to the ideal one you may need to create a signal which is ‘1’ between [0,0.2π] and ‘0’ between [0.3π,π]. Since the output of the filter has 501 evaluation points the same will be the format for ideal response. Following code will help plotting the error response.
ideal = zeros(1,501);
ideal(1,1:101) = 1;
Error = mag-ideal;
Error (101:151) = nan;
t=linspace(0,1,501);
plot(t, Error);
It is recommended to provide source for the helper functions used in the code such as db2delta , freqz_m as these are custom written functions.

카테고리

Help CenterFile Exchange에서 Digital Filter Design에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by