Repository: scipy/scipy

Issue:
Wrong error message about vector length in scipy.signal.filtfilt 
<!-- 
Thank you for taking the time to report a SciPy issue.
Please describe the issue in detail, and for bug reports
fill in the fields below. You can delete the sections that 
don't apply to your issue. You can view the final output
by clicking the preview button above.
-->

I think that the message of the ValueError raised by `scipy.signal.filtfilt` if the input array has the same length of the padding is wrong.

### Reproducing code example:
<!-- 
If you place your code between the triple backticks below, 
it will be marked as a code block automatically 
-->


```
import numpy as np
from scipy import signal

# create coefficients for the filter
order = 4
critical_frequecy = 0.02
b, a = signal.butter(order, critical_frequecy)

# computing the padlen
padlen = 100

# Creating a vector with the same length as padlen
data = np.random.random(padlen)

# The next instruction will raise the error:
# ValueError: The length of the input vector x must be at least padlen, which is 15.
signal.filtfilt(b, a, data, padlen=padlen)
```

### Error message:
<!-- If any, paste the *full* error message inside a code block
as above (starting from line Traceback)
-->
This is the error produced by the previous code:
```
Traceback (most recent call last):
  File "/tmp/example_filltfilt.py", line 17, in <module>
    signal.filtfilt(b, a, data, padlen=padlen)
  File "/tmp/lib/python3.6/site-packages/scipy/signal/signaltools.py", line 3126, in filtfilt
    ntaps=max(len(a), len(b)))
  File "/tmp/lib/python3.6/site-packages/scipy/signal/signaltools.py", line 3176, in _validate_pad
    "padlen, which is %d." % edge)
ValueError: The length of the input vector x must be at least padlen, which is 100.
```
The error states that the input vector **must be at least** (>=) `padlen`, while it must be greater (>) than `padlen`. Indeed, the [comment preceeding](https://github.com/scipy/scipy/blob/c3fa90dcfcaef71658744c73578e9e7d915c81e9/scipy/signal/signaltools.py#L3173) the correspondent check in the `_validate_pad`  used in `filtfilt` implementation says:

>     # x's 'axis' dimension must be bigger than edge.
and the condition of the `if` on the following line confirms this:
```if x.shape[axis] <= edge:```

Thus the error text message should be changed to: 
```ValueError: The length of the input vector x must be greater than padlen, which is 100.```

The same behaviour is shared by all the filters using `_validate_pad`.

### Scipy/Numpy/Python version information:
<!-- You can simply run the following and paste the result in a code block

-->
```
1.2.1 1.16.2 sys.version_info(major=3, minor=6, micro=8, releaselevel='final', serial=0)
```



Discussion:
@piecot this sounds right, can you open a PR to fix it?
Yes, no problem

Resolving patch:
diff --git a/scipy/signal/signaltools.py b/scipy/signal/signaltools.py
--- a/scipy/signal/signaltools.py
+++ b/scipy/signal/signaltools.py
@@ -3189,7 +3189,7 @@ def _validate_pad(padtype, padlen, x, axis, ntaps):
 
     # x's 'axis' dimension must be bigger than edge.
     if x.shape[axis] <= edge:
-        raise ValueError("The length of the input vector x must be at least "
+        raise ValueError("The length of the input vector x must be greater than "
                          "padlen, which is %d." % edge)
 
     if padtype is not None and edge > 0:


Test patch: