dB scale (log scale) of a polar plot graph
이전 댓글 표시
this is my function. how can i show it in dB scale? thanks everyone wants to help.
theta = 0:0.01:2*pi;
x = 60; % k*a
result =(((cos(theta)).*(sin((x/2).*sin(theta))/(x/2).*sin(theta))));
polar(theta,result)
댓글 수: 1
murat alboga
2014년 5월 14일
이동: Voss
2024년 6월 30일
Selamun aleykum everyone, hello... I have one questin abouth broadside array and polar pattern as dB. I have project in matlab.That is broadside array pattern.Below code, i achieved array factor as a magnitude, but when i converted array factor to dB graph is changed and corrupted. I'm tried figure out that problem but i didn't.Please can you help me... code:
N=5;
d=1;
k=2*pi;
theta=0:0.01:M+1;
psi=k.*d.*cos(theta);
AF=sinc((N.*psi./2)/pi)./sinc((psi./2)/pi);
figure;
polar(theta,AF);
mnAF=max(AF);
figure;
polar(theta,20*log10(AF));
array factor as magnitude

dB scale:

답변 (5개)
Jonathan LeSage
2013년 10월 17일
편집: Jonathan LeSage
2013년 10월 17일
0 개 추천
You can simply convert the results directly to the decibels scale and plot the transformed results using the polar function. I suggest you refer to the definition of the decibel first. Additionally, you can check out the mag2db function. Here are some useful links to get you started:
Once you have the results in terms of decibels, you can plot using the polar function as you did before!
댓글 수: 2
atarli
2013년 10월 18일
Ibrahim Samy
2017년 10월 24일
i think you better use polardb(theta , result, -20, '-k')
-20 for minimal db u can see
Dear Atarli,
Here is the conversion to decibel:
result =(((cos(theta)).*(sin((x/2).*sin(theta))/(x/2).*sin(theta))));
result_dB = 10 * log(result);
polar(theta,abs(result_dB))
polar(theta, angle(result_dB))
I hope it helps. Good luck!
댓글 수: 4
Azzi Abdelmalek
2013년 10월 17일
What about negative values?
sixwwwwww
2013년 10월 17일
For negative amplitude values we will complex dB which can be used as above. Thanks for correction
atarli
2013년 10월 18일
sixwwwwww
2013년 10월 18일
You can plot it but in case of negative values of result you should make two plots separately as I did. One plot will be for absolute value and other will be for phase value
Vivek Selvam
2013년 10월 17일
0 개 추천
But careful about the gain conversion as given the tool description (polar_dB makes a plot of gain=10*log10(g) versus polar angles phi)
댓글 수: 2
atarli
2013년 10월 18일
Vivek Selvam
2013년 10월 18일
log10() is imaginary for negative values and negative for values between 0 and 1. You might want to solve that.
Yasir Ahmed
2018년 1월 24일
0 개 추천
Yes that happens because the array response in certain directions is very close to zero and on a logarithmic scale that's a big negative value. Polar plot can only handle values zero and above. So one way around this problem is to divide the vector by the minimum value of the vector so that on a log scale the minimum value is zero (20*log10(1)=0). This will work quite well if the range of values in the vector is not that big. For more visit:
카테고리
도움말 센터 및 File Exchange에서 Polar Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!