【发布时间】:2011-09-20 13:19:31
【问题描述】:
我必须在数字信号处理课程中做一些练习,但我遇到了一些问题。
我有一个给定的文件(signal.wav 将信号命名为x(n)),添加了一些噪音,我要求从中查找一些信息。添加的噪音是η(n) = sin8000πn。所以我正在处理的信号是s(n) = x(n) + η(n)
为了去除噪声,我应用了一个低通巴特沃斯滤波器,order = 2 和截止频率 = 2000hz。
我想从过滤器和H(z)函数中找到传递函数H(s)。好吧,我知道我必须应用双线性变换,但我不知道如何使用 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 传递函数(不是“传输函数”)?您最好在 dsp.stackexchange.com 中询问这个问题,因为它与 DSP 相关而不是与编程相关。
-
对不起,我试图从我的母语翻译。我的意思是传递函数。