matlab仿真一阶低通滤波器幅频特性和相频特性讲课教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档