黑胶自录《凤皇》频率分析+高通滤波


前言

笔者购买了一张龚琳娜的黑胶唱片《山海神话》,通过USB电缆录到电脑上,导出了《凤皇》的wav文件。听感似乎与B站一个试听(https://www.bilibili.com/video/BV1BB4y1N7k8?from=search&seid=5234403938983271)有差别,便决定对比一下二者的频谱来佐证自己的感觉。


一、频率分析

使用matlab的audioread函数读取音频文件的采样频率Fs,得到Fs=44100Hz。获取长度N后做N点FFT,画出幅频曲线如下图。
请添加图片描述

如图,绝大部分频率分量在5000Hz以下,为了更好比较频谱,将幅频曲线分段显示。请添加图片描述将幅频曲线分段显示,可以在每个频段更方便对比。

与黑胶试听分段对比,从波形图上我们可以清晰地看出笔者录制的wav文件保留了更丰富的高频成分(15KHz以上),同时次声波会更少,这部分可能是受录音设备影响。请添加图片描述

二、高通滤波

1.滤波器

写一个名为filter_hp的函数,函数名要与.m文件相同:

filter_hp.m
function y=filter_hp(x,f1,f3,rp,rs,Fs)

wp=2*pi*f1/Fs;
ws=2*pi*f3/Fs;

[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);
[bz1,az1]=cheby1(n,rp,wp/pi,'high');

使用切比雪夫滤波器滤波(MATLAB自带cheblord函数,参数x:长度,f1:通带频率,f3:阻带频率,rp:通带衰减系数,rs:阻带衰减系数,Fs采样频率)

2.调用滤波器函数处理

调用filter_hp函数,f1设为30Hz,f3设为21Hz,rp设为0.1,rs设为20,采样频率与原始wav文件保持一致
调用部分代码如下:

wav.m
[y,Fs] = audioread('ºÚ½º×Ô¼¡¶·ï»Ê¡·.wav');
disp(['FS = ',num2str(Fs)]);
N=length(y);
t=0:N-1;
figure(1);
plot(t,y);
title('Original Signal');
xlabel('Time'); 
ylabel('Amplitude'); 
f1=30;f3=21;rp=0.1;rs=20;
z=filter_hp(y,f1,f3,rp,rs,Fs);
filename='output_·ï»Ê.wav';
audiowrite(filename,z,Fs);
figure(2);
plot(t,z);
figure(3);
z0 = abs(fft(z)); 
f=(0:N-1)*Fs/N;
subplot(2,2,1),plot(f,z0);xlim([0 100]) ;
xlabel('Frequency'); 
ylabel('Amplitude'); 
subplot(2,2,2),plot(f,z0);
xlim([0 5000]) ;
xlabel('Frequency'); 
ylabel('Amplitude'); 
subplot(2,2,3),plot(f,z0);
xlim([5000 10000]) ;
xlabel('Frequency'); 
ylabel('Amplitude'); 
subplot(2,2,4),plot(f,z0);
xlim([10000 22050]) ;
xlabel('Frequency'); 
ylabel('Amplitude');

将处理结果分频段显示,可以看出,在过滤了次声波的同时也保留了高频成分。
请添加图片描述关注0-100Hz的部分,可以看出,切比雪夫滤波器下降较快,但在通带上存在等波纹波动,在20Hz~50Hz频段上会比较明显。
请添加图片描述

请添加图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值