Plotting original signal in time and frequency
domain
[signal, freq] = wavread('orig1.wav');
n=length(signal);
figure;
plot((1:n)/freq,signal);
title('Original signal in time domain');
xlabel('second');
grid;
figure;
signal0=signal-mean(signal);
fsignal=fft(signal0);
plot((1:n/2)/n*freq,abs(fsignal(1:n/2)))
title('Original signal in frequency domain');
xlabel('Hz')
ylabel('magnitude');
grid;
figure;
plot((1:n/2)/n*freq,unwrap(angle(fsignal(1:n/2))))
title('Original signal in frequency domain');
xlabel('Hz');
ylabel('phase');
grid;
figure;
plot((1:n)/freq,signal);
title('Original signal in time domain');
xlabel('second');
grid;
figure;
signal0=signal-mean(signal);
fsignal=fft(signal0);
plot((1:n/2)/n*freq,abs(fsignal(1:n/2)))
title('Original signal in frequency domain');
xlabel('Hz')
ylabel('magnitude');
grid;
figure;
plot((1:n/2)/n*freq,unwrap(angle(fsignal(1:n/2))))
title('Original signal in frequency domain');
xlabel('Hz');
ylabel('phase');
grid;
figure;
plot((1:n)/freq,signal);
title('Filtered signal in time domain');
xlabel('second');
grid;
figure;
signal0=signal-mean(signal);
fsignal=fft(signal0);
plot((1:n/2)/n*freq, abs(fsignal(1:n/2)));
title('Filtered signal in frequency domain');
xlabel('Hz');
ylabel('magnitude');
grid;
figure;
plot((1:n/2)/n*freq, unwrap(angle(fsignal(1:n/2))));
title('Filtered signal in frequency domain');
xlabel('Hz');
ylabel('phase');
grid;
[signal, freq]=wavread('orig1.wav');
n=length(signal);
[noisy, freq]=wavread('noisy1.wav');
m=length(noisy);
N=20;
Wn=(0.4375);
B = FIR1(N,Wn);
y=filter(B,1,noisy);
%wavwrite(y,'filtered.wav');
%MSE of the original signal and the filtered signal
MSE=sum((y-signal).^2)/n;
disp(MSE);
%SNR of the original signal and the filtered signal
SNR=10.*log10(1/n.*(sum(signal.^2))./MSE);
disp(SNR);
%MSE of the original signal and the noisy signal
MSE= sum((noisy-signal).^2)/n;
disp(MSE);
%SNR of the original signal and the noisy signal
SNR=10.*log10(1/n.*(sum(signal.^2))./MSE);
disp(SNR);