Matlab用Filter Design设计高通滤波器

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

运行结果如下图所示

如有错误欢迎指正

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值