matlab理想低通滤波器代码_matlab简单低通滤波器

2022-11-02 09:09:50 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

低通滤波器的设计

设计低通滤波器的要求:

设低通滤波器通带截止频率为ωp=0.2π,阻带截止频率为ωs=0.4π,通带波纹Ag=0.5dB,最小阻带衰减Ar=50dB。

wp=0.2*pi;wr=0.4*pi;

trwidth=wr-wp; %过渡带宽度

N=ceil(6.64*pi/trwidth) 1; %滤波器的长度

n=0:1:N-1;

wc=(wr wp)/2;

hd=ideal_lp(wc,N);

w_ham=(hamming(N))’;

h=hd.*w_ham;

[db,mag,pha,grd,w]=freqz_m(h,[1]);

delta_w=2*pi/1000;

Ap=-(min(db(1:1:wp/delta_w 1)));

Ar=-round(max(db(wr/delta_w 1:1:501)));

subplot(221);stem(n,hd);title(‘理想单位脉冲响应hd(n)’)

subplot(222);plot(n,w_ham);title(‘海明窗w(n)’)

subplot(223);stem(n,h);title(‘实际单位脉冲响应h(n)’)

subplot(224);plot(w/pi,db);title(‘幅度响应(dB)’)

子程序:(1)function hd=ideal_lp(~,~)

%Ideal Lowpass filter computation

%[hd]=ideal_lp(wc,N)

% hd=ideal impulse response between 0 to N-1

% wc=cutoff frequency in radians

% N=length of the ideal filter

%

wp=0.2*pi;wr=0.4*pi;

tr_width=wr-wp;

N=ceil(6.64*pi/tr_width) 1; wc=(wr wp)/2;

alpha=(N-1)/2;

n=0:1:(N-1);

m=n-alpha eps;

hd=sin(wc*m)./(pi*m);

(2)function [db,mag,pha,grd,w] = freqz_m(~,~)

% Modified version of freqz subroutine

% ————————————

% [db,mag,pha,grd,w] = freqz_m(h,[1]);

% db = Relative magnitude in dB computed over 0 to pi radians

% mag = absolute magnitude computed over 0 to pi radians

% pha = Phase response in radians over 0 to pi radians

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/203658.html原文链接:https://javaforall.cn

0 人点赞