matlab仿真一阶低通滤波器幅频特性和相频特性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
freqs
模拟滤波器的频率响应
语法:
h = freqs(b,a,w) [h,w] = freqs(b,a) [h,w] = freqs(b,a,f) freqs(b,a)
描述:
freqs返回一个模拟滤波器的H(jw)的复频域响应(拉普拉斯格式)
”⑴ _ _ b⑴豹+ b(2)s n~^ + …+ b(n+ 1)
且個) a(l)5Pi+ _ 1+ ・・・+ atm + 1)
请给出分子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
例子:找到并画出下面传递函数的频率响应
0,3F +1 $2十0・4百十1
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 = an gle(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 polyno mials at each freque ncy point, the n divides the nu merator resp onse by the denomin ator resp on se: s = i*w;
h = polyval(b,s)./polyval(a,s) 一阶低通滤波器频响计算:
%************************************************************************** %一阶低通滤波器 % 取 fH = 1/( 2 n *R*C ) % s=jw=j*2 n *f
%
1
1
%RC 电路的电压增益
AVH = ——————— = —
—(传递函数)
1O L
10
150
IO P 1
M 1
-1
Freq uency
10° Freq uencv
石0|
电5另-01
肖
% 1 + sRC 1 + j(f/fH)
% 1 1
%电压增益的幅值(模)|AVH| = —————————= ————————(幅频响
应)
% /——————/ ————————
% \ / 1 + (wCR) A2 \ / 1 + (f/fH) A2
% V V
%
%电压增益的相位角①H = - arctg(wRC) = - arctg(f/fH) (相频响应)
%**************************************************************************
R=10000; %电阻的值
C=0.0000001; %电容的值
fZ=1; %H (eAjw )表达式分子的系数向量
fM=[R*C,1]; %H( eAjw )分母的系数向量
%logspace功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n 如果省略,则默认值为50。
w=logspace(-1,5); %设定频率的变化范围
%freqs根据系数向量计算返回一个模拟滤波器的H(eAjw)的复频域响应(拉普拉斯格式)
g=freqs(fZ,fM,w); %求其频率响应
%an gle()返回复数元素的相角,单位为弧度
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;