Pravitha
Newbie level 2
Code Visual Basic - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 clc; clear all; close all; load handel.mat filename = 'handel.wav'; [x, fs]=audioread('handel.wav'); p=20; % order taken in papera lp=p; lp1=lp+1; [a g]=lpc(x,p); % finding lpc , prediction filter polynomial a , p is the order p=15 I = eye(lp,lp); i= zeros(lp,1); ppi = [i I]; pi =[ppi;a]; xf=x(1:p+1); G=zeros(1,p); G=[G,1]'; u=sqrt(.1)*rand(size(x)); % adding a random Gaussian noise eqn noissy H=zeros(1,p); H=[H,1]; y1=x+ u; no=y1; NN=length(x); Q= 0.000001; XX = zeros (lp1, NN); P = 10*eye (lp1,lp1); y=y1; R=.1; sound(x,Fs ) pause(size(x,1)/Fs); sound(no,Fs) pause(size(no,1)/Fs); i=1;w=.00001*randn(21,1); x_k=x(1:lp+1,1); p_k=x_k; for k=lp+2:NN pravi=pi*p_k+Q; Pk=pi*P*pi'+G*Q*G'; Kk=Pk*H'*(inv(H*Pk*H'+R)); p_k=pravi+Kk*(y(k-1)-H*pravi); I=eye(lp1,lp1); Pk_k=(I-(Kk*H))*Pk; M(i)=Pk_k(1,1); kavi=p_k; kavi1(i:lp+i)=kavi; i=i+1; end kavi2=kavi1'; sound(kavi2,Fs) figure; plot(kavi2,'r') hold on % x=x(1:lp1) plot(x,'g- ') legend('estimated' , 'input ') figure; plot(x,'g'); title ('ORIGINAL SIGNAL'); axis([0,200,-1,1]) hold on plot(no,'r'); title ('Noisy Speech Signal'); axis([0,200,-1,1]) hold on plot(kavi2); title ('ESTIMATED SIGNAL'); axis([0,200,-1,1])
Last edited by a moderator: