# How would you draw this in MATLAB?

3 Ansichten (letzte 30 Tage)
S. David am 4 Mär. 2012
Hi,
I have an equation for the absorption coefficient in underwater acoustic communication channel (UWA) as:
alpha=0.11.*(f.^2./(1+f.^2))+44.*(f.^2./(4100+f))+2.75*10^-4.*f.^2+0.003;
where f is the frequency in kHz, and the absorption coefficient is given by dB/Km. I have a paper that plots this relation versus the frequency. It is straightforward as it appears at first, but when I tried to do it myself I have not gotten the same curve, even though the vertical axis in the paper is in dB/Km, which means it is just a direct substitution in the above equation. The question is why?
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
Rick Rosson am 4 Mär. 2012
Jan am 4 Mär. 2012
All we know is the formula and that you do not get the "same curve". It might be a typo in the formula, another scaling of log-scaling, different colors or line styles, a post-script problem in the paper, etc. I do not see a chance to guess the source of the differences yet. Please post the necessary details.

Melden Sie sich an, um zu kommentieren.

### Antworten (4)

S. David am 5 Mär. 2012
This is my code:
clear all;
clc;
f=10^3.*(0:1000);
alpha=(0.11.*((f.^2)./(1+f.^2))+44.*(f.^2./(4100+f))+(2.75.*10^(-4)).*(f.^2)+0.003);
plot(f,alpha)
Thanks
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Jan am 5 Mär. 2012
Unfortunately you still did not describe, which difference you mean. I guess it is the small wobble near to 60Hz.
When I read the explanation about the Figure 1 in this paper, I find at first the above formula and then:
This formula is generally valid for frequencies above a
few hundred Hz. For lower frequencies, the following
formula may be used:
10 log a(f) = 0.002+ 0.11*(f.^2 ./ (1 + f.^2)) + 0.011 * f.^2
I guess, that the author used this formula for the low frequency part.
##### 4 Kommentare2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
S. David am 5 Mär. 2012
Not much difference when I wrote f.^2 instead of f. Now, I need the program to work. Later I can consider more efficient one.
Jan am 5 Mär. 2012
Ok, not much, but at least enough?
I suggest the standard notation of numbers mainly, because this is faster to write and to read. This is more important than the runtime.

Melden Sie sich an, um zu kommentieren.

G A am 5 Mär. 2012
This gives the same picture as in the paper:
clear;
f=0:1000;%kHz
alpha=0.11.*f.^2./(1+f.^2)+44.*f.^2./(4100+f.^2)+2.75e-4.*f.^2+0.003;%dB/km
figure(1)
clf
plot(f,alpha,'-b')
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
G A am 5 Mär. 2012
multiplying f-array by 1e3 is not necessary
Honglei Chen am 5 Mär. 2012
In your original question, it says f is in kHz so that's why you don't need to multiply 1e3.

Melden Sie sich an, um zu kommentieren.

Saed am 5 Mär. 2012
That is great. What did you do? I mean I tried all of these stuff. Anyway, it is fine now. Thanks a lot.
##### 2 KommentareKeine anzeigenKeine ausblenden
G A am 5 Mär. 2012
1)I have used equation given in the paper. Jan has spotted your mistake. 2)I have removed frequency multiplication by 1e3 you have done.
S. David am 6 Mär. 2012
Thanks

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by