作业帮 > 数学 > 作业

matlab,信号与系统相关

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/10 20:14:11
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求幅值响应与相频响应,要求尽量少得用系统自带公式,
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