How do I only get vectors out of the butter function?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I am using the function butter as follows.
freq = 125;
rate = 300;
t = [0:0.1:4*pi]
s = sin(t);
[b,a] = butter(2,freq/(rate*2),'low');
dataIn = s;
dataOut = filter(b,a,dataIn);
When I look at b it is a 2x2 matrix, however to use the filter function it must be a vector.
I am using the R2017a.
I have also tried modifying the matlab example in browser and I get a vector
Where am I going wrong?
1 Commento
Alex Mcaulley
il 23 Mag 2019
Following butter documentation a and b are always row vectors (also running your code).
Risposte (2)
Jan
il 23 Mag 2019
I cannot confirm this. With standard Matlab functions, butter replies vectors. So check, if you use the official function:
which butter -all
2 Commenti
Star Strider
il 23 Mag 2019
Your filter design has other problems. Your actual sampling frequency is:
Fs = 1/mean(diff(t));
or 10, and the Nyquist frequency (that you use to normalise your desired frequency) is half of that.
Your butter call should be:
[b,a] = butter(2,freq/(Fs/2),'low');
Note also that ‘freq’ must be less than ‘Fs/2’, so a passband frequency of 300 will fail.
It is also better to use filtfilt than filter to do the actual filtering.
0 Commenti
Vedere anche
Categorie
Scopri di più su Digital Filter Analysis 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!