M-Files

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;



Plotting noisy signal in time and frequency domain
[signal, freq] = wavread('noisy1.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;



Filtered Signal In Time And Frequency Domain
[signala,freq]=wavread('noisy1.wav');
fs = 1500;
fp = 2000;
ft = 8000;
Wn = (fs+fp)/ft;
B = fir1(51,Wn);
y = filter(B,1,signala);
wavwrite(y,'fir1.wav');
[signal,freq]=wavread('fir1.wav');
n = length(signal);
 

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;



Calculating the SNR and MSE

[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);
 
 

BACK 1