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

更新时间:2024-04-26 03:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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); %求相频响应 ?s()对复数返回其幅值 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;

本文来源:https://www.bwwdw.com/article/q76p.html

Top