Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Filter of sin component of sound signal

2 vues (au cours des 30 derniers jours)
Even Wee
Even Wee le 18 Avr 2015
Clôturé : MATLAB Answer Bot le 20 Août 2021
Hey
This is a project that i am working on, there we are suppose to filter out a sin-component from a small sound signal.
I have the signal "x" already, this "x" contains the sound signal og the energy-spectral-density.
And I have done all the calculations for the filter and signal, and ended up with this differential equation:
y = 2*a*cos(W_s)*y(n-1) - a.^2*y(n-2) - b0*x(n) - b0*2*cos(W_s)*x(n-1) + b0*x(n-2);
So my next step is to get this signal y(n) and check and se if the sin-component is gone. I know that I should be loop like this:
for n = 3:length(x)
y(n) = 2*a*cos(W_s)*y(n-1) - a.^2*y(n-2) - b0*x(n) - b0*2*cos(W_s)*x(n-1) + b0*x(n-2);
end
But i am getting this error: Attempted to access y(2); index out of bounds because numel(y)=1.

Réponses (1)

Youssef  Khmou
Youssef Khmou le 18 Avr 2015
Modifié(e) : Youssef Khmou le 18 Avr 2015
Concerning the equation of y, can you explain its origin. As for the error, initial condition must be set :
y=zeros(size(x));
y(1)=x(1);
y(2)=x(2);
% for loop
  2 commentaires
Even Wee
Even Wee le 18 Avr 2015
Sorry, i have the y(n). It is an array of data like x(n), that contains the sound signal with the sin-component that need to be filtered.
So the differential equation is the differential-equation of the filter. And it should be causal, therefore I need to begin on n = 3.
Even Wee
Even Wee le 18 Avr 2015
Modifié(e) : Even Wee le 18 Avr 2015
Okay.. now i got it to work, and I manage to also filter the sin-component. It was a sign error in my differential-equation, it should be like this
y = 2*a*cos(W_s)*y(n-1) - a.^2*y(n-2) + b0*x(n) - b0*2*cos(W_s)*x(n-1) + b0*x(n-2);
And i think "y" was not initialized when i got this error: "Attempted to access y(2); index out of bounds because numel(y)=1."
But now it works as it should :)
Thank you.

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by