How to test if two signals are equal

8 views (last 30 days)
Hello, I have computed by hand the frequency domain transfer function from a difference equation of a digital filter. I wanted to test if my computation is right, so I implemented both the difference equation and the frequency domain transfer function in Matlab. I chose a signal and I sent it through both of them separately. Now, how do I test if the two filtered signals are equal?
Thanks.

Accepted Answer

Wayne King
Wayne King on 25 Nov 2011
As a simple example of my answer:
"Why do you need to input a signal? If you have the Fourier transform of your filter and the coefficients that give the difference equation, then just use freqz() with the coefficients to see if you have the correct Fourier transform. "
% coefficients from linear constant coefficient difference equation
% use freqz() to compute the frequency response
[H,W] = freqz([1/sqrt(2) 1/sqrt(2)],1);
% Compare to calculated Fourier transform
omega = 0:pi/512:pi-(pi/512);
FT = sqrt(2)*exp(-1j*omega./2).*cos(omega./2);
plot(W,abs(H)); hold on;
plot(W,abs(FT),'r-.','linewidth',2);

More Answers (2)

Image Analyst
Image Analyst on 25 Nov 2011
Did you try subtracting them and seeing if all the elements are zero (or really close to zero)?
  2 Comments
Italo
Italo on 25 Nov 2011
That was a good suggestion.
However it doesn't work in this case. The two filtered signals are out of phase. This means that when I substract them, the result is a signal with all the peaks of the operands.
Image Analyst
Image Analyst on 25 Nov 2011
Maybe try normalized cross correlation using normxcorr2() in the Image Processing Toolbox. Look for high values indicating it is well aligned for some shift.

Sign in to comment.


Wayne King
Wayne King on 25 Nov 2011
Why do you need to input a signal? If you have the Fourier transform of your filter and the coefficients that give the difference equation, then just use freqz() with the coefficients to see if you have the correct Fourier transform.

Categories

Find more on Signal Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!