디지털 신호 처리 과정에서 몇 가지 연습을해야하며 몇 가지 문제가 있습니다.MATLAB에서 필터의 전달 함수는 어떻게 계산합니까?
약간의 노이즈가 추가 된 주어진 파일 (signal.wav 이름 신호 x(n)
)이 있는데 iIam이 일부 정보를 찾도록 요청했습니다. 추가 된 노이즈는 η(n) = sin8000πn
입니다. 따라서 처리중인 신호는 s(n) = x(n) + η(n)
입니다. 잡음을 제거하기 위해 order = 2
및 차단 주파수 = 2000hz 인 저역 통과 버터 필터를 적용합니다.
필터와 H(z)
함수에서 전달 함수 H(s)
을 찾고 싶습니다. 음, 필자는 쌍 선형 변환을 적용해야하지만 iIdont는 MATLAB을 사용하여이를 수행하는 방법을 알고 있습니다.
누구든지 해결할 수 있습니까? 당신은 위상과 진폭을 추정하고 시간 영역에서 신호에서 추가 된 노이즈 성분을 빼기 만하면 신호의 원치 않는 구성 요소의 주파수를 알고 있기 때문에 여기에
내 코드[y, fs, nbits] = wavread('signal.wav');
% Playing the file
disp('-> Playing at the original sample rate...');
sound(y, fs);
fprintf('------------------------------------------\n');
% Sampling frequency
fprintf('-> Sample frequency is: %f.\n', fs);
% Print the min and max values of the audio data.
fprintf('-> The maximum data value is %f.\n', max(y));
fprintf('-> The minimum data value is %f.\n', min(y));
fprintf('------------------------------------------\n');
order = 2;
sampling_freq = fs;
cut_off_freq = 2000;
[butter_a, butter_b] = butter(order,cut_off_freq/(sampling_freq/2));
%[butter_a, butter_b] = butter(order,cut_off_freq/(sampling_freq));
subplot(211), plot(y);
subplot(212), plot(filter(butter_a,butter_b,y));
sound(filter(butter_a,butter_b,y),fs);
ITYM * 전달 함수 * ("전송 함수"가 아님)? http://dsp.stackexchange.com에서 프로그래밍 관련보다 DSP 관련성이 높기 때문에이 질문을하는 것이 좋습니다. –
죄송합니다. 모국어로 번역하려했습니다. 나는 전달 함수를 의미했다. –