matlab仿真一阶低通滤波器幅频特性和相频特性讲课教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m a t l a b仿真一阶低通滤波器幅频特性和相
频特性
freqs
模拟滤波器的频率响应
语法:
h = freqs(b,a,w)
[h,w] = freqs(b,a)
[h,w] = freqs(b,a,f)
freqs(b,a)
描述:
freqs 返回一个模拟滤波器的H(jw)的复频域响应(拉普拉斯格式)
请给出分子b和分母a
h = freqs(b, a, w) 根据系数向量计算返回模拟滤波器的复频域响应。freqs 计算在复平面虚轴上的频率响应h,角频率w确定了输入的实向量,因此必须包含至少一个频率点。
[h, w] = freqs(b, a) 自动挑选200个频率点来计算频率响应h
[h, w] = freqs(b, a, f) 挑选f个频率点来计算频率响应h
例子:
找到并画出下面传递函数的频率响应
Matlab代码:
a = [1 0.4 1];
b = [0.2 0.3 1];
w = logspace(-1, 1);
logspace 功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50。
freqs(b, a, w);
You can also create the plot with:
h = freqs(b,a,w);
mag = abs(h);
phase = angle(h);
subplot(2,1,1), loglog(w,mag)
subplot(2,1,2), semilogx(w,phase)
To convert to hertz, decibels, and degrees, use:
f = w/(2*pi);
mag = 20*log10(mag);
phase = phase*180/pi;
算法:
freqs evaluates the polynomials at each frequency point, then divides the numerator response by the denominator response:
s = i*w;
h = polyval(b,s)./polyval(a,s)
一阶低通滤波器频响计算:
%******************************************************************* *******
%一阶低通滤波器
% 取fH = 1/(2Π*R*C)
% s=jw=j*2Π*f
% 1 1
%RC电路的电压增益 AVH = ——————— = —————————(传递函数)
% 1 + sRC 1 + j(f/fH)
% 1 1
%电压增益的幅值(模)|AVH| = ————————— = ————————(幅频响应)
% /——————/————————
% \ / 1 + (wCR)^2 \ / 1 + (f/fH)^2
% V V
%
%电压增益的相位角ΦH = - arctg(wRC) = - arctg(f/fH) (相频响应)%******************************************************************* *******
R=10000; %电阻的值
C=0.0000001; %电容的值
fZ=1; %H(e^jw)表达式分子的系数向量
fM=[R*C,1]; %H(e^jw)分母的系数向量
%logspace 功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50。
w=logspace(-1,5); %设定频率的变化范围
%freqs 根据系数向量计算返回一个模拟滤波器的H(e^jw)的复频域响应(拉普拉斯格式)
g=freqs(fZ,fM,w); %求其频率响应
%angle()返回复数元素的相角,单位为弧度
x=angle(g); %求相频响应
%abs()对复数返回其幅值
y=abs(g); %求幅频响应
subplot(2,1,1),
%loglog()绘制双对数坐标,semilogx()/semilogy()绘制单对数坐标
semilogx(w,x*180/pi) %画相频响应的曲线
hw=line([0.1,1000],[-45,-45]);
set(hw,'LineWidth',1);
set(hw,'color','r');
xlabel('角频率/ (rad/s)');
ylabel('角度/ °');
grid on;
subplot(2,1,2), %画幅频响应的曲线
semilogx(w,20*log10(y))
h=line([0.1,10000],[-20,-20]);
set(h,'LineWidth',1);
set(h,'color','r');
xlabel('角频率/ (rad/s)');
ylabel('幅值/ dB');
grid on;