lowpass butterworth magnitude response
3 次查看(过去 30 天)
显示 更早的评论
Guys, im doing this matlab file for my assignment. I must have the magnitude response starts at 40db at 0khz.
My idea is that it should be 0db at 0 frequence in the magnitude response so that i can mulplify k*100 to satisfy this. But its over 200 from the start. I have no idea what to do. Please explain to me. Thank you
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1234717/image.png)
0 个评论
采纳的回答
Paul
2022-12-18
Hi Võ
The zp2sos command in the code returns a second output, g, which is a gain that has to be applied to the filter response.
Here is the code
Fs = 44100; %tan so lay mau
Fn = Fs/2;
Wp = 2500/Fn; %tan so bien dai thong
Ws = 4000/Fn; %tan so biet dai chan
Rp = 3; %do loi dai thong
Rs = 55; %do loi dai chan
%thiet ke va tim bac bo loc
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[z,p,k] = butter(n,Wn);
%ve dap ung xung cho 100 trong so
[sos,g] = zp2sos(z,p,k);
Plotting the response of the sos portion.
freqz(sos)
The value of g is
g
which can be converted to dB, and we see that applying it to the filter would result in 0 dB gain at dc
20*log10(g)
Alternatively, use the single output form of zp2sos the gain will be embedded in the sos, resulting in it having the expected response.
sos = zp2sos(z,p,k);
freqz(sos)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filter Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!