Plotting IIR filter error
3 次查看(过去 30 天)
显示 更早的评论
I have an IIR filter I am trying to plot, but I am not sure what I am doing wrong here. Can someone please help?
My code:
%% This is a first part of an exercise.
% Here you are implementing the transfer function H(z).
% Pass different values of theta and r to have differnt outcome.
clc; clear all;
%% Part -1 simulation
% initialize r
r = 0.99 ;
%initialize theta
theta = pi/3 ;
% initialize omega vector. Let, ω to start from 0 to pi with % 200 intermediate values.
w = 200 ;
% Now, define z = e^(j*w).
z = exp(1i*w);
% implement H
H = 1./(1 - (2*r*cos(theta)*(z.^-1))+((r^2)*(z.^-2)));
% Now, plot the filter magnitude response in dB scale w.r.t w.
figure;plot(w, );grid on;
xlabel('normalized frequency'); ylabel('amplitude in dB')
title('Frequency and phase response at r = and theta = ');
2 个评论
采纳的回答
Star Strider
2019-11-2
You are plotting one point, so you need to plot a marker instead of a line.
I am not certain what you are doing, so consider this example:
% Now, define z = e^(j*w).
z = @(w) exp(1i*w);
% implement H
H = @(w) 1./(1 - (2*r*cos(theta)*(z(w).^-1))+((r^2)*(z(w).^-2)));
% Now, plot the filter magnitude response in dB scale w.r.t w.
w = linspace(-100*pi, 100*pi, 250);
figure;plot(w, abs(H(w)));grid on;
xlabel('normalized frequency'); ylabel('amplitude in dB')
title('Frequency and phase response at r = and theta = ');
Experiment to get the result you want.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!