Asked by Ted oscar
on 28 Dec 2011

C SUBROUTINE: LREMV C THIS SUBROUTINE CAN REMOVE THE DC COMPONENT AND SLOPE OF AN ARRAY OF C DATA IF DESIRED C------------------------------------------------------------------ SUBROUTINE LREMV (XX, NNN, ISWCH, DC, SLOPE) C C INPUT: XX = INPUT DATA ARRAY C NNN = NUMBER OF POINTS IN DATA ARRAY C ISWCH = 0 DO NOT REMOVE DC COMPONENT OR SLOPE C = 1 REMOVE THE DC COMPONENT C > 1 REMOVE THE DC COMPONENT AND SLOPE C OUTPUT: DC = DC COMPONENT OF DATA C SLOPE = SLOPE OF DATA C IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION XX(16384) C C ESTABLISH CONSTANTS C FLN = FLOAT(NNN) DC = 0.0 SLOPE = 0.0 C DO 10 I=1,NNN DC = DC + XX(I) SLOPE = SLOPE + XX(I)*FLOAT(I) 10 CONTINUE C C COMPUTE STATISTICS C DC = DC/FLN SLOPE = 12.0*SLOPE/(FLN*(FLN*FLN-1.0)) - 6.0*DC/(FLN-1.0) C C DETERMINE KIND OF TREND REMOVAL C IF (ISWCH-1) 60, 40, 20 C C REMOVE TREND (MEAN AND SLOPE) C 20 CONTINUE FLN = DC - 0.5*(FLN+1.0)*SLOPE DO 30 I=1,NNN XX(I) = XX(I) - FLOAT(I)*SLOPE - FLN 30 CONTINUE GO TO 60 C C REMOVE THE DC COMPONENT C 40 CONTINUE DO 50 I=1,NNN XX(I) = XX(I) - DC 50 CONTINUE C 60 RETURN END

*No products are associated with this question.*

Answer by Walter Roberson
on 28 Dec 2011

Accepted answer

Show 4 older comments

Derek O'Connor
on 29 Dec 2011

Walter Roberson
on 29 Dec 2011

5-3-84 or earlier according to the source. See pdf page 308 of http://dspace.mit.edu/bitstream/handle/1721.1/33805/15674832.pdf?sequence=1

They were extracted from Programs for Digital Signal Processing, which was published (IEEE Press) 1979, revised 1981, so with the 1984 source date we can safely assume a later revision date for the section, but we cannot tell where in 1979 to 1984 that particular routine was written.

Only 25 to 30 years, Derek ;-)

Besides, it isn't a Computed GOTO, it is an Arithmetic IF

http://www-linac.kek.jp/cont/langinfo/web/Fortran/docs/lrm/lrm0128.htm#arith_if_stmt

Opportunities for recent engineering grads.

## 1 Comment

## Sebastian Schaefer (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/24840#comment_54933

What is your question? Do you want to implement this algorithm with MATLAB code? How far have you got? An alternative would be to compile this code to a Fortran mexfile for MATLAB.