본문내용
2) fir1 함수를 이용하기
매트랩 코드
>> a=[1 -1 1];
>> b=[1 -0.125 0 0 0 0 0 0 0 0 0 -1 0.125];
% 위에서 구한 필터 계수
>> H=freqz(b,a);
% 주파수 응답을 구한다
>> zplane(b,a)
% zplane 으로 표시
>> stem(abs(H))
% 임펄스 응답으로 나타낸다.
>> f1=100;
>> f2=200;
>> f3=300;
>> rate=2;
>> fs=f3*2;
%나이퀴스트 율을 맞추기 위해 최고 주파수 300*2를 하여 fs=600Hz로 한다.
>> T=1/fs;
% 샘플 주기
>> t=[-300:300]*T;
>> s1=cos(2*pi*f1*t);
>> s2=cos(2*pi*f2*t);
>> s3=cos(2*pi*f3*t);
>> s=s1+s2+s3;
>> W=[190 210]/fs*2;
% 입력 신호에서 200Hz를 통과 시켜야 되므로 대역폭을 190~210Hz으로 설정한다.
>> M=11;
% 차수 12-1=11
>> b=fir1(M,W,'bandpass');
% 대역폭 필터를 구현 한다
>> x=filter(b,1,s);
% 필터에 입력신호를 통과한다
>> x_del=x(M/2+1:end);
% 딜레이
>> up_rate=16;
>> s_up=interp(s,up_rate);
>> x_up=interp(x_del,up_rate);
>>t_up=[0:(256*rate*up_rate-1)]*T/up_rate;
>> figure(1);
% 첫 번째 도표 => 필터 응답
>> freqz(b,1,0:fs/2,fs);
>> figure(2);
>> idx=16:32;
>>subplot(2,1,1);plot(t(idx),s(idx));axis([t(16),t(32),-5,5]);
>> title('본래 신호');
>>subplot(2,1,2);plot(t(idx),x_del(idx));axis([t(16),t(32),-5,5]);
>> title('필터링된 신호');
% 필터링된 이산시간응답
>> figure(3)
>> subplot(2,1,1);psd(s,1024,fs);
>> title('본래 신호');
>> subplot(2,1,2);psd(x,1024,fs);
>> title('필터링된 신호');
% psd 전력스펙트럼을 나타낸다.
>> figure(4)
>> idx=[(16*up_rate):(32*up_rate)];
>> subplot(2,1,1);plot(t_up(idx),s_up(idx));
>>axis([t_up(min(idx)),t_up(max(idx)),-5,5]);
>> title('본래 신호');
>>subplot(2,1,2);plot(t_up(idx),x_up(idx));
>>axis([t_up(min(idx)),t_up(max(idx)),-5,5]);
>> title('필터링된 신호');
% 필터링된 연속시간응답
(a) 필터의 z-Plane(b) 필터의 주파수 응답
(c) 주파수 응답(d) 전력 스펙트럼
(e) 연속시간 주파수 응답
매트랩 코드
>> a=[1 -1 1];
>> b=[1 -0.125 0 0 0 0 0 0 0 0 0 -1 0.125];
% 위에서 구한 필터 계수
>> H=freqz(b,a);
% 주파수 응답을 구한다
>> zplane(b,a)
% zplane 으로 표시
>> stem(abs(H))
% 임펄스 응답으로 나타낸다.
>> f1=100;
>> f2=200;
>> f3=300;
>> rate=2;
>> fs=f3*2;
%나이퀴스트 율을 맞추기 위해 최고 주파수 300*2를 하여 fs=600Hz로 한다.
>> T=1/fs;
% 샘플 주기
>> t=[-300:300]*T;
>> s1=cos(2*pi*f1*t);
>> s2=cos(2*pi*f2*t);
>> s3=cos(2*pi*f3*t);
>> s=s1+s2+s3;
>> W=[190 210]/fs*2;
% 입력 신호에서 200Hz를 통과 시켜야 되므로 대역폭을 190~210Hz으로 설정한다.
>> M=11;
% 차수 12-1=11
>> b=fir1(M,W,'bandpass');
% 대역폭 필터를 구현 한다
>> x=filter(b,1,s);
% 필터에 입력신호를 통과한다
>> x_del=x(M/2+1:end);
% 딜레이
>> up_rate=16;
>> s_up=interp(s,up_rate);
>> x_up=interp(x_del,up_rate);
>>t_up=[0:(256*rate*up_rate-1)]*T/up_rate;
>> figure(1);
% 첫 번째 도표 => 필터 응답
>> freqz(b,1,0:fs/2,fs);
>> figure(2);
>> idx=16:32;
>>subplot(2,1,1);plot(t(idx),s(idx));axis([t(16),t(32),-5,5]);
>> title('본래 신호');
>>subplot(2,1,2);plot(t(idx),x_del(idx));axis([t(16),t(32),-5,5]);
>> title('필터링된 신호');
% 필터링된 이산시간응답
>> figure(3)
>> subplot(2,1,1);psd(s,1024,fs);
>> title('본래 신호');
>> subplot(2,1,2);psd(x,1024,fs);
>> title('필터링된 신호');
% psd 전력스펙트럼을 나타낸다.
>> figure(4)
>> idx=[(16*up_rate):(32*up_rate)];
>> subplot(2,1,1);plot(t_up(idx),s_up(idx));
>>axis([t_up(min(idx)),t_up(max(idx)),-5,5]);
>> title('본래 신호');
>>subplot(2,1,2);plot(t_up(idx),x_up(idx));
>>axis([t_up(min(idx)),t_up(max(idx)),-5,5]);
>> title('필터링된 신호');
% 필터링된 연속시간응답
(a) 필터의 z-Plane(b) 필터의 주파수 응답
(c) 주파수 응답(d) 전력 스펙트럼
(e) 연속시간 주파수 응답
추천자료
디지털논리회로실험1-1
LG 전자의 디지털 TV(X-Canvas) 국내수요예측
디지털 영상감시시스템(DVR System)의 분석 및 활용
디지털미디어와 기술
PACS-디지털의료영상처리
디지털방송과 32
[공학기술] DMB(Digital Multimedia Broadcasting/디지털멀티미디어방송)
경영정보시스템,아날로그와 디지털의 경제적차이,디지털경제,아날로그경제,디지털경제실패,소...
[정밀기계공학] 마이크로프로세서를 이용한 디지털 온도계 제작
디지털논리회로(컴퓨터와디지털논리회로, 테이터표현, 논리게이트, 부울대수간소화, 조합논리...
디지털비디오(DV)의 인터페이스와 포맷, 디지털비디오(DV)의 편집, 디지털비디오(DV)의 장단...
(디지털) 555타이머(timer)를 이용하여 특정 주파수의 클럭을 발생,디바운스 회로, 크리스탈,...
인간의 존재 환경 및 문화로서 디지털의 성격과 의미
소개글