"butter" filter: Undefined function
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Emanuele Giartosio
il 5 Mag 2017
Commentato: Emanuele Giartosio
il 9 Mag 2017
Hi everyone,
I'm having some problems in creating a lowpass butter filter. I am using the function below:
fc = forceplatesInfo.frequency; % forceplates
[b,a] = butter(4,15/(fc/2),'low');
Where:
- fc is the frequency of the force plates (in this case it is 2000Hz)
It is a simple code but I keep getting this error: "Undefined function 'butter' for input arguments of type 'double'".
I used the matlab tutorial and i still can't figure this out.
Any ideas? Thanks Emanuele
0 Commenti
Risposta accettata
Jan
il 5 Mag 2017
Modificato: Jan
il 8 Mag 2017
The error message means, that you do not have the Signal Processing Toolbox, which is required for the butter command. But you can calculate the parameters for a lowpass Butterworth filter by your own:
function [B, A] = ButterLow(n, W)
V = tan(W * 1.5707963267948966);
Q = exp((1.5707963267948966i / n) * ((2 + n - 1):2:(3 * n - 1)));
Sp = V * Q;
% Bilinear transform:
P = (1 + Sp) ./ (1 - Sp);
Z = repmat(-1, size(P));
G = real(V ^ length(Q) / prod(1 - Sp));
% From Zeros, Poles and Gain to B (numerator) and A (denominator):
B = G * real(poly(Z'));
A = real(poly(P));
Più risposte (1)
Honglei Chen
il 5 Mag 2017
Do you have Signal Processing Toolbox installed? You can find out by typing
>> ver
in the command window.
HTH
Vedere anche
Categorie
Scopri di più su Analog Filters in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!