plot - Matlab element-wise power - can't understand how it works -
i have matched filter, want plot frequency response in matlab.
the filter response is: h(f) =
i tried to plot with:
%freqency_response_of_wiener_filter f = linspace(-1e3,1e3,1e5); h = ((2*pi*f)^2+10^6)/(11*(2*pi*f)^2+10^6+10^4); plot(f,h); xlabel('f') ylabel('h(f)')
which not working, giving me error of 'matrix dimensions must agree' kind. read 'element-wise power', seems fit need, , changed h
to:
h = ((2*pi*f).^2+10^6)/(11*(2*pi*f).^2+10^6+10^4);
this indeed plot something, not want :) tried also
h = ((2*pi)^2*f.^2+10^6)/(11*(2*pi)^2*f.^2+10^6+10^4);
with no luck. way got working is:
%freqency_response_of_wiener_filter f = linspace(-1e3,1e3,1e5); i=1:length(f) h(i) = ((2*pi*f(i))^2+10^6)/(11*(2*pi*f(i))^2+10^6+10^4); end plot(f,h);
why 'element-wise power' not working me?
more - differenece between regular operation 'element-wise operation'? because, example, on here: an introduction matlab, there's plot:
a = 0:.01:5; b = cos(2*pi*a); plot(a,b)
and one:
x = 2:.1:4; y = 1./x; plot(x,y) xlabel('x'); ylabel('y');
and can't tell difference between them. why on first 1 there no need of 'element-wise operation', while in second 1 there was?
thanks.
the reason why h = ((2*pi)^2*f.^2+10^6)/(11*(2*pi)^2*f.^2+10^6+10^4);
did not work because need ./
:
h = ((2*pi)^2*f.^2+10^6)./(11*(2*pi)^2*f.^2+10^6+10^4);
in first case:
a = 0:.01:5; b = cos(2*pi*a); plot(a,b)
you not need element-wise-operation because there 1 way of doing cosine of vector or matrix.
on other hand, in case:
x = 2:.1:4; y = x.^2; plot(x,y) xlabel('x'); ylabel('y');
you need specify want make element-wise operation rather multiplying matrix (that works square matrices).
in second case post:
x = 2:.1:4; y = 1./x; plot(x,y) xlabel('x'); ylabel('y');
you need .
matlab understand 1
has vector of ones length numel(x)
.
Comments
Post a Comment