matlab中fpts函数是什么意思,matlab,信号与系统相关

这篇博客介绍了如何使用MATLAB计算传递函数的幅值响应与相频响应,主要涉及Z变换和频率响应的概念。通过Z变换公式,将复指数形式的频率替换为Z值,然后利用循环计算频率响应。同时,对比了使用MATLAB内置函数`freqz`得到的结果,两者一致。此外,提到了使用雷米兹方法设计低通滤波器的系数`b`。
摘要由CSDN通过智能技术生成

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2021/04/02 15:13:32

matlab,信号与系统相关

已知传递函数为H(z)=[(z^2-2*0.95*z*cos(pi*0.5)+0.95^2)(z^2-2*0.95*cos(pi*0.7)+0.95^2)(z^2-2*0.95*z*cos(pi*0.9)+0.95^2)]/z^6,通过matlab求幅值响应与相频响应,要求尽量少得用系统自带公式,

由z变换的定义,可以得到

z = e^(sTs) , s = jw, 所以 z = e^(jwTs) = e^(j2pif/fs), fs为采样频率

根据奈奎斯特定理,频带f应该满足 f < fs/2

因而,根据z变换计算频率响应,只要用e^(jw)代替z即可,然后让w由0增加到pi,以w为更坐标,|H(z)|为纵坐标即得到频响曲线,实际中一般取对数显示.

例如:

b = [-0.0053 -0.0243 -0.0176 0.0075 0.0224 -0.0020 -0.0317 -0.0108...

0.0418 0.0355 -0.0504 -0.0877 0.0562 0.3119 0.4417 0.3119...

0.0562 -0.0877 -0.0504 0.0355 0.0418 -0.0108 -0.0317 -0.0020...

0.0224 0.0075 -0.0176 -0.0243 -0.0053]

N = 256;

w = 0:1:N-1;

w = w*1*pi./N;

z = exp(sqrt(-1)*w);

hz = zeros(1, length(z));

for i=1:1:length(b)

hz = b(i) * z.^(-1*(i-1)) + hz;

end

[hzz ,w] = freqz(b, 1, N);

figure();plot(20*log10(abs(hz)));

figure();plot(20*log10(abs(hzz)));

图1是将b进行z变换后,按照之前方法计算频响的曲线

图2是matlab内置函数得到的,2者是一样的.

b为一fir低通滤波器系数.

再问: 能解释下b是怎么得出来得吗

再答: fedge = [800 1000]; % wc = 800hz, wt = 1000hz mval = [1 0]; dev = [0.0559 0.01]; % o1 = 0.5db, so o1 = 1 - 10^(-0.5/20) = 0.0559, At = -40db, so o2 = 10^(At/20) = 0.01 fs = 4000; % sample frequency = 4000hz [N, fpts, mag, wt] = remezord(fedge, mval, dev, fs); % length(fedge) = 2 * length(mval) - 2 b = remez(N, fpts, mag, wt); 雷米兹方法设计的低通滤波~时域就是b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值