Filter Design的参数界面如下图所示
Matlab的代码如下所示
[signal, fs] = audioread('C:\Users\86150\Desktop\口哨音乐.mp3'); % 读取MP3文件
sound(signal, fs); % 播放音频
pause(length(signal)/fs + 0.5); % 等待音频播放完毕,并加一点缓冲时间
N = length(signal); % 信号长度
Y = fft(signal, N); % 傅里叶变化
P2 = abs(Y/N); % 双边频谱的幅度(线性)
P1 = P2(1:N/2+1); % 取一半,因为信号是实数的
P1(2:end-1) = 2*P1(2:end-1); % 除了第一个和最后一个元素外,都是双边频谱的总和
f = fs*(0:(N/2))/N; % 频率向量
% 绘制频谱
subplot(2,2,1)
plot(f, P1)
xlabel('Frequency (Hz)')
ylabel('|P1(f)|')
title('滤波前')
grid on
signal_di= filter(Hd_gao,1,signal); % 应用滤波器
sound(signal_di,fs);
pause(length(signal_di)/fs + 0.5); % 等待音频播放完毕,并加一点缓冲时间
N = length(signal_di); % 信号长度
Y = fft(signal_di, N); % FFT
P22 = abs(Y/N); % 双边频谱的幅度(线性)
P12 = P22(1:N/2+1); % 取一半,因为信号是实数的
P12(2:end-1) = 2*P12(2:end-1); % 除了第一个和最后一个元素外,都是双边频谱的总和
f = fs*(0:(N/2))/N; % 频率向量
% 绘制频谱
subplot(2,2,2)
plot(f, P12)
xlabel('Frequency (Hz)')
ylabel('|P12(f)|')
title('滤波后')
grid on
运行结果如下图所示
如有错误欢迎指正