我必須在數字信號處理課程中做一些練習,並且遇到一些問題。如何計算MATLAB中過濾器的傳遞函數?
我有一個給定的文件(signal.wav名稱信號x(n)
)添加了一些噪音,並且iIam要求從中找到一些信息。添加的噪音是η(n) = sin8000πn
。所以我正在處理的信號是s(n) = x(n) + η(n)
爲了消除噪音,我使用了低通巴特沃思濾波器order = 2
和截止頻率= 2000hz。
我想從過濾器和H(z)
函數中找到傳遞函數H(s)
。那麼我知道我必須應用雙線性轉換,但是iIont公司知道如何用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相關性更高。 –
對不起,我試圖從我的母語翻譯。我的意思是傳遞函數。 –