matlab project report

Description
The attachment is a matlab program language which create filter function. the report is to describe the program
and the research result. My major is music technology so the program is about audio. It includes low pass and hi
pass filter.

clc;
clear;
close all;

% %%recording
fs=48000;
nogo=0;
r = audiorecorder(fs, 16, 1);%create recording object
recordingtime = 5; %record at least 5s
disp([num2str(recordingtime),’s recording start, Please speak…’ ]);
while not (nogo)
try
recordblocking(r,recordingtime);
nogo=1;
catch
disp([num2str(recordingtime),’seconds elapsed… try again!’]);
end
end
data = getaudiodata(r, ‘int16’); % get data as int16 array
r.stop;

%%save as file
audiowrite(‘test.wav’,data,fs);

%play recording
[y,fs]=audioread(‘test.wav’);%read audio
p = audioplayer(y,fs);%play audio
play(p);

%normalization
y= y/max(y);
%figure audio
figure
plot([1:length(y)]/fs ,y);
xlabel(‘Time(s)’);
ylabel(‘Amplitude(V)’);
title(‘Signal in time domain’);

%frequency domain
N=length(y);
absfft=abs(fft(y));
df=fs/(N-1) ;%resolution
f=(0:N-1)*df;%frequency
Y=fft(y)/N*2;%amplitude

figure
plot(f(1:N/2),abs(Y(1:N/2)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Signal in frequence domain’);

figure
N1 = round((4000/fs)*(N/2));
plot(f(1:N1),abs(Y(1:N1)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Signal in frequence domain(0~4khz)’);

%make white noise and add in the signal
noise = randn(1,length(y));
noise = noise-mean(noise);
noise = noise / std(noise);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%low pass filter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% process white noise
% create IIR filter, hi pass
N= 8;
Wn = 5000/(fs/2);
[b,a]=butter(N,Wn,’high’);
noiseP = filter(b,a,noise);
G=0.01;
y1 = noiseP’*G+y;

figure
plot(y1);
xlabel(‘Sample’);
ylabel(‘Amplitude’);
title(‘Noised signal time domain’);
%%save as file
audiowrite(‘test1.wav’,y1,fs);
%play speech with noise

[y1,fs]=audioread(‘test1.wav’);%read audio file
p = audioplayer(y1,fs);%play audio
play(p);

%figure audio
figure
plot([1:length(y1)]/fs,y1);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Noised Signal in time domain’);

%frequency domain
N=length(y1);
absfft=abs(fft(y1));
df=fs/(N-1) ;%resolution
f=(0:N-1)*df;%frequency
Y=fft(y1)/N*2;%amplitude

figure
plot(f(1:N/2),abs(Y(1:N/2)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Noised Signal in frequence domain’);

figure
N1 = round((4000/fs)*(N/2));
plot(f(1:N1),abs(Y(1:N1)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Noised Signal in frequence domain(0~4khz)’);

%filter from 5kHz to fs/2
%create FIR low pass filter,reduce noise above 5kHz
Wn = 5000/ (fs/2);
N = 30;
wdham = (hamming(N+1))’;
b = fir1(N,Wn,’low’,wdham);
%frequency response
figure
freqz(b,1);
%filter
y2 = filter(b,1,y1);
%play speech
soundsc(y2,fs);
%%save as file
audiowrite(‘test2.wav’,y2,fs);
%figure audio
figure
plot([1:length(y2)]/fs,y2);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Filtered signal use FIR in time domain’);

% create IIR low pass filter below 5kHz
Wn = 5000/(fs/2);
[b,a]=butter(N,Wn,’low’);
%frequency response
figure
freqz(b,1);
%filter
y3 = filter(b,a,y1);
figure
plot([1:length(y3)]/fs,y3);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Filtered signal use IIR in time domain’);
%%save as file
audiowrite(‘test3.wav’,y3,fs);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%hi pass filter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% process white noise
% create IIR low pass filter below 200Hz
N= 8;
Wn = 200/(fs/2);
[b,a]=butter(N,Wn,’low’);
noiseP = filter(b,a,noise);
G=0.01;
y1 = noiseP’*G+y;
figure
plot(y1);
xlabel(‘Sample’);
ylabel(‘Amplitude’);
title(‘Noised signal time domain’);
%%save as file
audiowrite(‘test1_1.wav’,y1,fs);
%play speech

[y1,fs]=audioread(‘test1_1.wav’);%read audio
p = audioplayer(y1,fs);%play audio
play(p);
%figure audio
figure
plot([1:length(y1)]/fs,y1);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Noised Signal in time domain’);

%frequency domain
N=length(y1);
absfft=abs(fft(y1));
df=fs/(N-1) ;%resolution
f=(0:N-1)*df;%frequency
Y=fft(y1)/N*2;%amplitude

figure
plot(f(1:N/2),abs(Y(1:N/2)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Noised Signal in frequence domain’);

figure
N1 = round((4000/fs)*(N/2));
plot(f(1:N1),abs(Y(1:N1)));
xlabel(‘Frequency(Hz)’);
ylabel(‘NormalizatedPSD’);
title(‘Noised Signal in frequence domain(0~4khz)’);

%create FIR hi pass filter,reduce noise above 200Hz
Wn = 200/ (fs/2);
N = 40;
wdham = (hamming(N+1))’;
b = fir1(N,Wn,’high’,wdham);
%frequency response
figure
freqz(b,1);
%filter
y4 = filter(b,1,y1);
%play speech
soundsc(y4,fs);
%%save as file
audiowrite(‘test4.wav’,y4,fs);
%figure audio
figure
plot([1:length(y4)]/fs,y4);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Filtered signal use FIR in time domain’);

% create IIR hi pass filter from 200Hz
N= 8;
Wn = 200/(fs/2);
[b,a]=butter(N,Wn,’high’);
%frequency response
figure
freqz(b,1);
%filter
y5 = filter(b,a,y1);
figure
plot([1:length(y5)]/fs,y5);
xlabel(‘Sample(s)’);
ylabel(‘Amplitude(v)’);
title(‘Filtered signal use IIR in time domain’);
%%save as file
audiowrite(‘test5.wav’,y5,fs);

Order from us and get better grades. We are the service you have been looking for.