시청자가 TV를 보고 있지 않다면, 화면을 꺼버리는 것이 소비전력을 최고로 억제할 수 있겠지만, 잠시 한눈파는 일로 결정적인 순간을 놓칠 수는 없는 일이다. 이런 경우 눈은 다른 곳을 보고 있어도 소리만 들을 수 있으면 된다. 이때 사람의 얼굴을 인식해, 얼굴이 카메라 시야에서 사라지면 백라이트를 어둡게 하는 방법이나 검은 화면을 표시하는 방법을 쓴다면 어느 정도 전기가 절약이 될 것이다. 시청자의 얼굴이 다시 TV로 향하면 곧바로 원래 상태로 돌아오도록 한다. 이와 같은 에너지 절약 모드가 가능하려면 TV화면에 비치는 시청자의 얼굴을 인식할 수 있도록 카메라를 장착해야 한다. 시청자의 얼굴이 TV쪽이 아닌 다른 방향을 볼 경우 에너지 절약 모드가 실행되는 것이다. 또한, 감각 센서를 사용해 화장실을 다녀오는 짧은 시간일지라도 절전 모드가 적용되도록 해 에너지를 절약하도록 한다.
Speech Enhancement System Design Project1. 설계배경통신 시스템 환경에서, 우리가 다루는 모든 신호는 채널을 통해 전송되는 도중에 보통 Noise(잡음), Interference(간섭), Fading(페이딩) 등에 의해 항상 채널상의 에러가 생기기 마련이다. 여기서 잡음으로 인하여 왜곡된 음성신호를 최소화시키기 위해서는 필터가 필요하게 되며, 음성신호는 Causal하기 때문에 Linear Phase 특성을 가지는 FIR 필터가 사용될 수 있다.2. 설계목표원래의 Speech 신호에 noise를 추가시킨 신호를 만들고 이 신호에 FIR 필터를 통과시켜서 원 신호에 더해진 잡음을 최대한 감쇠시키는 시스템을 설계한다. 필터 통과 이전과 이후의 주파수 영역에 해당하는 스펙트럼을 분석하고, 직접 신호를 들어보는 과정을 통해 잡음이 추가되기 이전의 원 신호에 가까운 신호로 복원해주는 최적의 시스템을 설계한다.3. 설계내용1) 시스템 구성s(n) ----> + -----> r(n) ---> digital filter ----> s^(n)n(n)digital filter - fir filter 설계window method- rectangular hanning hamming blackmanoptimal method- Parks-McClellen algorithm2) Source: speech signal- 트랜스포머 영화의 대사를 wav로 생성 - transformer.wavsignalmatlab[Y,FS,NBITS]=wavread('transformer.wav');sig=Y;3) Noise 만들기 (randn)- Normally distributed random numbers.- Mean 0, variance 1noisematlabno=0.02*randn(size(sig));s(n) 과 s^(n)은 필터를 사용했기 때문에 딜레이가 되어있습니다. (코절이 되기위해서) 딜레이를 생각해서 민스퀘어를 구한 결과 0.02를 곱해주었습니다. 즉, {s( signal + noisespeech signal + noisematlabr=no+sig;5) Spectrum 분석- Original signalsignalmatlabAsk = abs(fft(sig))/length(sig);- NoisesignalmatlabAnk = abs(fft(no))/length(no);- Original signal + NoisesignalmatlabArk = abs(fft(r))/length(r);5) Specify the filter requirements- Filter typeLowpass Filter : Speech 신호의 주파수 성분이 대략 10000Hz 이하에 분포되어 있다- Cutoff frequencies :- Ripple in passband : 작을수록 좋으므로 1dB 이하로 설계- Attenuation in stopband : 최소 50dB 이상으로 감쇠 하도록 설계6) Design FIR filters- Determine the filter specifications.- Window methodsampling frequencytransition widthCut-off frequencyWindow type에 따른 Filter Length-Rectangular-Hanning-Hamming-BlackmanRectangularHanningN=75; Fc = 0.412; fs=50000;Brec = fir1(N-1,Fc,boxcar(N));[hrec,f]=freqz(Brec,1,512,fs);prec=180*unwrap(angle(hrec))/pi;N=258; Fc = 0.412; fs=50000;Bhan = fir1(N-1,Fc,hanning(N));[hhan,f]=freqz(Bhan,1,512,fs);phan=180*unwrap(angle(hhan))/pi;HammingBlackmanN=275; Fc = 0.412; fs=50000;Bham = fir1(N-1,Fc);[hham,f]=freqz(Bham,1,512,fs8; Fc = 0.412; fs=50000;Bblk = fir1(N-1,Fc,blackman(N));[hblk,f]=freqz(Bblk,1,512,fs);pblk=180*unwrap(angle(hblk))/pi;- Optimal design method? passband ripple? stopband ripple? F : passband (0 ~ 10000 Hz) = 0 ~0.4stopband (10000 ~ 25000 Hz) =~= 0.424 ~ 1? Error weight factorsfraction form =,,W=[ 1 1 ]Parks-McClellen algorithmcodeN=250;F=[ 0 0.4 0.424 1]; % edge frequencies (passband 0 ~ 10000 stopband 10600 ~ 25000)M=[ 1 1 0 0] ; % ideal magnitudesW=[ 1 1 ]; % error weight factors (passband ripple = 0.1212dB, stopband attenuation = 77.19dB)Bopt=firpm(N-1,F,M,W); % (N+1)Parks-McClellen algorithmformat long4. 모의실험결과 및 분석1) Analysis of the system- MSE- 필터길이, 필터종류 등을 파라미터로 설정N감소N증가분석Window MethodFilter(Rectangular, Hanning,Hammin,Blackman)이점 : Ripple 감소이점 : Attenuation 증가적절한 Transition width를 정하여와으로 결정된 N값을 바탕으로낮은 MSE를가진 필터를설계할 수 있다.단점 : MSE 증가Attenuation 감소단점 :MSE 증가Ripple 증가trade-off:passband 감소trade-off:passband 증가N감소N증가분석Optimal method이점 : Ripple 감소이점 : Attenuation 증가Passband,Passpand 고려하여,최적 의 N값을찾을 수 있다.단점 : MSE 증가Attenuation 감소단점 :MSE 증가Ripple 증가trade-off:passband 감소trade-off:passband 증가2) Discuss about the result.MSE(window rectangular) =MSE(window hanning) =MSE(window hamming) =MSE(window blackman) =MSE(optimal method Parks-McClellen algorithm) =transformer.wav 신호의 최적의 filter는 window hanning filter 이다.5. 결론필터를 설계하기 위해서는 먼저 원 신호와 잡음의 주파수 분석이 필요하고, 그에 따른 필터를 선택해야 했었다. 우리는 그래서 대부분 10000HZ 미만의 신호를 갖는 원신호를 잡음에 더한 뒤, 로우패스 필터를 거쳐서 우리가 원하는 신호(잡음이 제거된)가 나오도록 설계하였다. 또한 필터의 세부 조건들 ( 필터길이, 필터계수, 통과대역과 저지대역의 주파수, Transition width, stopband attenuation, passband ripple, MSE)을 적절한 Trade-off, 죽 최적화 시켜서 설계하였다. 이처럼 필터는 설계자의 의도를 통해서 원하는 신호를 뽑아 낼 수 있도록 하는 역할을 한다. 우리는 이번 설계 프로젝트를 통하여 한학기 동안 수업시간에 배운 내용을 토대로 이런 필터 설계능력을 키울 수 있었다.source codeclose all;clear all;% Window Hanning FilterN=258; Fc = 0.412; fs=50000;Bhan = fir1(N-1,Fc,hanning(N));[hhan,f]=freqz(Bhan,1,512,fs);phan=180*unwrap(angle(hhan))/pi;[Y,FS,NBITS]=wavread('transformer.wav');sig=Y;no=0.02*randn(size(sig));r=no+sig;y=:length(r)-1]*fs/length(r);Ask = abs(fft(sig))/length(sig);Ank = abs(fft(no))/length(no);Ark = abs(fft(r))/length(r);Ayk = abs(fft(y))/length(y);figure(1)freqz(Bhan,1,fd,fs)figure(2)subplot(2,1,1); plot(f,Ask);gridaxis([0 fs/2 0 0.0008]); title('');xlabel('Frequency (Hz)'); ylabel('Amplitude |sig(f)| ');subplot(2,1,2); plot(f,Ank);gridxlabel('Frequency (Hz)'); ylabel('Amplitude |no(f)| ');title('');figure(3)subplot(2,1,1); plot(f,Ark);gridaxis([0 fs/2 0 0.0008]);title('');xlabel('Frequency (Hz)'); ylabel('Amplitude |r(f)| ');subplot(2,1,2);plot(f,Ayk);gridaxis([0 fs/2 0 0.0008]);title('');xlabel('Frequency (Hz)'); ylabel('Amplitude |y(f)| ');figure(4)subplot(2,1,1);plot(sig);gridylabel('Speech');subplot(2,1,2);plot(no);gridylabel('Noise');xlabel('Time');figure(5)subplot(2,1,1);plot(r);gridylabel('Speech+Noise');subplot(2,1,2);plot(y);gridylabel('Lowpassed speech');xlabel('Time');sound(sig/max(abs(sig)),44100);sound(no/max(abs(no)),44100);sound(r/max(abs(r)),44100);sound(y/max(abs(y)),4);
AimThe aim is to remove noise by filteringPicture AnalysisAfter removal of diagonal noise, we can find noises such as Gaussian noiseRemoval of diagonal noiseFFT - transform from space domain to frequency domainIFFT - transform from frequency domain to space domain