matlab 求信号频率响应,频率响应 - MATLAB Simulink - MathWorks 中国
数字域
freqz 使用基于 FFT 的算法来计算数字滤波器的 Z 变换频率响应。具体来说,语句
[h,w] = freqz(b,a,p)
返回数字滤波器的包含 p 个点的复频率响应 H(ejω)。
H(ejω)=b(1)+b(2)e−jω+...+b(n+1)e−jωna(1)+a(2)e−jω+...+a(m+1)e−jωm
在其最简单的形式中,freqz 接受滤波器系数向量 b 和 a 以及整数 p(该整数指定计算频率响应所用的点的数量)。freqz 以弧度/秒为单位返回向量 h 中的复频率响应,以及向量 w 中的实际频率点。
freqz 可以接受其他参数,例如采样频率或由任意数量的频率点构成的向量。以下示例求 12 阶 Chebyshev I 类滤波器的 256 点频率响应。调用 freqz 将采样频率 fs 指定为 1000 Hz:
[b,a] = cheby1(12,0.5,200/500);
[h,f] = freqz(b,a,256,1000);
由于参数列表包含采样频率,因此 freqz 返回向量 f,其中包含在频率响应计算中使用的 0 到 fs/2 之间的 256 个频率点。
注意
此工具箱使用单位频率是 Nyquist 频率的约定,定义为采样频率的一半。所有基本滤波器设计函数的截止频率参数均用 Nyquist 频率进行归一化处理。例如,对于采样频率为 1000 Hz 的系统,300 Hz 等于 300/500 = 0.6。要将归一化频率转换为围绕单位圆的角频率,请乘以 π。要将归一化频转换回赫兹,请乘以采样频率的一半。
如果您在不带输出参数的情况下调用 freqz,它会同时绘制幅值对频率的图和相位对频率的图。例如,截止频率为 400 Hz、基于 2000 Hz 的采样频率的九阶 Butterworth 低通滤波器是:
[b,a] = butter(9,400/1000);
要计算此滤波器的 256 点复频率响应,并使用 freqz 绘制幅值和相位,请使用
freqz(b,a,256,2000)
freqz 也可以接受由任意数量的频率点构成的向量,以用于频率响应计算。例如,
w = linspace(0,pi);
h = freqz(b,a,w);
计算由向量 b 和 a 定义的滤波器在 w 的频率点处的复频率响应。频率点可以是 0 到 2π 范围内的值。要指定从零到采样频率的频率向量,请在参数列表中同时包括频率向量和采样频率值。
下列示例说明如何计算和显示数字频率响应。传递函数的频率响应
计算并显示由以下传递函数描述的三阶 IIR 低通滤波器的幅值响应:
H(z)=0.05634(1+z-1)(1-1.0166z-1+z-2)(1-0.683z-1)(1-1.4461z-1+0.7957z-2).
将分子和分母表示为多项式卷积。求分布在整个单位圆上的 2001 个点上的频率响应。
b0 = 0.05634;
b1 = [1 1];
b2 = [1 -1.0166 1];
a1 = [1 -0.683];
a2 = [1 -1.4461 0.7957];
b = b0*conv(b1,b2);
a = conv(a1,a2);
[h,w] = freqz(b,a,'whole',2001);
绘制以分贝表示的幅值响应。
plot(w/pi,20*log10(abs(h)))
ax = gca;
ax.YLim = [-100 20];
ax.XTick = 0:.5:2;
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')
FIR 带通滤波器的频率响应
设计一个 FIR 带通滤波器,通带在 0.35π 和 0.8π 弧度/采样点之间,波纹为 3 dB。第一个阻带是从 0 到 0.1π 弧度/采样点,衰减为 40 dB。第二个阻带是从 0.9π 弧度/采样点到 Nyquist 频率,衰减为 30 dB。计算频率响应。同时以线性单位和分贝绘制其幅值。突出显示通带。
sf1 = 0.1;
pf1 = 0.35;
pf2 = 0.8;
sf2 = 0.9;
pb = linspace(pf1,pf2,1e3)*pi;
bp = designfilt('bandpassfir', ...
'StopbandAttenuation1',40, 'StopbandFrequency1',sf1,...
'PassbandFrequency1',pf1,'PassbandRipple',3,'PassbandFrequency2',pf2, ...
'StopbandFrequency2',sf2,'StopbandAttenuation2',30);
[h,w] = freqz(bp,1024);
hpb = freqz(bp,pb);
subplot(2,1,1)
plot(w/pi,abs(h),pb/pi,abs(hpb),'.-')
axis([0 1 -1 2])
legend('Response','Passband','Location','South')
ylabel('Magnitude')
subplot(2,1,2)
plot(w/pi,db(h),pb/pi,db(hpb),'.-')
axis([0 1 -60 10])
xlabel('Normalized Frequency (\times\pi rad/sample)')
ylabel('Magnitude (dB)')
高通滤波器的幅值响应
设计一个三阶高通 Butterworth 滤波器,它具有 0.5π 弧度/采样点的归一化 3-dB 频率。计算它的频率响应。用分贝表示幅值响应,并对其绘图。
[b,a] = butter(3,0.5,'high');
[h,w] = freqz(b,a);
dB = mag2db(abs(h));
plot(w/pi,dB)
xlabel('\omega / \pi')
ylabel('Magnitude (dB)')
ylim([-82 5])
使用 fvtool 重复计算。
fvtool(b,a)
matlab 求信号频率响应,频率响应 - MATLAB Simulink - MathWorks 中国相关推荐
- matlab数值拟合r2_用MATLAB求RMSE怎么用MATLAB计算均方误差
用MATLAB求RMSE 怎么用MATLAB计算均方误差 www.zhiqu.org 时间: 2020-12-07 function f=RMSE(h1,h2) %RMSE return RM ...
- matlab里面幂指数怎么写,幂和指数
- MATLAB Simulink
- MathWorks 中国
正整数幂 如果 A 为方阵并且 p 为正整数,则 A^p 实际上是将 A 乘以其自身 p-1 次.例如: A = [1 1 1 1 2 3 1 3 6]; A^2 ans = 3×3 3 6 10 6 ...
- matlab求离散系统,离散系统的MATLAB的实现.doc
离散系统的MATLAB的实现 离散系统的MATLAB实现 一.设计目的 通过该设计,理解系统的单位抽样响应,频率响应及零极点增益的概念及意义. 课程设计环境 计算机.MATLAB软件 设计内容及其主要 ...
- matlab编写信号采集程序,MATLAB语音信号采集课程设计
MATLAB语音信号采集课程设计 数字信号处理 课程设计报告 课设题目:语音信号的采集与处理 学 院:信息科学与工程学院 专 业:电子信息工程 班 级:电子0903 姓 名: 学 号: 指导教师:张海 ...
- 基于matlab的信号去噪,基于matlab的信号去噪研究.doc
基于matlab的信号去噪研究.doc 学 生 毕 业 设 计(论 文) 课题名称 基于 MATLAB 的信号去噪研究 姓 名 陈文 学 号 051220206 院 系 物电系 专 业 电子信息工程 ...
- matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...
点击查看MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的具体信息 答:myfactorial = @(n) factorial(n) myfactorial = @(n) pro ...
- 离散冲激函数matlab,表示信号系统的matlab函数工具箱.doc
电孑科技丈学 实验报告 学生姓名:学号:指导教师: 一.实验室名称:信号与系统实验室 二.实验项目名称:表示信号.系统的matlab函数.工具箱 三.实验原理: 1?对于离散时间信号的加法与乘法,表达 ...
- 阶跃信号的matlab,单位阶跃信号的表示-matlab
<单位阶跃信号的表示-matlab>由会员分享,可在线阅读,更多相关<单位阶跃信号的表示-matlab(5页珍藏版)>请在人人文库网上搜索. 1.单位阶跃信号单位阶跃信号的定义 ...
- matlab随机信号分析,基于MATLAB的随机信号分析方法.ppt
<基于MATLAB的随机信号分析方法.ppt>由会员分享,可在线阅读,更多相关<基于MATLAB的随机信号分析方法.ppt(31页珍藏版)>请在人人文库网上搜索. 1.基于MA ...
- 信号与系统Matlab M6-2,信号与系统matlab实验与答案
频率越高,图像更加密集. 用 MATLAB 产生音阶信号 1 2 3 4 5 6 7 1,并播放,抽样频率可设为 8000 Hz. 利用 MATLAB 产生信号 x1 t cost 和 x1 t co ...
最新文章
- java运行环境jdk的安装和环境变量的配置教程
- JavaMoney规范(JSR 354)与对应实现解读
- Codeforeces 954C Matrix Walk
- 轻松构建基于 Serverless 架构的弹性高可用音视频处理系统
- angular 接入 IdentityServer4
- matlab提示用户输入参数,调用函数显示输入参数不足
- SOA进入成熟应用阶段仍需时日
- 计算机办公软件中级考试题怎么做,计算机办公软件考试试题
- mzy git学习,禁用Fast forward的普通合并(六)
- 哥尼斯堡的“七桥问题” (25 分)
- uni-app开发APP和H5,分享功能
- 图片转视频python/ffmpeg
- java+vue的二维码生成,二维码上传服务器,二维码的压缩包下载
- execve系统调用_系统调用execve的入口sys_execve() | 学步园
- 有Go语言实战培训班吗?go语言开发环境搭建
- 基于javaweb的进销存管理系统(前后端分离+java+vue+springboot+ssm+mysql+redis)
- Aspose.OCR for Java Crack by Xacker
- JavaScript恶意代码
- h2database
- 2022电气试验考试试题及答案
热门文章
- css margin 塌陷 经典bug
- 投资的本质到底是什么?
- 如何在国外做好自然科学研究-2
- 微信公众号图文消息悄悄调整,注定10月12号是个不眠夜
- Bootstrap(一)
- 埃默里大学有计算机专业吗,埃默里大学计算机科学硕士排名第30(2020年TFE Times排名)...
- 人活一辈子到底为了啥?(人生苦短 我要学人工智能)一万年太久,只争朝夕。
- 虚拟手游服务器,自己搭建手机游戏服务器
- python可以制作大型游戏_python能做游戏吗-python能开发游戏吗
- 列宽一字符等于多少厘米_excel表格行高和列宽各是多少毫米或厘米啊?